1、環境準備
一、安裝VMware軟件,而後在VMware裏安裝三臺Linux虛擬機(我使用的是redhat)
二、設置虛擬機
node
三、下載數據庫安裝文件greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386
2、安裝
注:標示「三臺主機」的表示要在三臺電腦上都作該操做,「master節點」表示只在mdw主機上操做
一、關閉防火牆(三臺主機)(學習時能夠直接關閉,正式環境是經過開放端口)
#service iptables stop 中止防火牆服務,重啓電腦後仍然會開啓
#chkconfig iptables off 關閉防火牆服務開機啓動,重啓後生效
能夠兩個命令結合使用避免重啓
二、修改hosts文件(三臺主機)
在hosts文件中添加或修改一下內容(若是主機名沒法改,就在後面寫多個域名 例子: 192.168.10.200 mdw master )
192.168.10.20 mdw
192.168.10.21 sdw1
192.168.10.22 sdw2
添加以後,能夠經過ping命令測試是否正確,如:ping sdw1 測試是否能訪問sdw1節點
三、修改或添加/etc/sysctl.conf(三臺主機)
xfs_mount_options = rw,noatime,inode64,allocsize=16m
kernel.shmmax = 500000000
kernel.shmmni = 4096
kernel.shmall = 4000000000
kernel.sem = 250 512000 100 2048
#若是機子的性能好的好: kernel.sem = 250 512000 100 20480
kernel.sysrq = 1
kernel.core_uses_pid = 1
kernel.msgmnb = 65536
kernel.msgmax = 65536
kernel.msgmni = 2048
net.ipv4.tcp_syncookies = 1
net.ipv4.ip_forward = 0
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 = 1025 65535
net.core.netdev_max_backlog = 10000
vm.overcommit_memory = 2
四、配置/etc/security/limits.conf文件,添加如下內容(三臺主機)
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
五、設置預讀塊的值爲16384(三臺主機)
# /sbin/blockdev --getra /dev/sda 查看預讀塊,默認大小爲256
# /sbin/blockdev --setra 16384 /dev/sda 設置預讀塊
六、設置磁盤訪問I/O調度策略(三臺主機)
#echo deadline > /sys/block/sda/queue/scheduler (存儲的硬盤/sda)
七、上傳並解壓數據庫安裝文件(master節點)
# unzip greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.zip
八、安裝軟件(master節點)
# /bin/bash greenplum-db-4.2.2.4-build-1-CE-RHEL5-i386.bin
安裝過程當中會顯示如下內容,直接使用默認便可
安裝以後的目錄文件以下:
九、獲取環境參數(master節點)
# source /usr/local/greenplum-db/greenplum_path.sh
十、建立包含全部主機名的文件/home/gpadmin/all_hosts,文件內容:(三臺主機)
mdw
sdw1
sdw2
十一、運行gpseginstall工具 (master節點)
# gpseginstall -f /home/gpadmin/all_hosts -u gpadmin -p gpadmin
all_hosts是上個步驟建立的文件,安裝過程當中會讓輸入三臺主機的root密碼,完成後提示成功,以下圖:
十二、切換到gpadmin用戶驗證無密碼登陸(三臺主機)
(1)切換用戶
$ su - gpadmin
(2)獲取環境參數(全部節點)
# source /usr/local/greenplum-db/greenplum_path.sh
(3)使用gpssh工具來測試無密碼登陸全部主機,結果以下圖:
$ gpssh -f all_hosts -e ls -l $GPHOME
1三、配置環境變量(master節點)
[gpadmin@bj-gp-node1 ~]$ cd /home/gpadmin
[gpadmin@bj-gp-node1 ~]$ vi .bashrc
[gpadmin@bj-gp-node1 ~]$ vi .bash_profile
.bashrc和.bash_profile最後都添加下面兩行
source /usr/local/greenplum-db/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
而後將.bashrc文件發送到sdw1和sdw2,命令以下:
scp .bashrc sdw1:~
scp .bashrc sdw2:~
1四、建立存儲區域(master節點)
首先mkfs格式化硬盤/dev/sda,而後在掛載到 /data/ 最後配置自動掛載 vim /etc/fstab [這個就不詳細寫了]
(1) 建立Master數據存儲區域
# mkdir -p /data/master
(2) 改變目錄的全部權
# chown gpadmin:gpadmin /data/master
(3) 建立一個包含全部segment主機名的文件/home/gpadmin/segment_hosts,內容以下:
sdw1
sdw2
(4) 使用gpssh工具在全部segment主機上建立主數據和鏡像數據目錄,若是沒有設置鏡像能夠不建立mirror目錄(注意先在每一個segment格式硬盤,而後掛載上/data/ 而後設置自啓動)
# gpssh -f seg_hosts -e 'mkdir -p /data/primary'
# gpssh -f seg_hosts -e 'mkdir -p /data/mirror'
# gpssh -f seg_hosts -e 'chown gpadmin /data/primary'
# gpssh -f seg_hosts -e 'chown gpadmin /data/mirror
1五、同步系統時間
(1) 在Master主機上編輯/etc/ntp.conf來設置以下內容:
server 127.127.1.0
(2) 在Segment主機上編輯/etc/ntp.conf
server mdw
(3) 在Master主機上,經過NTP守護進程同步系統時鐘
# gpssh -f all_hosts -v -e 'ntpd'
1六、驗證操做系統設置
# gpcheck -f all_hosts -m mdw
注意運行結果是否有error信息,若是有處理掉錯誤信息後從新執行上面的命令檢查,直至沒有error信息,error以下圖
成功的信息以下:
1七、建立Greenplum數據庫配置文件
(1) 以gpadmin用戶登陸
# su - gpadmin
(2) 從模板中拷貝一份gpinitsystem_config文件
$ vi /home/gpadmin/gpinitsystem_config ($GPHOME/docs/cli_help/gpconfigs/gpinitsystem_config 是個模板)
$ chmod 775 gpinitsystem_config
(3) 設置全部必須的參數
ARRAY_NAME="EMC Greenplum DW"
SEG_PREFIX=gpseg
PORT_BASE=40000
declare -a DATA_DIRECTORY=(/data/primary)
MASTER_HOSTNAME=mdw
MASTER_DIRECTORY=/data/master
MASTER_PORT=5432
TRUSTED SHELL=ssh
CHECK_POINT_SEGMENT=8
ENCODING=UNICODE
(4) 設置可選參數
MIRROR_PORT_BASE=50000
REPLICATION_PORT_BASE=41000
MIRROR_REPLICATION_PORT_BASE=51000
declare -a MIRROR_DATA_DIRECTORY=(/data/mirror)
1八、運行初始化工具初始化數據庫
$ gpinitsystem -c gpinitsystem_config -h seg_hosts
成功以後,數據庫便啓動了,信息以下:
1九、啓動和中止數據庫測試是否能正常啓動和關閉,命令以下
$ gpstart
$ gpstop
20、訪問數據庫
psql -d postgres
輸入查詢語句
select datname,datdba,encoding,datacl from pg_database;
建立dba用戶:
postgres# create role source password 'source' createdb login;
查看用戶信息:
postgres# select rolename, oid from gp_roles;
顯示信息以下