公司有個項目需要安裝greenplum數據庫,讓我這個gp小白很是受傷,在網上各種搜,結果找到的都是TMD坑貨帖子,但是經過4日苦戰,總算是把greenplum的安裝弄了個明白,單機及集群模式都部署成功,下面由我給大家分享一下整個部署過程,並小分析一下安裝過程中遇到的各種坑。
首先,說一下我的環境,CentOS 7.2.1511,64位操作系統,全新安裝,沒有更新過
[root@mdw ~]# cat /etc/redhat-release CentOS Linux release 7.2.1511 (Core) [root@mdw ~]# uname -a Linux mdw 3.10.0-327.el7.x86_64 #1 SMP Thu Nov 19 22:10:57 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux
因為是用的Vmware 11,所以只是配了內網地址,用SecureCRT遠程,忘了網卡怎麼配的,發個我的配置參考一下
[root@mdw ~]# cat /etc/sysconfig/network-scripts/ifcfg-eno16777736 TYPE=Ethernet BOOTPROTO=static DEFROUTE=yes IPV4_FAILURE_FATAL=no IPV6INIT=yes IPV6_AUTOCONF=yes IPV6_DEFROUTE=yes IPV6_FAILURE_FATAL=no NAME=eno167 UUID=a8aa032c-5f5c-4a91-b18d-488b1182ea38 DEVICE=eno16777736 ONBOOT=yes IPADDR=10.0.0.110 PREFIX=24 GATEWAY=10.0.0.2 DNS1=223.5.5.5 PEERDNS=yes PEERROUTES=yes IPV6_PEERDNS=yes IPV6_PEERROUTES=yes
安裝之前先關閉selinux和防火牆,以後要開防火牆,可以只允許gp數據庫端口即可
關閉、開啟防火牆 systemctl start firewalld.service#啟動firewall systemctl stop firewalld.service#停止firewall systemctl disable firewalld.service#禁止firewall開機啟動 systemctl enable firewalld.service#允許firewall開機啟動 關閉selinux sed -i '/SELINUX/s/enforcing/disabled/' /etc/selinux/config 改完後重啟 開啟防火牆,預留gp端口 firewall-cmd --zone=public --permanent --add-port=5432/tcp 重載服務 firewall-cmd --reload 檢測端口是否開啟 firewall-cmd --query-port=5432/tcp
一、下面是重頭戲之一:編譯安裝greenplum
我是在2016年10月3日下載(從github克隆)的源碼,編譯安裝出來的版本是greenplum:4.3.99.00 build dev,postgresql:8.3.23
1、下載(克隆)源碼,沒有安裝git的先安裝git,yum一下就好了,源碼包存放的位置自己定
yum install -y git git clone https://github.com/greenplum-db/gpdb
2、因為是編譯安裝,所以需要大量的依賴包,當然也包括擴展項的依賴包和我們最愛的vim編輯器,羅列如下
yum install -y curl-devel bzip2-devel python-devel openssl-devel wget perl-ExtUtils-Embed libxml2-devel openldap-devel pam pam-devel yum install -y gcc-c++ libtool libaio bison vim-common.x86_64 vim-enhanced.x86_64 flex net-tools.x86_64
3、如果yum提示沒有這個包,建議更新一下yum源,你可以選擇阿裡的、新浪的或者163的,這裡以163為例,記得先yum安裝wget先
cd /etc/yum.repos.d wget http://mirrors.163.com/.help/CentOS7-Base-163.repo mv centos.repo centos.repo.bak mv CentOS7-Base-163.repo centos.repo yum clean all yum makecache
4、編譯安裝Greenplum,進入gpdb目錄,然後就是編譯安裝的傳統套路了。編譯參數有點長,我這裡分了兩行,你復制的話需要編輯成一整行再粘貼到命令行執行。
cd /data/software/gpdb ./configure --prefix=/data/program/gpsql --with-gssapi --with-pgport=5432 --with-libedit-preferred --with-perl --with-python --with-openssl --with-pam --with-krb5 --with-ldap --with-libxml --enable-cassert --enable-debug --enable-testutils --enable-debugbreak --enable-depend make make install
5、這是參考了一下網上的編譯參數,這個比較全,但是會安裝各種擴展,網上有簡單的,不過我沒試過。如果上面這步中有報錯,絕對是少了必要的依賴包,網上搜一下,再yum一下,重新configure就行。如果是完全按我的來的,那麼應該沒有問題,到此為止greenplum安裝完成(PS:我的gp安裝位置為:/data/program/gpsql)
二、重頭戲之二:配置單機模式
我所謂的單機模式是指將Master和segment安裝在一台機器上,嘗試了網上的各種配置發現並不成功,尤其是將mdw和sdw都解析成127.0.0.1的設置根本行不通。你要想一下greenplum是分布式設計,Master要靠DNS解析來獲得segment的ip地址,設置成127.0.0.1當然不行,你可以嘗試設置Master為127.0.0.1,而segment為正式的ip地址,或者按我這麼做:
1、配置hosts解析
vim /etc/hosts 後面添加以下內容: 10.1.5.10 mdw sdw 注:10.1.5.10是虛擬機的ip地址
2、改變greenplum安裝目錄的用戶和用戶組
chown -R gpadmin.gpadmin /data/program/gpsql
3、創建gp數據庫的管理賬戶gpadmin
groupadd gpadmin useradd -g gpadmin gpadmin passwd gpadmin #可以先設置一個簡單的,以後再改,比如123456
4、切換到gpadmin賬戶下,在家目錄下建立master和segment的數據存放目錄。你也可以自行設定數據存放目錄,如果你不是以gpadmin建立的目錄,還需要修改目錄的用戶和用戶組,最好是建在家目錄下。
su - gpadmin mkdir -p /home/gpadmin/masterdata mkdir -p /home/gpadmin/segmentdata mkdir -p /home/gpadmin/segmentmirror
5、創建包含所有主機的文件all_hosts
vim /home/gpadmin/all_hosts 加入下面兩行 mdw sdw
6、創建包含segment主機名的文件
vim /home/gpadmin/seg_hosts 加入下面一行 sdw
7、這還沒完哦,因為mdw是master,而你的master是你的本機,所以要將本機的主機名改成mdw,記得要改3個地方。當然,你不喜歡mdw,也可以自行設定,只是後面要做相應的更改
CentOS 7下的改法 先執行 hostnamectl set-hostname "mdw" 執行後會自動修改/etc/hostname文件,你也可以手動修改/etc/hostname文件 再執行 hostname mdw 最後改 vim /etc/sysconfig/network mdw 退出,重新登錄,o了
8、將MASTER_DATA_DIRECTORY加入Master主機環境中,修改gpadmin用戶的.bashrc。官方文檔裡,這一步是放在後面的,因為這裡的MASTER_DATA_DIRECTORY路徑是根據你設定的master存儲數據的路徑變動的,這裡我把他提前了。如果你是按我的來的,就沒問題。如果是自己設定的,就修改一下這個路徑,否則後面啟動數據庫的時候會提示找不到MASTER_DATA_DIRECTORY路徑。
cd /home/gpadmin vim .bashrc 最後添加如下內容 export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1 source /data/program/gpsql/greenplum_path.sh PS:greenplum_path的路徑也是根據你的gp安裝路徑來的,如果和我不一樣,自己改吧,若果路徑不對,gp命令將無法執行,會提示沒有這個命令
9、這裡因為master和segment是在同一台機器,所以不需要做時間同步,如果不在同一台機器,需要做時間同步
10、將機器中的python庫全部復制到gpdb的python庫目錄下,gp命令都是基於python的,但是他找不到系統的python庫(很奇怪啊!),於是我們就手動把這些庫拷貝到gp安裝目錄下的python文件夾裡,否則執行gp命令的時候會提示缺這個模塊啊,缺那個模塊啊之類的
\cp -R -f /usr/lib64/python2.7/site-packages/. /data/program/gpsql/lib/python/ PS:python庫下的一些庫是帶.的(隱藏的),一般執行cp命令是要不成的,just按我給的命令來
11、CentOS 7.2需要執行以下語句,這個錯誤是初始化時遇到的一個錯誤提示,具體是什麼我忘了,just do it,可能CentOS 6.x不會有
echo "RemoveIPC=no" >> /etc/systemd/logind.conf systemctl restart systemd-logind.service
12、編輯gp初始化配置文件,直接編輯一個新文件,不要復制官方目錄裡的再改了,除非你想知道這些東西都是什麼意思
vim /home/gpadmin/gpinitsystem_config 添加以下內容 ARRAY_NAME="EMC Greenplum DW" SEG_PREFIX=gpseg PORT_BASE=33000 declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata) MASTER_HOSTNAME=mdw MASTER_DIRECTORY=/home/gpadmin/masterdata MASTER_PORT=5432 MACHINE_LIST_FILE=/home/gpadmin/seg_hosts TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE MIRROR_PORT_BASE=43000 REPLICATION_PORT_BASE=34000 MIRROR_REPLICATION_PORT_BASE=44000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segmentmirror) PS:注意這裡面的幾個路徑,如果你有多個segment,declare就多加幾個路徑,我這裡只設了一個segment節點,所以只有一個路徑
13、建立信任關系,主要為了免密碼登錄的麻煩,若果提示命令不存在,先source一下.bashrc,如果還不對,回到第8步檢查一下你配的路徑
gpssh-exkeys -f /home/gpadmin/all_hosts PS:這是一個gp命令,不是系統自帶的
14、初始化數據庫,我曾經因為這一步執行不成功熬了一夜,各種報錯,各種提示
gpinitsystem -c /home/gpadmin/gpinitsystem_config 注意: 這裡遇到過最麻煩的提示是Unkown Host,在網上各種搜只告訴你host沒有解析到,然後改一下hosts文件就行。但是阿裡雲的虛擬機你改他,他仍然提示你解析不到seg的host, 很可能跟阿裡雲環境有關,如果你用的是阿裡雲虛擬機,建議考慮多幾台機器做個集群,不要想著在一台機器上又做master又做segment
15、執行完上面這步,會有各種報錯,其他的報錯你看看日志裡的錯誤提示就能解決,中途需要你給他個“y",成功後應該在顯示的信息裡看到兩個success的提示,然後用gpstop命令試一試,提示如下信息表示安裝成功(中途要給個"y"):
[gpadmin@mdw ~]$ gpstop 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Starting gpstop with args: 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Gathering information and validating the environment... 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Obtaining Greenplum Master catalog information 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Obtaining Segment details from master... 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Greenplum Version: 'postgres (Greenplum Database) 4.3.99.00 build dev' 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:--------------------------------------------- 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Master instance parameters 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:--------------------------------------------- 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Master Greenplum instance process active PID = 28031 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Database = template1 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Master port = 5432 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Master directory = /home/gpadmin/masterdata/gpseg-1 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Shutdown mode = smart 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Timeout = 120 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Shutdown Master standby host = Off 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:--------------------------------------------- 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:-Segment instances that will be shutdown: 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:--------------------------------------------- 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- Host Datadir Port Status 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- sdw /home/gpadmin/segmentdata/gpseg0 33000 u 20161002:21:22:46:034307 gpstop:mdw:gpadmin-[INFO]:- sdw /home/gpadmin/segmentmirror/gpseg0 43000 u Continue with Greenplum instance shutdown Yy|Nn (default=N): > y 20161002:21:22:49:034307 gpstop:mdw:gpadmin-[INFO]:-There are 0 connections to the database 20161002:21:22:49:034307 gpstop:mdw:gpadmin-[INFO]:-Commencing Master instance shutdown with mode='smart' 20161002:21:22:49:034307 gpstop:mdw:gpadmin-[INFO]:-Master host=mdw 20161002:21:22:49:034307 gpstop:mdw:gpadmin-[INFO]:-Commencing Master instance shutdown with mode=smart 20161002:21:22:49:034307 gpstop:mdw:gpadmin-[INFO]:-Master segment instance directory=/home/gpadmin/masterdata/gpseg-1 20161002:21:22:50:034307 gpstop:mdw:gpadmin-[INFO]:-Attempting forceful termination of any leftover master process 20161002:21:22:50:034307 gpstop:mdw:gpadmin-[INFO]:-Terminating processes for segment /home/gpadmin/masterdata/gpseg-1 20161002:21:22:50:034307 gpstop:mdw:gpadmin-[INFO]:-No standby master host configured 20161002:21:22:50:034307 gpstop:mdw:gpadmin-[INFO]:-Commencing parallel primary segment instance shutdown, please wait... 20161002:21:22:50:034307 gpstop:mdw:gpadmin-[INFO]:-0.00% of jobs completed 20161002:21:23:00:034307 gpstop:mdw:gpadmin-[INFO]:-100.00% of jobs completed 20161002:21:23:00:034307 gpstop:mdw:gpadmin-[INFO]:-Commencing parallel mirror segment instance shutdown, please wait... 20161002:21:23:00:034307 gpstop:mdw:gpadmin-[INFO]:-0.00% of jobs completed 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:-100.00% of jobs completed 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:----------------------------------------------------- 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:- Segments stopped successfully = 2 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:- Segments with errors during stop = 0 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:----------------------------------------------------- 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:-Successfully shutdown 2 of 2 segment instances 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:-Database successfully shutdown with no errors reported 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:-Cleaning up leftover gpmmon process 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:-No leftover gpmmon process found 20161002:21:23:10:034307 gpstop:mdw:gpadmin-[INFO]:-Cleaning up leftover gpsmon processes 20161002:21:23:11:034307 gpstop:mdw:gpadmin-[INFO]:-No leftover gpsmon processes on some hosts. not attempting forceful termination on these hosts 20161002:21:23:11:034307 gpstop:mdw:gpadmin-[INFO]:-Cleaning up leftover shared memory
16、執行gpstart命令啟動數據庫,然後enjoy it!,至此單機模式greenplum安裝成功
三、重頭戲之三:配置集群模式
1、首先做個簡單的規劃,比如:
10.0.0.105 master 10.0.0.106 segment1 10.0.0.107 segment2 ...
2、Master節點的greenplum安裝參照重頭戲之一即可,但是segment的安裝就不要再去編譯了,有更簡單的方法,先賣個關子,後面再說
3、配置host解析,Master節點需要配置自己及所有segment節點的host解析
vim /etc/hosts 10.0.0.105 master 10.0.0.106 segment1 10.0.0.107 segment2 ...
4、各個segment節點配置自己的host解析
#in segment1 vim /etc/hosts 10.0.0.106 segment1 #in segment2 vim /etc/hosts 10.0.0.107 segment2
5、在master上創建自身數據存儲目錄
su - gpadmin mkdir -p /home/gpadmin/masterdata
6、創建包含所有節點的all_hosts
vim /home/gpadmin/all_hosts 加入以下內容 master segment1 segment2
7、創建包含所有segment節點的seg_hosts
vim /home/gpadmin/seg_hosts 加入下面內容 segment1 segment2
8、在Master節點上為segment節點安裝greenplum數據庫(通過gpssh),必須在root下進行。這個安裝會自動在segment下安裝數據庫,並創建gpadmin用戶
source /data/program/gpsql/greenplum_path.sh gpseginstall -f /home/gpadmin/all_hosts -u gpadmin -p 123456
9、在Master上使用gpssh工具為所有segment主機創建主數據庫和鏡像數據目錄,root下執行即可
gpssh -f /home/gpadmin/seg_hosts -e 'mkdir -p /home/gpadmin/segmentdata' gpssh -f /home/gpadmin/seg_hosts -e 'mkdir -p /home/gpadmin/segmentmirror' gpssh -f /home/gpadmin/seg_hosts -e 'chown gpadmin.gpadmin /home/gpadmin/segmentdata' gpssh -f /home/gpadmin/seg_hosts -e 'chown gpadmin.gpadmin /home/gpadmin/segmentmirror'
10、同步系統時間:這裡用chrony這個軟件進行時間同步,比ntpd簡單、快捷、方便,首先,安裝他
yum install chrony -y
11、同步系統時間:修改配置文件
vim /etc/chrony.conf 將同步的服務器修改為以下內容,配置文件的原始設置直接刪掉 server 0.asia.pool.ntp.org server 1.asia.pool.ntp.org server 2.asia.pool.ntp.org server 3.asia.pool.ntp.org
12、同步系統時間:啟用服務,這個服務是個守護進程,可以設定開機自啟
systemctl start chronyd systemctl enable chronyd
13、同步系統時間:設置亞洲時區
timedatectl set-timezone Asia/Shanghai
14、同步系統時間:啟用NTP同步,同步設定完成,可以用date看一下所有節點的時間是不是都一致了,不一致的可以先等一等。如果不行,可以試試其他方法同步,這個時間同步是必須的
timedatectl set-ntp yes
15、將Master機器中的python庫全部復制到gpdb的python庫目錄下,這個也是必須的,為了保證gp程序能正常進行,但segment節點可以不用
\cp -R -f /usr/lib64/python2.7/site-packages/. /data/program/gpsql/lib/python/
16、CentOS 7.2需要執行以下語句,所有主機都要執行,如果你的所有主機都是CentOS 6系列,可以嘗試略過。可以在Master上用gpssh執行,自己研究吧
echo "RemoveIPC=no" >> /etc/systemd/logind.conf systemctl restart systemd-logind.service
17、配置初始化文件gpinitsystem_config,declare的路徑根據你所有機器的節點數目來,有幾個segment節點,就有幾個路徑。至於幾個PORT的數值,你可以做適當修改,應該只要不大於65535就行,也不要太小,以免和其他軟件沖突
vim /home/gpadmin/gpinitsystem_config 添加以下內容 ARRAY_NAME="EMC Greenplum DW" SEG_PREFIX=gpseg PORT_BASE=33000 declare -a DATA_DIRECTORY=(/home/gpadmin/segmentdata /home/gpadmin/segmentdata) MASTER_HOSTNAME=mdw MASTER_DIRECTORY=/home/gpadmin/masterdata MASTER_PORT=5432 MACHINE_LIST_FILE=/home/gpadmin/seg_hosts TRUSTED_SHELL=ssh CHECK_POINT_SEGMENTS=8 ENCODING=UNICODE MIRROR_PORT_BASE=43000 REPLICATION_PORT_BASE=34000 MIRROR_REPLICATION_PORT_BASE=44000 declare -a MIRROR_DATA_DIRECTORY=(/home/gpadmin/segmentmirror /home/gpadmin/segmentmirror)
18、系統檢測,看到有一些帖子和教學視頻裡有個gpcheck和gpcheckos命令,可以在初始化之前對系統進行檢測,但是我安裝的這個版本裡根本沒這個命令,所以這裡只是提一下,有知道的小伙伴可以留個言,可能我太low沒有發現吧。這裡就略過了
19、配置gpadmin用戶的環境變量,以便執行gp命令。需要切換到gpadmin用戶,完成後source一下,使命令生效。這裡的路徑要和你的安裝路徑一致,不一樣就改吧
su - gpadmin cd /home/gpadmin vim .bashrc export MASTER_DATA_DIRECTORY=/home/gpadmin/masterdata/gpseg-1 source /data/program/gpsql/greenplum_path.sh
20、運行配置文件初始化greenplum集群,這個需要在gpadmin用戶下執行
gpinitsystem -c /home/gpadmin/gpinitsystem_config
21、等待命令執行完成,中途需要給個"y",安裝完成後會自動運行gp,可以通過ps查看,有gp進程就表示安裝成功。
22、這裡值得一提的是,如果在給完"y"後的初始化過程中有錯誤,會提示你執行一條命令進行回滾操作,執行完成後回滾的腳本會自動刪除。切勿不執行這個回滾腳本就再次初始化,會提示你有的文件已存在,無法繼續初始化
23、到此為止greenplum集群就安裝完成了,以下的附帶內容是給小白做科普的,大神可以無視,so enjoy it!
四、附帶內容:greenplum的基本備份和恢復,和一些常用的命令
本內容是方便小白做數據遷移用的,大神可以無視。因為pgAdmin 4無法連接greenplum數據庫(人家畢竟是針對Postgresql的),pgAdmin 3可以連接但是會報錯,而且沒有備份和恢復選項(可能不支持linux下的備份和恢復,windows下能不能用不知道,也可能這就是個軟件bug,反正pgAdmin3也不更新了,就沒人鳥了),所以,我們只能手動備份和恢復了。
1、備份數據庫。其實有很多備份的命令,我選的這個是備份比較全的,因為要把數據從這個數據庫到入到另一個新庫,所以不只需要備份表和數據,還要備份其他的依賴設置等。用這個命令會提示你要建一個mail目錄,是個警告,我直接無視了
gpcrondump -x db -c -g -G -a -q>>gp_db.log #db改成你要備份的數據庫
2、備份以後會生成db_dump這個目錄,裡面是備份的數據,在Master上有,在segment節點上也有,導出來,放到新庫對應的文件夾下就行。
3、恢復只需要在Master上執行,中途要你給個"y",如果提示沒有這個庫,你就用gpAdmin建一個名字一樣的庫,然後在下面這個命令後加一個參數"-e",他會刪掉你建的庫,然後重建,所以不用擔心恢復的數據庫跟原來的不一樣。
gpdbrestore -b 20131231 #這串數字改成你自己的
4、恢復過程會有點長,耐心等待他的提示出來,不要以為他死機了,發一下我的數據庫的恢復信息給你做參考
[gpadmin@mdw gpseg1]$ gpdbrestore -b 20161003 -e 20161003:05:53:07:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Starting gpdbrestore with args: -b 20161003 -e 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:------------------------------------------- 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Greenplum database restore parameters 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:------------------------------------------- 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Restore type = Full Database 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Database to be restored = XXXXXXX #這是你恢復的數據庫名 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Drop and re-create db = On 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Restore method = Restore specific timestamp 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Restore method = Restore specific date 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Restore timestamp = 20161003170745 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Restore compressed dump = On 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Restore global objects = Off 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Array fault tolerance = f 20161003:05:53:08:014859 gpdbrestore:mdw:gpadmin-[INFO]:------------------------------------------- Continue with Greenplum restore Yy|Nn (default=N): > y 20161003:05:53:11:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Dropping Database XXXXXXXX 20161003:05:53:20:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Dropped Database XXXXXXXX 20161003:05:53:20:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Invoking sql file: /home/gpadmin/masterdata/gpseg-1/db_dumps/20161003/gp_cdatabase_1_1_20161003170745 20161003:05:53:42:014859 gpdbrestore:mdw:gpadmin-[INFO]:-gp_restore commandline: gp_restore -i -h mdw -p 5432 -U gpadmin --gp-i --gp-k=20161003170745 --gp-l=p --gp-d=db_dumps/20161003 --gp-c -d "XXXXXXXX": 20161003:06:09:41:014859 gpdbrestore:mdw:gpadmin-[WARNING]:-gpdbrestore finished but ERRORS were found, please check the restore report file for details 20161003:06:09:41:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Updating AO/CO statistics on mdw 20161003:06:09:41:014859 gpdbrestore:mdw:gpadmin-[INFO]:-No AO/CO tables restored, skipping statistics update... 20161003:06:09:41:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Commencing analyze of XXXXXXXX database, please wait 20161003:06:10:23:014859 gpdbrestore:mdw:gpadmin-[INFO]:-Analyze of XXXXXXXX completed without error
5、以上是備份和恢復的內容,下面給小白們做一下gp科普
科普一:如何授權你的pgAdmin 3連接上數據庫
答案是修改greenplum數據庫裡的pg_hba.conf,在master節點主庫裡。改好以後記得重啟數據庫,gpstop一下,再gpstart一下
vim /home/gpadmin/masterdata/gpseg-1/pg_hba.conf 添加一條規則放到所有規則的後面 host all all 10.1.33.138/24 md5 第一個all是你要登錄的數據庫 第二個all是你要登錄這個數據庫所使用的用戶名 第三個是允許登錄的ip網段 第四個是登錄驗證方式,md5是需要密碼驗證,不想用密碼就登錄改成trust就行
科普二:常用命令
登錄數據庫:psql -U 用戶名 數據庫名(不加數據庫名,會登錄到默認數據庫)
顯示所有數據庫:\l
顯示數據庫裡的表:\d 數據庫
顯示表結構:\d 表
進入數據庫:\c 數據庫
退出:\q
幫助:\?
顯示角色:\du
科普三:修改用戶密碼
先登錄數據庫,不知道的可以嘗試登一下postgres這個數據庫
ALTER USER 用戶名 WITH PASSWORD '123456';
後記:本人對greenplum了解甚少,大神如有高見,可盡情回復,小弟不勝感激
PS:鑒於網上爬蟲猖獗,博客被盜時有發生,這裡需要來個鏈接,大家請認准來自博客園的Scoter:http://www.cnblogs.com/scoter2008/
http://xxxxxx/Linuxjc/1162742.html TechArticle