GreenPlum使用手冊_第1頁
GreenPlum使用手冊_第2頁
GreenPlum使用手冊_第3頁
GreenPlum使用手冊_第4頁
GreenPlum使用手冊_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、GreenPlum數(shù)據(jù)庫集群安裝說明及使用手冊開心十二月總結(jié)*年*月*日目 錄1體系結(jié)構(gòu)介紹42安裝102.1安裝102.1.1安裝準(zhǔn)備102.1.2安裝gp-db112.1.3配置通訊132.1.4建立數(shù)據(jù)存儲(chǔ)池172.1.5同步系統(tǒng)時(shí)間172.1.6驗(yàn)證安裝是否成功172.1.7初始化172.1.8數(shù)據(jù)庫的啟停182.2Master雙機(jī)熱備192.3Segment節(jié)點(diǎn)互備203GP數(shù)據(jù)庫的使用223.1pgAdminIII工具223.1.1安裝和第一次使用pgAdminIII223.1.2主窗體233.1.3導(dǎo)航菜單233.1.4工具欄介紹243.1.5數(shù)據(jù)庫與表的創(chuàng)建253.1.6使用p

2、gAdminIII備份數(shù)據(jù)庫253.2JDBC配置263.3GP數(shù)據(jù)庫兩個(gè)重要概念273.3.1什么是Schema273.3.2數(shù)據(jù)分布存儲(chǔ)283.4GP的SQL語法283.4.1數(shù)據(jù)加載283.4.2SQL并行查詢313.4.3聚合函數(shù)313.4.4索引313.4.5分區(qū)323.4.6函數(shù)344維護(hù)數(shù)據(jù)庫384.1數(shù)據(jù)庫啟動(dòng) gpstart384.2數(shù)據(jù)庫停止 gpstop404.3查看實(shí)例配置和狀態(tài)404.4查看數(shù)據(jù)庫運(yùn)行狀態(tài) gpstate404.5查看用戶會(huì)話和提交的查詢等信息424.6查看數(shù)據(jù)庫、表占用空間424.7查看數(shù)據(jù)分布情況424.8實(shí)例恢復(fù) gprecoverseg424.

3、9查看鎖信息434.10數(shù)據(jù)庫的備份與恢復(fù)435調(diào)優(yōu)、排錯(cuò)436附件436.1DBA常用命令437Q&A447.1不支持觸發(fā)器447.2更新操作中的若干問題441 體系結(jié)構(gòu)介紹 Greenplum數(shù)據(jù)庫產(chǎn)品下一代數(shù)據(jù)倉庫引擎和分析方法Greenplum公司是企業(yè)數(shù)據(jù)云計(jì)算解決方案的創(chuàng)始人,為客戶提供靈活的數(shù)據(jù)商業(yè)智能和分析方法。能夠以極低的成本代價(jià),提供業(yè)界領(lǐng)先的計(jì)算性能??蛻舯榧懊绹髽I(yè):Nasdaq、NYSE、Ebay、Fox Interactive Media等。Greenplum公司的Greenplum數(shù)據(jù)庫產(chǎn)品是用于建造下一代數(shù)據(jù)倉庫和巨大規(guī)模分析系統(tǒng)的軟件解決方案。支持

4、SQL和MapReduce并行處理,更適合管理TB級(jí)PB級(jí)的海量數(shù)據(jù),并以極低的成本代價(jià)提供了業(yè)界領(lǐng)先的計(jì)算性能。使用獨(dú)有的sharing-nothing MPP架構(gòu),服務(wù)器的集群工作起來,就像是一個(gè)獨(dú)立的超級(jí)計(jì)算機(jī)!優(yōu)化了BI和分析方法,自動(dòng)化分區(qū)數(shù)據(jù)和并行查詢,比傳統(tǒng)數(shù)據(jù)庫執(zhí)行速度提高10倍100倍!Greenplum數(shù)據(jù)庫的特色:Ø 大規(guī)模地并行分析處理能力Greenplum數(shù)據(jù)庫可以跨越1001000顆CPU,實(shí)現(xiàn)統(tǒng)一的并行操作引擎,讓處理過程盡可能地靠近數(shù)據(jù)。Greenplum是業(yè)界最快的和最普及的高端數(shù)據(jù)倉庫解決方案!用傳統(tǒng)方式需花費(fèi)數(shù)天才能完成的復(fù)雜查詢,現(xiàn)在使用Gre

5、enplum只需要幾分鐘完成!Ø 核心的MPP架構(gòu)Greenplum數(shù)據(jù)庫提供數(shù)據(jù)和查詢的自動(dòng)化并行:數(shù)據(jù)被自動(dòng)分區(qū)跨越集群中的所有節(jié)點(diǎn);查詢以高度協(xié)作的方式,在集群的所有節(jié)點(diǎn)上執(zhí)行。Ø 高速PB級(jí)數(shù)據(jù)裝載利用獨(dú)有的MPP Scatter/Gather Streaming技術(shù),實(shí)現(xiàn)高速的數(shù)據(jù)裝載。每增加1個(gè)節(jié)點(diǎn),每小時(shí)裝載吞吐量提高4TB!Ø 數(shù)據(jù)庫內(nèi)部壓縮利用業(yè)界領(lǐng)先的壓縮技術(shù)提高性能和降低存儲(chǔ)空間。在有效較少1/31/10空間的同時(shí),相應(yīng)地提高了I/O性能。Ø 多級(jí)容錯(cuò)能力Greenplum數(shù)據(jù)庫利用多級(jí)冗余技術(shù),在硬件或軟件故障時(shí),保障操作可以繼續(xù)

