You are on page 1of 14

#############################

GreenPlum, GPFDIST, PXF Setup

#############################

Summary

1. OS Pre-requisites & GPDB Installation


2. GPDB Master & Segment Configuration
3. Zabbix Configuration
4. GPFDist Configuration
5. Configure & Enable Cronjobs
6. PXF Installation

#############################################################################
############### STEP: 1 (OS Pre-requisites & GPDB Installation)##############

# Important Notes & Pre-requisites:


#==================================

a. Hardware Pre-requisites
- File Systems: xfs required for data storage on SUSE Linux and Red Hat (ext3
supported for root file system)
- Minimum CPU: Pentium Pro compatible (P3/Athlon and above)
- Minimum Memory: 24 GB RAM per server
- Disk Requirements: 150MB per host for Greenplum installation and
Approximately 300MB per segment instance for meta data
- Network Requirements: 10 Gigabit Ethernet within the array

b. Make sure we have software.dba, afinitidba. However it will create gpadmin as OS


user for database installation

c. Scripts/softwares are placed on 10.32.7.49 and path is D:\DBA\Greenplum


Installation\required_packages.zip move to /data on target server and unzip
#login using sudo user
sudo chown -R gpadmin:gpadmin /data
sudo yum install unzip
cd /data
#move files from remote server following main point c
unzip required_packages.zip

d. By using below command verify that yum repository is configured properly else
ask Infra
# sudo yum repolist all

#####################################################################
########### STEP: 1 (OS Pre-requisites & GPDB Installation) #########

#################### Updating /etc/ssh/sshd_config #########################

sudo vi /etc/ssh/sshd_config
#add following lines at bottom
MaxStartups 100:30:200
MaxSessions 200

#################### Disable firewalld, IPtables, SELINUX and enable ntpd


#########################
sudo su -
#Execute below commands in one go:

systemctl stop firewalld


systemctl disable firewalld
chkconfig iptables off
systemctl stop iptables
setenforce 0
chkconfig ntpd on
ntpdate pool.ntp.org
systemctl start ntpd
#ignore_errors if occur

#####################
#Greenplum Ports Requirement:
#Following ports should be open on Greenplum Database Server
#• 22 in case Ansible Deployment
#• 5888, 5889 PXF
#• 8081, 8082 GPfdist
#• 8443 Tomcat
#• 50000 ~ 50050+ segments and background processes (Keep Room)
#• 55432 GP-Master Port

#############Execute below commands incase we can't disable firewall else skip


below firewall-cmd commands################

sudo firewall-cmd --zone=public --add-port=22/tcp --permanent


sudo firewall-cmd --zone=public --add-port=5888/tcp --permanent
sudo firewall-cmd --zone=public --add-port=5889/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8081/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8082/tcp --permanent
sudo firewall-cmd --zone=public --add-port=8443/tcp --permanent
sudo firewall-cmd --zone=public --add-port=55432/tcp --permanent
sudo firewall-cmd --zone=public --add-port=50000/tcp --permanent

sudo firewall-cmd --reload

#To Verify ports are listening or not


sudo netstat -na |grep port_number

###############################################

vi /etc/selinux/config
#Update SELINUX value as below
SELINUX=disabled

#################### Install git wget ntp unzip openssh-clients ed java-1.8.0-


openjdk-devel #########################
#Login using sudo user
sudo yum install git wget ntp openssh-clients ed java-1.8.0-openjdk-devel
#################### Unzip go1.13.linux-amd64.tar.gz #########################
#Place go1.13.linux-amd64.tar.gz to target machine /usr/local
sudo cp /data/required_packages/go1.13.linux-amd64.tar.gz /usr/local

cd /usr/local
sudo tar -xvf go1.13.linux-amd64.tar.gz

#################### Updating PATH for all users #########################


vi /etc/profile
#add following lines at bottom
export PATH=$PATH:/usr/local/go/bin

#################### Updating Kernel Parameters #########################


