歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux綜合 >> 學習Linux

Greenplum源碼編譯安裝(單機及集群模式)完全攻略,greenplum源碼

Greenplum源碼編譯安裝(單機及集群模式)完全攻略,greenplum源碼

Greenplum源碼編譯安裝(單機及集群模式)完全攻略,greenplum源碼


公司有個項目需要安裝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

Copyright © Linux教程網 All Rights Reserved