6、執(zhí)行。Ø 在線系統(tǒng)擴(kuò)展為提高存儲(chǔ)容量、處理性能,增加新的服務(wù)器到集群中,擴(kuò)展的操作在后臺(tái)完成,數(shù)據(jù)庫可以繼續(xù)保持正常工作狀態(tài)不受影響。處理性能和存儲(chǔ)容量,隨服務(wù)器的個(gè)數(shù)增加成正比顯著提高!Ø 自有的MapReduce技術(shù)MapReduce是Google和Yahoo的大規(guī)模數(shù)據(jù)分析方法。Greenplum使用獨(dú)有的并行引擎執(zhí)行MapReduce。Greenplum數(shù)據(jù)庫架構(gòu)原理解密:Greenplum數(shù)據(jù)庫通過分布負(fù)載到多個(gè)服務(wù)器主機(jī),實(shí)現(xiàn)操作存儲(chǔ)和處理大規(guī)模的數(shù)據(jù)。數(shù)據(jù)庫實(shí)際上由1個(gè)Master服務(wù)器和若干個(gè)獨(dú)立的Segment服務(wù)器組成,一起協(xié)調(diào)工作,每個(gè)服務(wù)器都是獨(dú)立的

7、PostgreSQL數(shù)據(jù)庫。如圖1所示,Master服務(wù)器是數(shù)據(jù)庫的入口,驗(yàn)證客戶端,處理輸入的SQL,分布工作到若干Segment服務(wù)器,統(tǒng)一協(xié)調(diào)各個(gè)Segment返回的結(jié)果,匯總最終結(jié)果返回客戶端。Master不存儲(chǔ)任何用戶數(shù)據(jù),只有全局系統(tǒng)視圖。圖1:Greenplum數(shù)據(jù)庫架構(gòu) 如圖2所示,Segment服務(wù)器是真正數(shù)據(jù)存儲(chǔ)的地方,并承擔(dān)主要的查詢工作。用戶數(shù)據(jù)(表、索引)被分布存儲(chǔ)到有效的若干Segment,通過Hash算法,每個(gè)Segment存放數(shù)據(jù)的不同部分。圖2:Segment服務(wù)器真正存儲(chǔ)數(shù)據(jù)圖3展示了一套完整的Greenplum數(shù)據(jù)倉庫實(shí)施架構(gòu)示例。獨(dú)立的Master服務(wù)器

8、,通過千兆網(wǎng)絡(luò)連接在一起的若干Segment服務(wù)器,每個(gè)Segment服務(wù)器掛載獨(dú)立的RAID存儲(chǔ)。服務(wù)器基于X8664位硬件平臺(tái),安裝Linux操作系統(tǒng),獲得極高的性價(jià)比。圖3:Greenplum數(shù)據(jù)庫完整實(shí)施架構(gòu)示例圖4記錄了一次完整的MPP并行查詢過程。Master作為查詢調(diào)度器,為客戶端提供連接工作;Segment獨(dú)立管理數(shù)據(jù)片和數(shù)據(jù)操作。調(diào)度過程如下:1Master驗(yàn)證客戶端用戶。2Master連接到所有遠(yuǎn)程Segment實(shí)例。3Master解析SQL語句。4Master建立1個(gè)優(yōu)化的并行查詢計(jì)劃。5Master分布查詢計(jì)劃到所有的Segment實(shí)例。6Master協(xié)調(diào)查詢計(jì)劃在所有

9、Segment上并行執(zhí)行。7Master收集所有Segment的查詢結(jié)果并返回到客戶端。圖4:一次查詢調(diào)度過程Greenplum獨(dú)有的SharingNothing架構(gòu):數(shù)據(jù)倉庫在執(zhí)行全表掃描查詢時(shí),通常速度被存儲(chǔ)的帶寬限制,即瓶頸大多集中在I/O。Greenplum的Sharing-Nothing架構(gòu)物理分離數(shù)據(jù),存儲(chǔ)到若干Segment服務(wù)器,每個(gè)Segment使用多個(gè)、專用的、獨(dú)立的、高速的通道獨(dú)立連接到磁盤,并把管理數(shù)據(jù)庫資源:buffer、lock、block的職責(zé)委派到各個(gè)Segment,不使用Master統(tǒng)一管理資源!從圖5中可以看出與Sharing-Everything架構(gòu)(如O

10、racle RAC)對比,存在2個(gè)明顯區(qū)別:SegmentnSegment2Segment1圖5:sharing-everying對比sharing-nothing數(shù)據(jù)庫架構(gòu)1) 數(shù)據(jù)庫物理存儲(chǔ)方式不同:在RAC環(huán)境下,數(shù)據(jù)庫集中存儲(chǔ),集群中的所有節(jié)點(diǎn)共享I/O通道訪問數(shù)據(jù),隨著TB級(jí)別海量數(shù)據(jù)的增加,I/O瓶頸可想而知。2) 集群節(jié)點(diǎn)間內(nèi)部通信管理方式不同:如圖6,RAC使用GRD(Global Resource Directory)統(tǒng)一管理數(shù)據(jù)庫資源,管理內(nèi)部節(jié)點(diǎn)間通信。用戶對每個(gè)block的訪問,都要經(jīng)過GRD的協(xié)調(diào)調(diào)度,極其繁瑣且需要額外的進(jìn)程通信負(fù)擔(dān);隨著節(jié)點(diǎn)個(gè)數(shù)的增加,GRD會(huì)增加