#Follow Doc GP Performance Parameters V1.7 to tune kernel parameters
vi /etc/sysctl.conf
#add following lines at bottom
kernel.shmmax = 67513085952
kernel.shmmni = 4096
kernel.shmall = 16482687
kernel.sem = 250 2048000 100 32768
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.conf.default.accept_source_route = 0
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.conf.all.arp_filter = 1
net.ipv4.ip_local_port_range = 10000 65535
net.core.netdev_max_backlog = 10000
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
vm.overcommit_ratio = 75
vm.oom-kill = 0
vm.swappiness = 10
vm.zone_reclaim_mode = 0
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
vm.dirty_background_ratio = 0
vm.dirty_ratio = 0
vm.dirty_background_bytes = 1610612736
vm.dirty_bytes = 4294967296

sudo sysctl -p

#################### Updating Security Limits #########################


sudo vi /etc/security/limits.conf
#add following lines at bottom
* soft nofile 524288
* hard nofile 524288
* soft nproc 131072
* hard nproc 131072

sudo vi /etc/security/limits.d/20-nproc.conf
#add following lines at bottom
* soft nproc 131072

#################### Updating Kernel #########################


sudo grubby --update-kernel=ALL --args="transparent_hugepage=never"

#ignore_errors if occur

#################### Creating GPADMIN user #########################


sudo useradd gpadmin
sudo passwd gpadmin

#################### Create Required Directory Structure & Install GreenPlum DB RPM


#########################

sudo mkdir -p /home/gpadmin/pxf/lib/


sudo chown -R gpadmin:gpadmin /home/gpadmin/pxf
sudo rpm -ivh /data/required_packages/greenplum-db-6.7.1-rhel7-x86_64.rpm #Update
rpm file name
chown -R gpadmin:gpadmin /usr/local/greenplum-db

#################### Copy & configure mysql-connector-java


#########################
#Copy mysql-connector-java-8.0.20.jar file to /home/gpadmin/pxf/lib and execute
below command in one go
sudo cp /data/required_packages/mysql-connector-java-8.0.20.jar
/home/gpadmin/pxf/lib
sudo chown -R gpadmin:gpadmin /home/gpadmin/pxf/lib/mysql-connector-java-8.0.20.jar
sudo chmod 0644 /home/gpadmin/pxf/lib/mysql-connector-java-8.0.20.jar
sudo mkdir -p /usr/local/pxf/lib
sudo chown -R gpadmin:gpadmin /usr/local/pxf/lib

#Copy mysql-connector-java-8.0.20.jar file to /usr/local/pxf/lib


cp /data/required_packages/mysql-connector-java-8.0.20.jar /usr/local/pxf/lib
chown -R gpadmin:gpadmin /usr/local/pxf/lib/mysql-connector-java-8.0.20.jar
chmod 0644 /usr/local/pxf/lib/mysql-connector-java-8.0.20.jar

#################### Creating required directory structure and assign permissions


#########################
#Switch to gpadmin user and execute below commands:
mkdir -p /data/master
chown -R gpadmin:gpadmin /data/master
mkdir -p /data/primary
chown -R gpadmin:gpadmin /data/primary
mkdir -p /data/profiler
chown -R gpadmin:gpadmin /data/profiler
mkdir -p /home/gpadmin/pxf/servers/mysqlarch/
chown -R gpadmin:gpadmin /home/gpadmin/pxf/servers/mysqlarch/
mkdir -p /home/gpadmin/scripts/backup
chown -R gpadmin:gpadmin /home/gpadmin/scripts/backup
mkdir -p /home/gpadmin/scripts/backup/logs
chown -R gpadmin:gpadmin /home/gpadmin/scripts/backup/logs
mkdir -p /data/backups
chown -R gpadmin:gpadmin /data/backups
mkdir -p /data/backups/afiniti
chown -R gpadmin:gpadmin /data/backups/afiniti
mkdir -p /data/backups/archival
chown -R gpadmin:gpadmin /data/backups/archival

#################### Copying greenplum_path.sh into /home/gpadmin/.bashrc


#########################
vi /home/gpadmin/.bashrc
#Copy the whole /usr/local/greenplum-db/greenplum_path.sh file into
/home/gpadmin/.bashrc and make sure its owner is gpadmin to verify use below
command
echo -e "###### Greenplum Settings ############ \n" >> /home/gpadmin/.bashrc

cat /usr/local/greenplum-db/greenplum_path.sh >> /home/gpadmin/.bashrc

ls -al /home/gpadmin/.bashrc

#################### Updating/exporting MASTER_DATA_DIRECTORY in


