Deepgreen分佈式安裝文檔php
環境準備node
一、安裝VMware虛擬機軟件,而後在VMware安裝三臺Linux虛擬機(使用centos7版本)linux
二、使用的虛擬機以下:算法
192.168.136.155 mdwsql
192.168.136.156 sdw1數據庫
192.168.136.157 sdw2centos
2.1三臺虛擬機分別修改主機名爲:mdw/sdw1/sdw2bash
[root@localhost ~]# hostnamectl set-hostname mdw服務器
2.2三臺虛擬機分別添加主機名和ip對應關係cookie
[root@sdw1 ~]# vi /etc/hosts
2.3三臺虛擬機進行時間同步操做
[root@sdw1 ~]# yum install ntp
[root@sdw1 ~]# cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
[root@sdw1 ~]# ntpdate pool.ntp.org
[root@sdw1 ~]# systemctl start ntpd
[root@sdw1 ~]# systemctl enable ntpd
2.4三臺虛擬機安裝工具(可選)
[root@mdw ~]# yum install net-tools –y
[root@mdw ~]# yum install perl
2.5三臺虛擬機關閉防火牆
[root@mdw ~]# systemctl stop firewalld
[root@mdw ~]# systemctl disable firewalld
2.6三臺虛擬機修改selinux的值爲disabled
[root@sdw1 ~]# vi /etc/selinux/config
2.7三臺虛擬機修改關於linux系統推薦配置
[root@mdw ~]# vi /etc/sysctl.conf
kernel.shmmax = 2000000000
kernel.shmmni = 4096
kernel.shmall = 16000000000
kernel.sem = 1000 2048000 400 8192
xfs_mount_options = rw,noatime,inode64,allocsize=16m
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
net.core.rmem_max = 2097152
net.core.wmem_max = 2097152
vm.overcommit_memory = 2
sysctl -p生效
2.8三臺虛擬機更改文件限制
[root@mdw ~]# vi /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 131072
* hard nproc 131072
2.9磁盤io調度算法有多種:CFQ,AS,deadline推薦deadline
[root@mdw ~]# grubby --update-kernel=ALL --args="elevator=deadline"
[root@mdw ~]#/sbin/blockdev --getra /dev/sda預讀塊默認大小爲8192
[root@mdw ~]#/sbin/blockdev --setra 16384 /dev/sda設置預讀塊大小16G
上述完成以後,三臺機器均需重啓系統,而後再開始進入數據庫安裝操做
三、數據庫安裝
3.1數據庫文件deepgreendb.16.32.rh6.x86_64.180912.bin下載並上傳到mdw主機上
http://vitessedata.com/deepgreen-db https://www.centos.org/download/
mdw主機建立gpadmin用戶
[root@mdw local]# useradd gpadmin
[root@mdw local]# passwd gpadmin
mdw主機賦權限解壓bin文件
[root@mdw local]# chmod u+x ./deepgreendb.16.32.rh6.x86_64.180912.bin
[root@mdw local]# ./deepgreendb.16.32.rh6.x86_64.180912.bin
安裝後的總體目錄以下:
爲gpadmin賦安裝後的總體目錄權限
[root@mdw deepgreendb]# chown -R gpadmin:gpadmin /usr/local/deepgreendb(軟鏈接)
[root@mdw deepgreendb]# source /usr/local/deepgreendb/greenplum_path.sh
3.2建立一個文件:hostfile_exkeys
[root@mdw deepgreendb]# vi hostfile_exkeys
mdw
sdw1
sdw2
裏面內容與etc/hosts節點的內容同樣
3.3創建節點服務器間的信任
[root@mdw deepgreendb]# gpssh-exkeys -f hostfile_exkeys
按照提示輸入root密碼,記住這一步不能輸入gpadmin的密碼,由於批量安裝時須要在/usr/local下建立目錄,須要root權限
3.4批量安裝
[root@mdw deepgreendb]# gpseginstall -f hostfile_exkeys -u gpadmin -p 123456
這一步其實就是將master上的greenplum打包經過scp命令傳到hostfile_exkeys中的主機上,並賦予目錄gpadmin的權限
20181031:11:31:26:011120 gpseginstall:mdw:root-[INFO]:-SUCCESS -- Requested commands completed
3.5檢查批量安裝狀況
[root@mdw deepgreendb]# gpssh -f hostfile_exkeys -e ls -l $GPHOME
返回結果中各節點目錄一致則表明批量安裝成功
3.6上述步驟完成後,建立Master主數據的存儲區域
[root@mdw deepgreendb]# mkdir -p /data/master
[root@mdw deepgreendb]# chown gpadmin:gpadmin /data/master
[root@mdw deepgreendb]# vi hostfile_gpssh_segonly
sdw1
sdw2
只含有segment節點
vi hostfile_gpssh_segonly這步主要是爲了使用gpssh工具建立數據目錄,單機安裝通常手動
3.7建立segment主機上建立主數據和鏡像數據目錄並賦權限
[root@mdw deepgreendb]# source greenplum_path.sh
[root@mdw deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data1/primary'
[sdw1] mkdir -p /data1/primary
[sdw2] mkdir -p /data1/primary
[root@mdw deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data2/primary'
[sdw1] mkdir -p /data2/primary
[sdw2] mkdir -p /data2/primary
[root@mdw deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data2/mirror'
[sdw1] mkdir -p /data2/mirror
[sdw2] mkdir -p /data2/mirror
[root@mdw deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'mkdir -p /data1/mirror'
[sdw1] mkdir -p /data1/mirror
[sdw2] mkdir -p /data1/mirror
[root@mdw deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'chown -R gpadmin:gpadmin /data1'
[sdw1] chown -R gpadmin:gpadmin /data1
[sdw2] chown -R gpadmin:gpadmin /data1
[root@mdw deepgreendb]# gpssh -f hostfile_gpssh_segonly -e 'chown -R gpadmin:gpadmin /data2'
[sdw1] chown -R gpadmin:gpadmin /data2
[sdw2] chown -R gpadmin:gpadmin /data2
[root@mdw deepgreendb]#
3.8建立gp初始化文件
[root@mdw deepgreendb]# su - gpadmin
[gpadmin@mdw deepgreendb]$ vi hostfile_gpinitsystem
sdw1
sdw2
從安裝軟件的模板中拷貝一份gpinitsystem_config文件到當前目錄:
[gpadmin@mdw deepgreendb]$ cp docs/cli_help/gpconfigs/gpinitsystem_config .
修改gpinitsystem_config設置segment個數
declare -a DATA_DIRECTORY=(/data1/primary /data2/primary)
[gpadmin@mdw deepgreendb]$ vi ~/.bashrc
source /usr/local/deepgreendb/greenplum_path.sh
export MASTER_DATA_DIRECTORY=/data/master/gpseg-1
export PGPORT=5432
export PGUSER=gpadmin
export PGDATABASE=test
[gpadmin@mdw deepgreendb]$ source ~/.bashrc
完成上述步驟運行初始化工具初始化數據庫
[gpadmin@mdw deepgreendb]$ gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem -B 8
註釋:因爲我是36個segement因此並行開的-B 8
安裝成功,進行操做便可!
[gpadmin@mdw deepgreendb]$ psql -d postgres
psql (8.2.15)
Type "help" for help.
postgres=#
也可使用以下初始方式:
[gpadmin@mdw deepgreendb]$ gpinitsystem -c gpinitsystem_config -h hostfile_gpinitsystem -s sdw2 -S
會出錯,由於沒有足夠的主機沒法造成spread模式,去掉-S
因爲選擇sdw2爲standby,須要在sdw2節點上建立文件夾
[root@sdw2 primary]# mkdir -p /data/master
[root@sdw2 primary]# chown gpadmin:gpadmin /data/master
======================================================================
關於鏡像,有2種方式開啓Mirror:
1. 在GP數據庫安裝的時候,開啓Mirror設置
gpinitsystem -c gpinitsystem_config -h hostfile_segonly -s smdw1 -S
-s 表明standby
-S表明spread模式
2. 在已建好的數據庫中,使用命令gpaddmirrors和gpinitstandby來開啓Mirror
=======================關於節點分佈模式:grouped、spread==============================
1.greenplum的兩種節點分佈模式
①grouped mirror模式:
(grouped模式,主機的mirror節點所有放在下一個主機上)
②spread mirror模式:
(spread模式,主機的第一個mirror在下個主機,第二個mirror在次下個主機,第三mirror在次次下個主機....)
2.初始化的mirror模式:
1)初始化爲grouped模式
在部署配置gp的過程當中
執行初始化命令:gpinitsystem ,默認的節點分佈方式爲grouped
[gpadmin@master ~]$gpinitsystem -c gpinitsystem_config -h seg_hosts -s standby
2)在初始化時改成spread模式
在部署配置gp的過程當中
執行初始化命令:gpinitsystem加上–S,節點分佈方式爲spread
[gpadmin@master ~]$gpinitsystem -c gpinitsystem_config -h seg_hosts -s standby –S
3)主機數量少的狀況(沒法改設spread)
假設segment主機爲兩臺,節點數爲2;執行初始化命令gpinitsystem加上–S是沒法造成spread模式,而且會在執行初始化命令以後報錯,緣由因爲主機個數沒有比primary節點數大1。
3.對於兩種模式,添加segment主機節點的狀況:
(排除自行修改gpexpand_inputfile_xxxxx_xxxx文件的狀況,能夠自行添加主機或節點)
1)grouped模式
新增的主機數必須大於等於2,確保新增primary和mirror在不一樣的機器上。
2)spread模式
新增主機數至少比每臺主機上的primary數大1,確保mirror平均分配在其餘主機上(參照圖例理解)。
4.兩種模式的優缺:
①grouped mirror:
若是其中一臺掛掉,那麼擁有該主機mirror的機器負載加劇一倍;在segment主機數很是多的狀況下,至少容許兩臺主機掛掉
②spread mirror:
若是其中一臺掛掉,那麼擁有該主機mirror的機器負載均衡,沒有grouped的壓力大;在segment主機數很是多的狀況下,只能夠掛掉一臺主機
(通常狀況,greenplum同時死機兩臺機率很低,死機一臺機率較高,建議spread)
==================================================================================
Rebalancing a Table從新平衡一張表
CREATE TABLE sales_temp (LIKE sales) DISTRIBUTED BY (date, total, customer);
INSERT INTO sales_temp SELECT * FROM sales;
DROP sales;
ALTER TABLE sales_temp RENAME TO sales;
============================================================================
https://yq.aliyun.com/articles/177
該連接是關於如何擴展segment的文檔寫的很是詳細,我的也是根據此連接操做成功的。
擴容回滾
若是在擴容過程當中,報錯,需先啓動GP master node,而後rollback再啓動GP
gpstart -m
gpexpand –r –D dw
gpstart
==============================================================================
linux nmon的安裝及使用:該軟件能夠監控linux系統
參考:https://blog.csdn.net/u010798968/article/details/74932124
1.下載nmon壓縮包:
http://nmon.sourceforge.net/pmwiki.php?n=Site.Download
根據系統的髮型版本及CPU位數選擇相應的壓縮包下載,如筆者的系統發行版本爲:紅帽子7.3.1611,64位:
因此選擇的版本爲:nmon16g_x86.tar.gz,
能夠下載到本地,再ftp傳到linux服務器上,也能夠直接在linux服務器上wget 下載連接。
2.下載後解壓縮,有適用於不一樣linux發行版本的文件,根據自身系統選擇不一樣文件,這裏筆者選擇的是nmon16g_x86_rhel72:
根據自身需求重命名及賦權,這裏筆者重命名爲nmon,賦755權限:
執行nmon:./nmon,進入nmon實時監控頁,按c查看CPU使用信息,按m查看內存使用信息,按n查看網絡使用信息,以下圖:
更多命令按h查看幫助信息。
3.採集系統性能信息,並生成報告
a.執行./nmon -s3 -c60 -f -m ./report,-s3爲每3s收集一次性能信息,-c60爲收集60次,-f爲生成的文件名包含該文件建立時間,-m ./report爲指定測試報告存儲路徑,以下圖:
執行完收集信息的命令後,生成了以hostname+建立年月+建立時間的文件,而且能夠看到有個nmon的後臺進程,即爲收集服務器性能信息的進程,直到60次收集執行完以後,該進程纔會結束。
b.下載 nmon analyser分析工具,該工具能夠將上面生成的.nmon文件轉化爲圖表,更爲直觀。
下載地址:https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/Power%20Systems/page/nmon_analyser
下載完解壓能夠看到有兩個文件:
打開 nmon analyser v51_2.xlsm文件:
將linux服務器上的報告.nmon文件down下來,點擊上圖中的Analyze nmon data按鈕,選擇剛剛down下來的文件,生成可視化圖表,以下圖:
另外,若是有同窗點擊Analyze nmon data按鈕後彈出「宏不可用」的提示,Excel可自行百度如何開啓宏,wps我的版則須要下載一個插件,筆者放到了網盤裏面:
http://pan.baidu.com/s/1o8iFk6m,可自行下載,下載以後解壓,雙擊vba6chs.msi安裝便可,安裝好以後重啓wps,便可正常使用宏,並生成可視化圖表。