11、管理的復(fù)雜度,可能會(huì)導(dǎo)致產(chǎn)生性能問題!圖6:Oracle RAC的GRD架構(gòu)2 安裝2.1 安裝2.1.1 安裝準(zhǔn)備CentOS-6.3-x86_64-bin-DVD1.isoVMware Workstationgreenplum-db-4.2.1.0-build-3-CommunityEdition-RHEL5-x86_64.zip2.1.1.1 os的配置以root用戶操作2.1.1.2 檢查系統(tǒng)條件檢查系統(tǒng)名稱,版本,內(nèi)核.# uname -a檢查磁盤空間# df -h2.1.1.3 設(shè)置主機(jī)名#vi /etc/sysconfig/network HOSTNAME=*single* (*

12、變量*,以后出現(xiàn)*string*,均指變量)2.1.1.4 設(shè)置集群各個(gè)機(jī)器ip與主機(jī)的對應(yīng)表#vi /etc/hosts127.0.0.1 single localhost配置運(yùn)行參數(shù):#vi /etc/sysctl.conf添加修改:kernel.sem = 250 64000 100 512kernel.shmmax = 500000000(最大共享內(nèi)存)kernel.shmmni = 4096kernel.shmall = 4000000000(共享內(nèi)存總量)kernel.sem = 250 64000 100 512kernel.sysrq = 1kernel.core_uses_p

13、id = 1kernel.msgmnb = 65536kernel.msgmax = 65536net.ipv4.tcp_syncookies = 1net.ipv4.ip_forward = 0net.ipv4.conf.default.accept_source_route = 0net.ipv4.tcp_tw_recycle=1net.ipv4.tcp_max_syn_backlog=4096net.ipv4.conf.all.arp_filter = 1dev_max_backlog=10000vm.overcommit_memory=2#vi /etc/security/limits

14、.conf添加修改* soft nofile 65536 * hard nofile 65536 * soft nproc 131072* hard nproc 1310722.1.1.5 關(guān)閉iptablesrootlocalhost # service iptables stopiptables:清除防火墻規(guī)則: 確定iptables:將鏈設(shè)置為政策 ACCEPT:filter 確定iptables:正在卸載模塊: 確定rootlocalhost # chkconfig iptables offrootlocalhost # service ip6tables stopip6tables:

15、清除防火墻規(guī)則: 確定ip6tables:將 chains 設(shè)置為 ACCEPT 策略:filter 確定:正在卸載模塊: 確定rootlocalhost # chkconfig ip6tables off2.1.2 安裝gp-db創(chuàng)建gpadmin用戶# useradd gpadmin# passwd gpadmin# New password: gpadmin# Retype new password: gpadmin2.1.2.1 解壓zip包例如:把安裝包c(diǎn)opy到/home/gpadmin目錄下#su gpadmin#cd /home/gpadmin#unzip greenplum-

16、db-4.2.1.0-build-3-CommunityEdition-RHEL5-x86_64.zip2.1.2.2 執(zhí)行安裝文件./greenplum-db-4.2.1.0-build-3-RHEL5-x86_64.bin安裝過程比較容易,但是注意要修改一下安裝路徑為/home/gpadmin/greenplum-db-4.2.1.0下圖打印了安裝時(shí)的情況:出現(xiàn)如下提示:*Do you accept the Greenplum Database license agreement? yes|no*yes*Provide the installation path for Greenplum

17、 Database or press ENTER to accept the default installation path: /home/gpadmingreenplum-db-4.2.1.0*/home/gpadmin/greenplum-db-4.2.1.0*Install Greenplum Database into </home/gpadmin/greenplum-db-4.2.1.0>? yes|no*yes*/home/gpadmin/greenplum-db-4.2.1.0 does not exist.Create /home/gpadmin/greenpl

18、um-db-4.2.1.0 ? yes|no(Selecting no will exit the installer)*yes*Optional Provide the path to a previous installation of Greenplum Database,or press ENTER to skip this step. e.g. /home/gpadmingreenplum-db-4.1.1.3This installation step will migrate any Greenplum Database extensions from theprovided p

19、ath to the version currently being installed. This step is optional and can be run later with: gppkg -migrate <path_to_old_gphome> /home/gpadmin/greenplum-db-4.2.1.0*Extracting product to /home/gpadmin/greenplum-db-4.2.1.0Extracting product to /home/gpadmin/greenplum-db-4.2.1.0Skipping migrati