/home/gpadmin/.bashrc #########################
sudo vi /home/gpadmin/.bashrc
#add following lines at bottom
echo "export MASTER_DATA_DIRECTORY=/data/master/gpseg-1" >> /home/gpadmin/.bashrc

#################### Creating hostfile for GP Arrays #########################


sudo touch /home/gpadmin/hostfile
sudo chown gpadmin:gpadmin /home/gpadmin/hostfile
sudo vi /home/gpadmin/hostfile
#hostname of machine to be written inside
HOSTNAME

#################### Rebooting machine to make changes permanant


#########################
sudo reboot

##########################################################################
############## STEP 2 (GPDB Master & Segment Configuration) ##############

#################### Changing permissions of data directory


#########################
cd /
sudo chown -R gpadmin:gpadmin data

#################### Configuring SSH Keys #########################


#Change your user to gpadmin
mkdir -p /home/gpadmin/.ssh
chown -R gpadmin:gpadmin /home/gpadmin/.ssh
source /home/gpadmin/.bashrc && gpssh-exkeys -f /home/gpadmin/hostfile

#################### Creating and configuring GreenPlum Initialization file


#########################
touch /home/gpadmin/gp_init_config
chown gpadmin:gpadmin /home/gpadmin/gp_init_config

#Copy content from local gp_init_config to recently created gp_init_config

vi /home/gpadmin/gp_init_config
#sample here
ARRAY_NAME="greenplum" #Change as per hostname
MACHINE_LIST_FILE=/home/gpadmin/hostfile
SEG_PREFIX=gpseg
PORT_BASE=50000
declare -a DATA_DIRECTORY=(/data/primary /data/primary /data/primary
/data/primary ) #Copy /data/primary as many times as

#much segments are required

#Number of Segements will depend on CPU. Formula=(Total_CPU - 2) x 2


MASTER_HOSTNAME=greenplum #Change as per hostname
MASTER_DIRECTORY=/data/master
MASTER_PORT=55432
TRUSTED_SHELL=ssh
CHECK_POINT_SEGMENTS=4 #Would be equal to the number of segments
ENCODING=UNICODE

#################### Initializing GP template database #########################


#Execute below commands from gpadmin
source /home/gpadmin/.bashrc && gpinitsystem -a -c /home/gpadmin/gp_init_config
source /home/gpadmin/.bashrc && psql -p 55432 -c "create database gpafiniti"
template1
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -c "alter user gpadmin
password 'pivotal@1234#'"

#You may verify the services by using the below command it will show you the
processes of postgres if services has been started
ps -ef|grep post

#################### Managing GP Keys #########################


openssl req -new -newkey rsa:4096 -days 365 -nodes -x509 -subj
"/C=US/ST=DC/L=Washington/O=Afiniti/CN=greenplum" -keyout
/data/master/gpseg-1/greenplum.key -out /data/master/gpseg-1/greenplum.cert
chmod 600 /data/master/gpseg-1/greenplum.key

#################### Configuring pg_hba.conf for client authentication


#########################
sudo vi /data/master/gpseg-1/pg_hba.conf
#add following lines at bottom
hostssl all all 0.0.0.0/0 md5

#################### Configuring postgresql.conf #########################


sudo vi /data/master/gpseg-1/postgresql.conf
#add following lines at bottom
ssl = on # (change requires restart)
ssl_cert_file = 'greenplum.cert' # (change requires restart)
ssl_key_file = 'greenplum.key' # (change requires restart)

#################### Restarting GP services #########################


#Execute below commands from gpadmin user
source /home/gpadmin/.bashrc && gpstop -M fast -a
source /home/gpadmin/.bashrc && gpstart -a

#####################################################################
###################### STEP 3 (Zabbix Configuration) ################

#################### Installing required packages for Zabbix #####################


sudo su -
sudo yum install epel-release yum-utils
sudo yum-config-manager --enable remi-php
sudo yum install php php-common php-opcache php-mcrypt php-cli php-gd php-curl php-
mysql php-pgsql htop
sudo rpm -ivh /data/required_packages/zabbix-release-4.4-1.el7.noarch.rpm
sudo yum install zabbix-agent #Incase of any issue you may ignore it
sudo mkdir -p /var/lib/zabbix
sudo mkdir -p /var/lib/zabbix/postgresql

#################### Configuring .pgpass for Zabbix #####################