20、on of Greenplum Database extensions.*Installation complete.Greenplum Database is installed in /home/gpadmin/greenplum-db-4.2.1.0Greenplum Database documentation is available for downloadat .*安裝成功!2.1.3 配置通訊登錄master機(jī)器 source一下greenplum_path.sh文件# source /home/gpadmin/greenplum-db/greenplum_path.sh2.1

21、.3.1 編輯一個(gè)主機(jī)列表 列表為主機(jī)名.#cd /home/gpadmin#vi all_hosts_file*host1*host2*host3*2.1.3.2 打通root的ssh通道 執(zhí)行g(shù)pssh-keys命令.#su root# gpssh-exkeys -f all_hosts_file gpssh-exkeys 將要求對每臺(tái)機(jī)器鑒權(quán).提示:后輸入用戶名密碼*Enter password for roothostname: root password提示: STEP 1 of 5 create local ID and authorize on local hostSTEP 2

22、of 5 keyscan all hosts and update known_hosts fileSTEP 3 of 5 authorize current user on remote hostsSTEP 4 of 5 determine common authentication file contentSTEP 5 of 5 copy authentication files to all remote hostsINFO completed successfully2.1.3.3 為每臺(tái)機(jī)器創(chuàng)建gpadmin用戶# su root(以root用戶登錄各節(jié)點(diǎn)機(jī)器來創(chuàng)建用戶)# gpss

23、h -f all_hosts_file '/usr/sbin/useradd gpadmin -d /home/gpadmin -s /bin/bash'2.1.3.4 為每臺(tái)機(jī)器添加gpadmin的密碼# gpssh -f all_hosts_file 'echo password | passwd gpadmin -stdin'2.1.3.5 修改目錄擁有者# chown -R gpadmin:gpadmin /home/gpadmin/*2.1.3.6 打通gpadmin的ssh通道執(zhí)行g(shù)pssh-keys命令.#su gpadmin#source /ho

24、me/gpadmin/greenplum-db/greenplum_path.sh# gpssh-exkeys -f all_hosts_file gpssh-exkeys 將要求對每臺(tái)機(jī)器鑒權(quán).提示:后輸入用戶名密碼*Enter password for roothostname: root password提示: STEP 1 of 5 create local ID and authorize on local hostSTEP 2 of 5 keyscan all hosts and update known_hosts fileSTEP 3 of 5 authorize curren

25、t user on remote hostsSTEP 4 of 5 determine common authentication file contentSTEP 5 of 5 copy authentication files to all remote hostsINFO completed successfully2.1.3.7 把master的gp-db服務(wù)copy到各個(gè)slave機(jī)器上.在master上把gp-db打包.# cd /home/gpadmin# source /home/gpadmin/greenplum-db/greenplum_path.sh# gtar -cvf

26、 /home/gpadmin/gp.tar greenplum-db-4.0.x.x2.1.3.8 做主機(jī)列表 (不能有空行和空格!)#vi seg_hosts_file*sdw1-1*sdw2-1*sdw3-1*2.1.3.9 copy到各個(gè)seg機(jī)器上# gpscp -f seg_hosts_file /home/gpadmin/gp.tar =:/home/gpadmin2.1.3.10 登錄到各個(gè)slave機(jī)器# gpssh -f seg_hosts_file2.1.3.11 解壓tar包=> gtar -directory /home/gpadmin -xvf /home/gp

27、admin/gp.tar2.1.3.12 查看服務(wù)=> ls /home/gpadmin/greenplum-db-4.0.x.x2.1.3.13 建立鏈接=> ln -s /home/gpadmin/greenplum-db-4.2.1.0 /home/gpadmin/greenplum-db2.1.3.14 更改用戶組=> chown -R gpadmin:gpadmin /home/gpadmin/greenplum-db2.1.3.15 刪除tar包=> rm /home/gpadmingp.tar2.1.3.16 退出遠(yuǎn)程登錄Exit gpssh=>ex

28、it2.1.3.17 激活#source /home/gpadmin/greenplum-db/greenplum_path.sh#source /.bashrc2.1.4 建立數(shù)據(jù)存儲(chǔ)池2.1.4.1 建立master的數(shù)據(jù)結(jié)構(gòu)存儲(chǔ)地# su gpadmin# cd /home/gpadmin# mkdir gpmaster2.1.4.2 建立業(yè)務(wù)數(shù)據(jù)存儲(chǔ)地登錄到每臺(tái)節(jié)點(diǎn)機(jī)上創(chuàng)建目錄, gpadmin有操作權(quán)限su - gpadmin# cd /home/gpadmin$ mkdir gpdata1# chown R gpadmin:gpadmin gpdata12.1.5 同步系統(tǒng)時(shí)間同步

29、系統(tǒng)時(shí)間:$ gpssh -f seg_hosts_file -v date 同步NTP時(shí)間:$ gpssh -f seg_hosts_file -v ntpd2.1.6 驗(yàn)證安裝是否成功# gpcheck -f all_hosts_file2.1.7 初始化設(shè)置變量:#su gpadmin#vi .bash_profile GPHOME=/home/gpadminexport GPHOMEMASTER_DATA_DIRECTORY=/home/gpadmin/gpmaster/gpseg-1export MASTER_DATA_DIRECTORY# source /.bashrc# sour