sudo vi /var/lib/zabbix/.pgpass
#add following lines at bottom
127.0.0.1:55432:gpadmin:zbx_monitor:theBell01!!

sudo chmod 0600 /var/lib/zabbix/.pgpass

#################### Copying Zabbix scripts #####################


sudo cp /data/required_packages/scripts/zabbix/zabbix/postgresql*.sql
/var/lib/zabbix/postgresql
sudo chmod 0644 /var/lib/zabbix/postgresql/*.sql

sudo cp
/data/required_packages/scripts/zabbix/zabbix_agentd.d/template_db_postgresql.conf
/etc/zabbix/zabbix_agentd.d/
sudo chmod 0644 /etc/zabbix/zabbix_agentd.d/template_db_postgresql.conf

#################### Updating profile Paths #####################


sudo vi /home/gpadmin/.bash_profile
#add following lines at bottom
export PATH=/usr/local/greenplum-db/./bin:/usr/local/greenplum-db/./ext/python/bin:
$PATH
export LD_LIBRARY_PATH=/usr/local/greenplum-db/./lib:/usr/local/greenplum-db/./
ext/python/lib:

#################### Updating pg_hba.conf for client authentication


#####################
sudo vi /data/master/gpseg-1/pg_hba.conf
#add following lines at bottom
host all zbx_monitor 127.0.0.1/32 trust
host all zbx_monitor 0.0.0.0/0 md5
host all zbx_monitor ::0/0 md5

#################### Restarting Zabbix Services #####################


sudo systemctl restart zabbix-agent

######################################################################
#################### STEP 4 (GPFDist Configuration) ##################

#################### Restarting GreenPlum Services #####################


#Execute below commands from gpadmin user:
source /home/gpadmin/.bashrc && gpstop -M fast -a
source /home/gpadmin/.bashrc && gpstart -a

#################### Removing Unwanted Files Incase already GP is installed &


stopping gpfdist services #####################
#Following rm command can be skipped for initial setup
sudo rm -rf /home/gpadmin/logs
sudo rm -rf /home/gpadmin/scripts
sudo rm -rf /data/profiler/*

pkill -f gpfdist

#################### Creating required directories and assigning permissions


#####################
#Execute below commands in one go from gpadmin
mkdir -p /home/gpadmin/scripts
chown -R gpadmin:gpadmin /home/gpadmin/scripts
mkdir -p /home/gpadmin/scripts/initialize
chown -R gpadmin:gpadmin /home/gpadmin/scripts/initialize
mkdir -p /home/gpadmin/scripts/dbadmin
chown -R gpadmin:gpadmin /home/gpadmin/scripts/dbadmin
mkdir -p /home/gpadmin/scripts/gpfdist
chown -R gpadmin:gpadmin /home/gpadmin/scripts/gpfdist
mkdir -p /home/gpadmin/scripts/profiler
chown -R gpadmin:gpadmin /home/gpadmin/scripts/profiler
mkdir -p /home/gpadmin/scripts/rollLogs
chown -R gpadmin:gpadmin /home/gpadmin/scripts/rollLogs
mkdir -p /home/gpadmin/logs
chown -R gpadmin:gpadmin /home/gpadmin/logs
mkdir -p /home/gpadmin/logs/initialize
chown -R gpadmin:gpadmin /home/gpadmin/logs/initialize
mkdir -p /home/gpadmin/logs/gpfdist
chown -R gpadmin:gpadmin /home/gpadmin/logs/gpfdist
mkdir -p /home/gpadmin/logs/rollLogs
chown -R gpadmin:gpadmin /home/gpadmin/logs/rollLogs
mkdir -p /data/profiler
chown -R gpadmin:gpadmin /data/profiler
mkdir -p /data/profiler/queries
chown -R gpadmin:gpadmin /data/profiler/queries
mkdir -p /data/profiler/sizes
chown -R gpadmin:gpadmin /data/profiler/sizes
mkdir -p /data/profiler/skew
chown -R gpadmin:gpadmin /data/profiler/skew
touch /data/profiler/queries/gpdb-dummy.csv
chown -R gpadmin:gpadmin /data/profiler/queries/gpdb-dummy.csv
touch /data/profiler/sizes/gpfdist_table_sizes_nonpartitioned.csv
chown -R gpadmin:gpadmin
/data/profiler/sizes/gpfdist_table_sizes_nonpartitioned.csv
touch /data/profiler/skew/gpfdist_skew_coefficients.csv
chown -R gpadmin:gpadmin /data/profiler/skew/gpfdist_skew_coefficients.csv
touch /data/profiler/skew/gpfdist_skew_idle_fractions.csv
chown -R gpadmin:gpadmin /data/profiler/skew/gpfdist_skew_idle_fractions.csv

#################### Copying gpfdist scripts and assigning required permissions


#####################
su - gpadmin
cd /data/required_packages
unzip /data/required_packages/scripts.zip

#copy following scripts to /home/gpadmin/scripts/gpfdist


# scripts/gpfdist/startGPFDist8081Profiler.sh
# scripts/gpfdist/startGPFDist8082GPLogs.sh

sudo cp /data/required_packages/scripts/gpfdist/start*
/home/gpadmin/scripts/gpfdist/
sudo chown gpadmin:gpadmin
/home/gpadmin/scripts/gpfdist/startGPFDist8081Profiler.sh
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/gpfdist/startGPFDist8082GPLogs.sh
sudo chmod 0755 /home/gpadmin/scripts/gpfdist/startGPFDist8081Profiler.sh
sudo chmod 0755 /home/gpadmin/scripts/gpfdist/startGPFDist8082GPLogs.sh

#################### Sourcing/executing GPFDSIT scripts #####################


#Execute below commands in one go from from gpadmin user
source /home/gpadmin/.bashrc &&
/home/gpadmin/scripts/gpfdist/startGPFDist8081Profiler.sh
source /home/gpadmin/.bashrc &&
/home/gpadmin/scripts/gpfdist/startGPFDist8082GPLogs.sh

#################### Copying required scripts and assigning required permissions


#####################
#copy following file to /home/gpadmin/scripts
- scripts/scheduler.php
- scripts/executeSQL.php
sudo cp /data/required_packages/scripts/scheduler.php /home/gpadmin/scripts/
sudo cp /data/required_packages/scripts/executeSQL.php /home/gpadmin/scripts/

#Execute below commands in one go from from gpadmin user


sudo chown gpadmin:gpadmin /home/gpadmin/scripts/scheduler.php
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/executeSQL.php
sudo chmod 0755 /home/gpadmin/scripts/scheduler.php
sudo chmod 0755 /home/gpadmin/scripts/executeSQL.php

#################### Copying required scripts and assigning required permissions


#####################
#copy following files to /home/gpadmin/scripts/profiler
- scripts/profiler/credentials.php
- scripts/profiler/getDistributionCounts.php
sudo cp /data/required_packages/scripts/profiler/* /home/gpadmin/scripts/profiler

#Execute below commands in one go from from gpadmin user


chown gpadmin:gpadmin /home/gpadmin/scripts/profiler/credentials.php
chown gpadmin:gpadmin /home/gpadmin/scripts/profiler/getDistributionCounts.php
chmod 0755 /home/gpadmin/scripts/profiler/credentials.php
chmod 0755 /home/gpadmin/scripts/profiler/getDistributionCounts.php

#################### Copying required scripts and assigning required permissions


#####################
#copy following files to /home/gpadmin/scripts/initialize/
- scripts/initialize/createDefaultUsers.sql
- scripts/initialize/dropSchemaArchival.sql
- scripts/initialize/dropSchemaProfiler.sql
- scripts/initialize/dropSchemaScheduler.sql
- scripts/initialize/createSchemaArchival.sql
- scripts/initialize/createSchemaProfiler.sql
- scripts/initialize/createSchemaScheduler.sql
- scripts/initialize/createSchemaSchedulerData.sql
- scripts/initialize/grantSchemaArchival.sql
- scripts/initialize/grantSchemaProfiler.sql
- scripts/initialize/grantSchemaScheduler.sql
- scripts/initialize/grantAccessDefaultUsers.sql
cp /data/required_packages/scripts/initialize/* /home/gpadmin/scripts/initialize/

#Execute below commands in one go from from gpadmin user


sudo chmod 0644 /home/gpadmin/scripts/initialize/createDefaultUsers.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/dropSchemaArchival.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/dropSchemaProfiler.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/dropSchemaScheduler.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/createSchemaArchival.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/createSchemaProfiler.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/createSchemaScheduler.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/createSchemaSchedulerData.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/grantSchemaArchival.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/grantSchemaProfiler.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/grantSchemaScheduler.sql
sudo chmod 0644 /home/gpadmin/scripts/initialize/grantAccessDefaultUsers.sql

#################### Copying required scripts and assigning required permissions


#####################
copy following scripts to /home/gpadmin/scripts/dbadmin/
- scripts/dbadmin/createAIusers.sql
- scripts/dbadmin/createBAusers.sql
- scripts/dbadmin/createETLusers.sql
- scripts/dbadmin/createPXFextension.sql
- scripts/dbadmin/createSchemas.sql
- scripts/dbadmin/scripts/dbadmin/dropSchemas.sql
- scripts/dbadmin/scripts/dbadmin/dropSchemaAI_DEV.sql
- scripts/dbadmin/scripts/dbadmin/dropSchemaBA_DEV.sql
- scripts/dbadmin/scripts/dbadmin/dropSchemaETL_DEV.sql
- scripts/dbadmin/scripts/dbadmin/dropExtensionPXF.sql
- scripts/dbadmin/SetupDataPurgingJob.sql
- scripts/dbadmin/createSchemaDBAdmin.sql
- scripts/dbadmin/vacuum.sh
cp /data/required_packages/scripts/dbadmin/* /home/gpadmin/scripts/dbadmin/
#Execute below commands in one go from from gpadmin user
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/createAIusers.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/createBAusers.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/createETLusers.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/createPXFextension.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/createSchemas.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/SetupDataPurgingJob.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/createSchemaDBAdmin.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/dropSchemas.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/dropSchemaAI_DEV.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/dropSchemaBA_DEV.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/dropSchemaETL_DEV.sql
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/dbadmin/dropExtensionPXF.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/createAIusers.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/createBAusers.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/createETLusers.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/createPXFextension.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/createSchemas.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/dropSchemas.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/dropSchemaAI_DEV.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/dropSchemaBA_DEV.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/dropSchemaETL_DEV.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/dropExtensionPXF.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/SetupDataPurgingJob.sql
sudo chmod 0644 /home/gpadmin/scripts/dbadmin/createSchemaDBAdmin.sql

#################### Copying required scripts and assigning required permissions


#####################
copy following files to /home/gpadmin/scripts/rollLogs
- scripts/rollLogs/credentials.php
- scripts/rollLogs/rebuildExternalTable.php
- scripts/rollLogs/rollLogs.sh
cp /data/required_packages/scripts/rollLogs/* /home/gpadmin/scripts/rollLogs

#Execute below commands in one go from from gpadmin user


sudo chown gpadmin:gpadmin /home/gpadmin/scripts/rollLogs/credentials.php
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/rollLogs/rebuildExternalTable.php
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/rollLogs/rollLogs.sh
sudo chmod 0755 /home/gpadmin/scripts/rollLogs/credentials.php
sudo chmod 0755 /home/gpadmin/scripts/rollLogs/rebuildExternalTable.php
sudo chmod 0755 /home/gpadmin/scripts/rollLogs/rollLogs.sh
sudo mkdir -p /home/gpadmin/scripts/backup

#################### Copying required scripts and assigning required permissions


#####################
#copy following script to /home/gpadmin/scripts/backup
- scripts/backup/backup.sh
cp /data/required_packages/scripts/rollLogs/* /home/gpadmin/scripts/rollLogs

#Copy following script to /home/gpadmin/scripts/backup


- scripts/backup/backup.sh
sudo cp /data/required_packages/scripts/backup/backup.sh
/home/gpadmin/scripts/backup
#Execute below commands in one go from from gpadmin user
sudo chown gpadmin:gpadmin /home/gpadmin/scripts/backup/backup.sh
sudo chmod 0755 /home/gpadmin/scripts/backup/backup.sh

#################### Sourcing Initialization, dbadmin scripts #####################


source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/createDefaultUsers.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/dropSchemaArchival.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/dropSchemaProfiler.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/dropSchemaScheduler.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/createSchemaArchival.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/createSchemaProfiler.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/createSchemaScheduler.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/createSchemaSchedulerData.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/grantSchemaArchival.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/grantSchemaProfiler.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/grantSchemaScheduler.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/initialize/grantAccessDefaultUsers.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/dropSchemas.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/dropSchemaAI_DEV.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/dropSchemaBA_DEV.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/dropSchemaETL_DEV.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/dropExtensionPXF.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/createSchemas.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/createSchemaDBAdmin.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/createAIusers.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/createBAusers.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/createETLusers.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/createPXFextension.sql
source /home/gpadmin/.bashrc && psql -p 55432 -d gpafiniti -f
~/scripts/dbadmin/SetupDataPurgingJob.sql

###############################################################################
#################### STEP 5 (Configure & Enable Cronjobs) #####################
#################### Configuring Cron-Jobs #####################
sudo vi /etc/crontab
#add following lines at bottom
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root

##00 * * * * gpadmin cd /home/gpadmin/scripts; php scheduler.php 'Profiler Hourly


Schedule' profiler >> /home/gpadmin/logs/scheduler.log
##10 1 * * * gpadmin cd /home/gpadmin/scripts; php scheduler.php 'Get Table
Distribution' profiler >> /home/gpadmin/logs/scheduler.log
##03 0 * * * gpadmin cd /home/gpadmin/scripts; php scheduler.php 'Roll Logs'
rollLogs >> /home/gpadmin/logs/rollLogs/rollLogs.log
00 01 * * * gpadmin sh /home/gpadmin/scripts/backup/backup.sh
##00 03 * * * gpadmin cd /home/gpadmin/scripts; php scheduler.php 'Daily Data
Copying and Purging' dbadmin >> /home/gpadmin/logs/data_copy_and_purge.log

################################################################################
############################ STEP 6 (PXF Installation) #########################

#################### Creating Required Directory Structure, Installing required


packages #####################
mkdir -p ~/workspace
cd ~/workspace

sudo yum install gcc curl curl-devel

#################### Configuring of Bash Profile and reloading


#####################
su - gpadmin

vi .bash_profile
#add following lines at bottom
GPHOME=/usr/local/greenplum-db
export GPHOME
PATH=$GPHOME/bin:$PATH
export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.252.b09-2.el7_8.x86_64
#Change Path Accordingly
export PXF_HOME=/usr/local/greenplum-db/pxf
export PGPORT=55432

. .bash_profile

#################### Copying pxf setup & extracting #####################


#Copy the pxf.gz folder /usr/local/greenplum-db/ in target server
sudo cp /data/required_packages/pxf.gz /usr/local/greenplum-db/
cd /usr/local/greenplum-db/
sudo tar -xvf /usr/local/greenplum-db/pxf.gz

chown -R gpadmin:gpadmin /usr/local/greenplum-db/pxf

#################### PXF cluster resetting, initialization & Startup


#####################
su - gpadmin
$GPHOME/pxf/bin/pxf cluster reset

echo Y | /usr/local/greenplum-db/pxf/bin/pxf init

source /home/gpadmin/.bashrc && nohup /usr/local/greenplum-db/pxf/bin/pxf start &

#################### Copying PXF template files #####################


sudo mkdir -p /home/gpadmin/pxf/servers/mysqlarch/

vi /home/gpadmin/pxf/templates/jdbc-site.xml #modify mysql hostname, IP, dbname,


dbuser, dbpassword

sudo cp /home/gpadmin/pxf/templates/jdbc-site.xml
/home/gpadmin/pxf/servers/mysqlarch/

=================================ADDITIONAL SETTINGS============================

============================== STEP 7 ################################

#Change below mentioned OS/DB users passwords accordingly

#OS Users:
#---------
gpadmin
afinitidba
software.dba

#DB Users:
#---------
gpadmin

############################## STEP 8 ################################

#install DBeaver on OpsBox using: https://dbeaver.io/download/


#Open DBeaver Software
#Menu: Database => Driver Manager => Select greenplum => Edit => then add following
4 files

# Below JAR files are available on 10.32.7.49 at D:\DBA\Greenplum Installation\


required_packages\DBeaverConnectors
https://jdbc.postgresql.org/download/postgresql-42.2.5.jar
https://repo1.maven.org/maven2/net/postgis/postgis-jdbc/2.2.1/postgis-jdbc-
2.2.1.jar
https://repo1.maven.org/maven2/org/postgresql/postgresql/42.2.13/postgresql-
42.2.13.jar
https://repo1.maven.org/maven2/net/postgis/postgis-jdbc-jtsparser/2.2.1/postgis-
jdbc-jtsparser-2.2.1.jar

You might also like