30、ce .bash_profile建立初始化文件:#vi gp_init_configARRAY_NAME="Greenplum"MACHINE_LIST_FILE=/home/gpadmin/seg_hosts_fileSEG_PREFIX=gpsegPORT_BASE=50000declare -a DATA_DIRECTORY=(/home/gpadmin/gpdata1)MASTER_HOSTNAME=masterMASTER_DIRECTORY=/home/gpadmin/gpmasterMASTER_PORT=5432TRUSTED_SHELL=sshCHECK_

31、POINT_SEGMENTS=8ENCODING=UTF8DATABASE_NAME=test執(zhí)行初始化:# source /home/gpadmin/greenplum-db/greenplum_path.sh# gpinitsystem -c /home/gpadmin/gp_init_config修改master機(jī)器上的路徑下 /home/gpadmin/gpmaster/gpseg-1的文件pg_hba.conf,在文件里面添加內(nèi)容:host all gpadmin 0.0.0.0/0 trust這部分添加的內(nèi)容要在文件中和這個(gè)文件內(nèi)容類似的地方添加修改master機(jī)器上的路徑下 /h

32、ome/gpadmin/gpmaster/gpseg-1的文件postgresql.conf,將內(nèi)容 #listen_addresses = '*' 的 # 符號(hào)去掉,即為將監(jiān)聽打開2.1.8 數(shù)據(jù)庫的啟停1)啟動(dòng)數(shù)據(jù)庫服務(wù)在master節(jié)點(diǎn)上,請以gpadmin用戶登入OS,執(zhí)行命令gpstart,系統(tǒng)會(huì)自檢,并提示是否啟動(dòng)服務(wù),選擇y,啟動(dòng)服務(wù)。如果使用gpstart -a 則系統(tǒng)無任何提示,進(jìn)行啟動(dòng)。如果不希望屏幕輸出則使用 gpstart -q具體的選項(xiàng)幫助說明,可以通過gpstart -h或者gpstart -help獲得。在啟動(dòng)服務(wù)后,通過ps -ef|grep p

33、ostgre*可以看到相關(guān)的服務(wù)進(jìn)程。2)查看數(shù)據(jù)庫狀態(tài)在master節(jié)點(diǎn)上,使用gpstate命令。gpstate -s 查看細(xì)節(jié)。3)關(guān)閉數(shù)據(jù)庫服務(wù)在master節(jié)點(diǎn)上,請以gpadmin身份,登入os, 執(zhí)行命令gpstop。如果有連接沒有斷開,想強(qiáng)行關(guān)閉服務(wù)使用gpstop -M fast (注意選項(xiàng)的大小寫)如果要重啟系統(tǒng),可以使用gpstop -u注:數(shù)據(jù)庫的啟停和查看數(shù)據(jù)庫狀態(tài)的操作都是在master上進(jìn)行的,不需要?jiǎng)觭egment節(jié)點(diǎn)。2.2 Master雙機(jī)熱備master鏡像是通過把primary master對應(yīng)的standby master放置到不同的物理主機(jī)實(shí)現(xiàn)的。正

34、常情況下只有primary master接受用戶連接請求,standby master通過gpsyncagent進(jìn)程(運(yùn)行在standby master上)利用事務(wù)日志保持與primary master的同步。由于master上不存放任何用戶數(shù)據(jù),存放在其中的表不會(huì)頻繁更新,因此同步是實(shí)時(shí)的。standby master所在主機(jī)除了復(fù)制進(jìn)程外,沒有正式master服務(wù)運(yùn)行。當(dāng)primary出現(xiàn)故障,standby master日志復(fù)制進(jìn)程停止,DBA可以激活standby master,使它切換成primary master,保證原primary master故障時(shí)最后提交的事務(wù)可以正常提交,

35、并且使用相同的端口接入用戶新的連接請求.啟用standby master的流程非常簡單,既可以在初始化時(shí)啟用standby master(gpinitsystem),也可以對存在的系統(tǒng)添加standby master(gpinitstandby)。無論哪種方式,首先要準(zhǔn)備standby的主機(jī),包括操作系統(tǒng),用戶等效性的建立,以及GP軟件的安裝。如果初始化時(shí),添加standby master,僅需要在gpinitsystem命令上使用-s參數(shù)指定standby用的主機(jī)名即可。也可以使用gpinitstandby工具去添加standby master。DBA需要從處于工作狀態(tài)的primary ma

36、ster節(jié)點(diǎn)上調(diào)用這個(gè)工具,使用-s參數(shù),后面跟上standby的主機(jī)名。比如gpinitstandby -s v-centos62-64-66如果遇到primary standby出現(xiàn)故障,由于到目前為止,EMC還沒有提供自己的cluster,因此,如果不使用第三方的cluster的情況下,DBA需要手工激活standby master進(jìn)行master failover,這個(gè)過程通過調(diào)用gpactivatestandby命令實(shí)現(xiàn) $ gpactivatestandby -d /gpdata/gpdata應(yīng)該是standby master的數(shù)據(jù)目錄。一旦完成激活,standby master的

37、身份轉(zhuǎn)化成primary master。如果在激活的時(shí)候,想配置一個(gè)新的standby master可以通過-c選項(xiàng)實(shí)現(xiàn)。 $ gpactivatestandby -d /gpdata -c new_standby_hostname在該工具調(diào)用完成之后,可以用gpstate檢查狀態(tài)$ gpstate -f,新的primary segment應(yīng)該是active的狀態(tài),如果有新加standby master,standby master狀態(tài)是passive。 Master instance = Active Master instance standby = Passive在完成,新primary

38、 master激活之后,應(yīng)該在其上運(yùn)行analyze命令。比如$ psql dbname -c 'ANALYZE;'如果沒有在激活時(shí),添加新的standby master,事后也可以通過gpinitstandby的調(diào)用添加新的standby master. 在系統(tǒng)工作的過程中,standby master節(jié)點(diǎn)也可能出現(xiàn)數(shù)據(jù)同步故障,比如網(wǎng)絡(luò)問題,導(dǎo)致gpsyncagent出現(xiàn)同步故障,用戶可能無法及時(shí)感知。所以DBA應(yīng)該定期檢查gp_master_mirroring中的信息,如果發(fā)現(xiàn)standby master是不同步的,應(yīng)該進(jìn)一步檢查detail_state和error_me

39、ssage列中的信息,判斷問題產(chǎn)生的原因,并進(jìn)行解決。完成問題的糾正后,通過調(diào)用gpinitstandby可以重新同步standby master。$ gpinitstandby -s standby_master_hostname -n2.3 Segment節(jié)點(diǎn)互備 segment級(jí)別的鏡像是通過把primary segment對應(yīng)的mirror segment放置到不同的物理主機(jī)實(shí)現(xiàn)的。正常情況下,只有primary segment的instance處于工作狀態(tài),所有primary segment上的變化通過文件塊的復(fù)制技術(shù)拷貝到mirror segment。因此,存放mirror seg

40、ment的主機(jī)上只有復(fù)制用的進(jìn)程,而不存在mirror segment instance。一旦primary segment出現(xiàn)故障,mirror segment的復(fù)制進(jìn)程停止,并啟動(dòng)instance,保證數(shù)據(jù)庫的操作繼續(xù)。 segment的故障檢測是通過后臺(tái)進(jìn)程ftsprobe實(shí)現(xiàn)的,并可以進(jìn)行自動(dòng)容錯(cuò),不需要DBA進(jìn)行干預(yù)。ftsprobe的檢測間隔是通過global服務(wù)參數(shù)gp_fts_probe_interval進(jìn)行定義的,默認(rèn)值是1分鐘,通常這個(gè)參數(shù)的設(shè)置應(yīng)該與參數(shù)gp_segment_connect_timeout保持一致。一旦ftsprobe進(jìn)程發(fā)現(xiàn)primary segment

41、出現(xiàn)故障,它會(huì)在數(shù)據(jù)字典中標(biāo)記該segment已經(jīng)停止。只有管理員對其進(jìn)行恢復(fù)后,才會(huì)改變狀態(tài)。 如果系統(tǒng)沒有進(jìn)行segment級(jí)別的鏡像,當(dāng)出現(xiàn)segment故障后,整個(gè)系統(tǒng)都將脫機(jī),直到恢復(fù)故障segment后,才可以重新啟動(dòng)。 啟用segment鏡像,既可以在初始化系統(tǒng)時(shí)進(jìn)行,也可以為存在的系統(tǒng)添加mirror。 如果在初始化系統(tǒng)是要求添加鏡像,需要在初始化配置文件中添加如下參數(shù) MIRROR_PORT_BASE 指定第一個(gè)mirror segment的端口號(hào),其它mirror segment在此基礎(chǔ)上加1,它的設(shè)置范圍是1到65535,但是設(shè)置時(shí)要注意不能與primary segmen

42、t沖突。 REPLICATION_PORT_BASE 指定第一個(gè)primary segment用于數(shù)據(jù)復(fù)制的端口號(hào),其它primary segment以此為基礎(chǔ),每次加1,計(jì)算復(fù)制用端口號(hào)。它的設(shè)置也不要與primary segment沖突。取值范圍1到65535 MIRROR_REPLICATION_PORT_BASE 指定第一個(gè)mirror segment用于數(shù)據(jù)復(fù)制的端口號(hào),其它mirror segment以此為基礎(chǔ),每次加1,計(jì)算復(fù)制用端口號(hào)。它的設(shè)置也不要與mirror segment沖突。取值范圍1到65535 MIRROR_DATA_DIRECTORY 指定了mirror seg

43、ment的數(shù)據(jù)目錄,聲明的目錄數(shù)量必須與primary segment的目錄數(shù)量一致,而且要保證進(jìn)行初始化操作的os用戶對這些目錄有讀寫權(quán)限。 然后調(diào)用gpinitsystem進(jìn)行初始化,默認(rèn)是使陣列中的主機(jī)相互存放對方的鏡像。如果主機(jī)的數(shù)量多于segment的數(shù)量,可以使用-S選項(xiàng),指定使用哪些主機(jī)作為鏡像用。 如果原有系統(tǒng)沒有鏡像,我們也可以向存在的系統(tǒng)添加鏡像。首先要獲取添加鏡像的構(gòu)造文件。這個(gè)文件可以自己編輯,也可以通過gpaddmirrors自動(dòng)生成,然后在此基礎(chǔ)上根據(jù)需要進(jìn)行修改。比如自動(dòng)生成添加mirror的構(gòu)造文件 $ gpaddmirrors -o filename文本編輯器

44、打開該構(gòu)造文件,可以看到其格式如下mirrorcontent=content:hostname:addressort:mir_replication_portri_replication_port:datadir_location默認(rèn)配置是原有的主機(jī)間互為鏡像,我們也可以添加新的主機(jī)作為鏡像使用,從而減少鏡像對性能的影響。 在得到mirror構(gòu)造文件后,可以用命令啟用鏡像。 $ gpaddmirrors -i mirror_config_file這時(shí)系統(tǒng)會(huì)根據(jù)配置文件設(shè)置,復(fù)制鏡像,并對鏡像進(jìn)行同步,提供保護(hù)。需要注意的是,在添加鏡像前應(yīng)該先備份數(shù)據(jù)庫,防止鏡像添加失敗(比如網(wǎng)路配置問題,內(nèi)核

45、參數(shù)設(shè)置不正確可能導(dǎo)致添加鏡像失?。?。因?yàn)镚REENPLUM目前只能添加鏡像,不能刪除鏡像。如果添加鏡像失敗會(huì)導(dǎo)致系統(tǒng)處于不正常狀態(tài)。 由于mirror segment可以自動(dòng)failover,因此當(dāng)primary segment出現(xiàn)故障時(shí),管理員可能無法及時(shí)察覺。所以一方面管理員應(yīng)該對系統(tǒng)定期檢查,另外一方面如果系統(tǒng)性能大幅下降(理論上,如果采用互為鏡像方式,當(dāng)一個(gè)主機(jī)出現(xiàn)故障時(shí),整個(gè)系統(tǒng)性能下降一半)管理員也應(yīng)該進(jìn)行系統(tǒng)檢查,判斷是否有segment已經(jīng)down掉了。 檢查是否有segment down掉,可以在master上執(zhí)行g(shù)pstate,如果看到類似這樣的內(nèi)容WARN:-Total

46、 primary segment failures (at master) = 1 <<<<<<,說明有primary segment down掉了。進(jìn)一步檢查故障segment,可以用SQL SELECT * FROM gp_segment_configuration WHERE status='d'獲取細(xì)節(jié)信息,請注意故障段的主機(jī),端口號(hào),首選身份,以及目錄這樣的信息,可以在troubleshooting的過程中提供幫助。還可以通過gpstate -c看到primary與mirror之間的映射關(guān)系。 一般來說,造成segment故障的原因

47、主要就是三大類,一類是segment主機(jī)由于硬件問題或者網(wǎng)絡(luò)問題無法訪問,一類是segment的相關(guān)進(jìn)程出現(xiàn)故障,比如被kill掉了。還有就是存儲(chǔ)問題,比如控制器故障等等。在這些問題被解決之后,系統(tǒng)不會(huì)自動(dòng)恢復(fù)故障segment,必須由DBA手工進(jìn)行恢復(fù)。這需要在master上調(diào)用命令$ gprecoverseg 進(jìn)行。它從故障之后產(chǎn)生的變化開始捕獲,整個(gè)操作會(huì)在后臺(tái)進(jìn)行。所以需要DBA調(diào)用命令gpstate -m判斷恢復(fù)操作完成的進(jìn)度情況。 3 GP數(shù)據(jù)庫的使用3.1 pgAdminIII工具這里選用pgAdmin III 1.8版為例進(jìn)行使用說明.3.1.1 安裝和第一次使用pgAdmin

48、III現(xiàn)在比較常用的版本是pgAdmin1.8.4,下載pgadmin3-1.8.4.zip到本地,解壓之后會(huì)出現(xiàn)三個(gè)文件,執(zhí)行pgadmin3-1.8.4_setup.exe之后在同級(jí)目錄會(huì)出現(xiàn)pgadmin3.msi,執(zhí)行該文件,桌面出現(xiàn)之后雙擊即可使用。第一次使用pgAdmin工具時(shí),會(huì)出現(xiàn)連接服務(wù)器的對話框,填寫:連接名稱、主機(jī)IP、端口(默認(rèn)是5432)、用戶名和密碼。其他參數(shù)一般不用修改。3.1.2 主窗體在主窗口中,顯示數(shù)據(jù)庫的結(jié)構(gòu)。您可以創(chuàng)建新的對象,刪除和編輯現(xiàn)有的對象,如果你使用的是當(dāng)前連接到數(shù)據(jù)庫用戶的權(quán)限,在主窗口的左側(cè)顯示所有服務(wù)器,以及它們所包含的對象樹。右上方顯示

49、,目前在樹中選定的對象的詳細(xì)信息。右下方包含一個(gè)SQL腳本。3.1.3 導(dǎo)航菜單1) 文件選項(xiàng)卡:文件選項(xiàng)卡中可以修改密碼,新建一個(gè)連接點(diǎn)擊“選項(xiàng)”按鈕之后,會(huì)出現(xiàn)一個(gè)多層的選項(xiàng)卡,在這里可以設(shè)置你的pgAdminIII。2.編輯菜單 點(diǎn)擊編輯菜單可以對數(shù)據(jù)庫和對象做相應(yīng)的操作。(右鍵所選對象相當(dāng)于編輯中所有相關(guān)功能)3.視圖用來調(diào)節(jié)頁面視圖的顯示。例如:打開與關(guān)閉窗口。4.工具在主窗體左面的對象樹中點(diǎn)擊不同的節(jié)點(diǎn)工具中菜單的高亮顯示可做相應(yīng)的操作。(所選對象右鍵操作可達(dá)到相同效果但工具中可以打開查詢工具)。5.幫助可以查看幫助文檔3.1.4 工具欄介紹 1 2 3 4 5 6 7 8 9 1

50、0 11圖標(biāo)1新建立一個(gè)服務(wù)器圖標(biāo)2刷新所選擇對象(所選對象右鍵刷新也可以實(shí)現(xiàn))圖標(biāo)3顯示所選對象屬性(所選對象右鍵刷新也可以實(shí)現(xiàn))圖標(biāo)4創(chuàng)建和選取對象同類型的對象。例如:選擇數(shù)據(jù)庫表點(diǎn)擊該圖標(biāo)就創(chuàng)建新的數(shù)據(jù)庫表,選取函數(shù)點(diǎn)擊該圖標(biāo)就新創(chuàng)建個(gè)函數(shù)。圖標(biāo)5刪除當(dāng)前所選擇的對象。圖標(biāo)6此圖標(biāo)為pgAdmin III最為重要工具之一(之后詳細(xì)介紹)。圖標(biāo)7查看所選對象數(shù)據(jù)。例如選中數(shù)據(jù)庫表點(diǎn)擊該圖標(biāo)會(huì)顯示表中的數(shù)據(jù)。圖標(biāo)8輸入條件對所選對象的數(shù)據(jù)進(jìn)行過濾。圖標(biāo)9可以對數(shù)據(jù)庫和數(shù)據(jù)表進(jìn)行維護(hù)。圖標(biāo)10.顯示當(dāng)前對象的指導(dǎo)建議。圖標(biāo)11.顯示關(guān)于SQL指令的幫助。3.1.5 數(shù)據(jù)庫與表的創(chuàng)建在左側(cè)導(dǎo)航欄

51、里右鍵選擇”新建數(shù)據(jù)庫”。如下圖:指定新建的數(shù)據(jù)庫名稱和所有者,模板、表空間、字符編碼如果沒有特殊要求默認(rèn)即可。建議建表的時(shí)候表名和字段名全部小寫,因?yàn)镚P是區(qū)分大寫小寫的。3.1.6 使用pgAdminIII備份數(shù)據(jù)庫右鍵選擇要備份的數(shù)據(jù)庫。用pgAdmin可以把數(shù)據(jù)庫備份成三種格式,compress,tar,plain。compress最小,是壓縮過的,但是里面亂碼。文件以.backup結(jié)尾tar比較大,上面有幾行是亂碼,下部分都是數(shù)據(jù),格式看上去不太整齊。文件以.backup結(jié)尾。plain也很大,但不是亂碼,里面的內(nèi)容很整齊,分為兩部分,上部分是相關(guān)的屬性和數(shù)據(jù)表的信息。下部分全是數(shù)據(jù)

52、。字段用一個(gè)Tab分隔。然而恢復(fù)時(shí)只有compress和tar的文件能夠恢復(fù)。也就是以.backup結(jié)尾的!還有這樣恢復(fù)時(shí),最好把庫刪了!然后新建空庫恢復(fù)!不要在原來庫的基礎(chǔ)上恢復(fù)!會(huì)有數(shù)據(jù)丟失!新表會(huì)加上,但舊表里的新數(shù)據(jù)不會(huì)加上。3.2 JDBC配置應(yīng)用程序如果需要使用JDBC連接GP數(shù)據(jù)庫,請參看如下配置文件:<ConfigParam><ParamID>connectDriver</ParamID><ParamValue>org.postgresql.Driver</ParamValue><ParamDesc>連接驅(qū)

53、動(dòng)</ParamDesc></ConfigParam><ConfigParam><ParamID>connectURL</ParamID><ParamValue>jdbc:postgresql:/ip:port/database_name</ParamValue><ParamDesc>連接URL</ParamDesc></ConfigParam><ConfigParam><ParamID>connectUsername</ParamID>&

54、lt;ParamValue>dpi_support</ParamValue><ParamDesc>用戶名</ParamDesc></ConfigParam><ConfigParam><ParamID>connectPassword</ParamID><ParamValue>dpi_support</ParamValue><ParamDesc>密碼</ParamDesc></ConfigParam>根據(jù)應(yīng)用程序的實(shí)際情況修改ip地址、端口號(hào)、數(shù)據(jù)庫名以及用戶名和密碼,在應(yīng)用程序里要引用postgresql-8.4-

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論