pg+pgpool+Ubuntu 实现分布式流复制模式.docx
《pg+pgpool+Ubuntu 实现分布式流复制模式.docx》由会员分享,可在线阅读,更多相关《pg+pgpool+Ubuntu 实现分布式流复制模式.docx(14页珍藏版)》请在三一办公上搜索。
1、1.构架图本文档由postgreSQL专业群 深圳-GS初稿,PostgreSQL群beta 2015-01-18日修订主要工作有GS完成PGfSlave 1)PG Slave 2)Pgpgl进程PG(ma&ter)2. 主机宕机后构架图PG(New Master)APR REPgpoQl 程PG(Slave 2)PGfmaster)3. 恢复完成后构架图4.实际部署图5. 操作步骤1.安装pga) apt-get install postgresql-9.1b) : apt-get install postgresql-contrib-9.1c) : apt-get install libp
2、q-devd) : apt-get install postgresql-server-dev-9.1e) :配置系统用户postgres密码:pgf) :使用root用户,创建目录用来做后面的归档目录rootxelg-lLniix:mkdir /opt/archiverootxelg-liniLX:chown postgres :postgres /opt/archive/g) :进入postgres的home目录,vim .bash_profile添加环境变量,修改完成后使用 source .bash_profile 激活环境变量exp:rt PATHOSPATH:/usr/lib/pos
3、tgzesql/91/bin ezpozt PGPORT=5432export PGUSER=postgresrt PGPATH=/asr/lib/postgresql/9.1/bin expcrt PGDATA=/var/lib/postgresql/9.1/mainh) :配置数据库超级用户postgres密码:pgdb,并使用q推出SQL命令模式postgresyxelg-lLiinx:目 psqlpsql (9.1.13)Type help” for help.postgres=# alter user postgres password pgdb;ALTER ROLEpostgres
4、# q_postgrms多任1glinug:$ 口i) 进入postgres配置目录(下面目录只针对pg在ubuntu上的apt-get默认安装)postgres xelg-linux: -5 cd. /etc/postgresql./9.1/main/ postgres xelg-linux: /etc/postgresql/9. l/main.$ Is environment pg_hba conf postgresql conf pg_ctl.conf pg_ident.conf start.conf postgres xelg-linux:/etc/postgresql/9.l/mai
5、n$j)修改:pg_hba.conf:添加行:hostreplicationpostgres192.168.141.142/32trusthostreplicationpostgres192.168.141.140/32trusthostreplicationpostgres192.168.141.141/32trusthostreplicationpostgres1&2.1,68.141.142/32trey 1. SJmast.srhostreplicationpostgres192.160.141.140/32trut Sjfslave 1hostreplicationpostgres1
6、92.160.141.11/32trut #tslave 2k) 修改 postgresql.confi. 启用参数:listen_addressesii. 配置端口:port = 5432iii. 启用参数:wal_level = hot_standbyiv. 启用参数:archive_mode = onarchive_command = cp %p /opt/archivedir/%fv. 启用参数:hot_standby = onvi. 启用参数:max_wal_senders = 2l) 推出当前shell连接,重新登录系统用户postgres,确保环境变量生效m)创建配置文件post
7、gres.conf软连接文件到$PGDATA目录:ln /etc/postgresql/9.1/main/postgresql.conf /var/lib/postgresql/9.1/main/否则在使用pg_ctl start启动数据库是出现如下错误:postgreslxelg - virtualmachine:pg ctl startserver startingvlrtudl-Hacblne:S postgres cannot access the server conflguratlof tie /var/ltb/postgresql/g. 1/natn/pDEtgresql. co
8、nf :没有那个文件或目录n) 启动数据库(系统用户postgres下执行pg_ctl restart)20 L4-0-/7 09 : 5. CST LCG : roco: vod sm.rt shutdown201 1-0-27 09:1423 cel 丁心口: autovacuum K-unchf.r shutting down 201-O3 CST _OG: dazaliatEsystem i口 3hut down denestoppedserver 5tar?ingpotgrF&Klg- Li nux: /tc/po3gr3ql/9.1/minS 2014-04 -27 DE*: 19
9、 : 54 匚?;1? LCG : databmw: synt商shut cown 社 2014-04 -21 09: 1 9:.5? :st201-04-27 09; 19;54 GST LCG; database syslciT. it ready lu acjcljL CGiinccti cns2014 -04-27 09 :15:54 CS_ LCU: autovacuiLii Isuncher started2.配置ssh无密码连接(postgres)把B主机的公钥文件拷贝到A主机的authorized_keys,这样B主机可以ssh免密码登录A可以通过查看/var/log/secu
10、re来查看登录信息,这种方式为publickeya)安装 ssh 服务:apt-get install sshb)切换到系统用户postgres,执行ssh-keygen -t rsa命令,后续默认回车,并生成类似二维码的 东西。Generating public/prlvatc rsd key pair.Errtmr fi Le i n whn ch to eg th巳(/var/1 ib/pntgrql/ -id_ :directory T/var/lib/postgrql/.bsh1Enter pa.5sph.ra5e (empty tor no passpiir:Enter uame
11、paKbphxat; again:Your ide nt i t ic a t io n ha 5 been 5avel in /var/lib/posture 5 q_/ .ssh./ id_xss, Your pub J ic key h,-s been : aved in /va c/i ib/p():tgre:il/,sh/id r:; ,piib, Th.e ,ey tingeiprIet 15:On :c:d:c3:14:c :Til:29:xelg linuxThmrandomarl Linage is:+ RSA 2心:+IIIo oII . . o -II + + u - .
12、II三*SII = + . + .II0*u II- -O .II.-9.I0进入用户的home目录,用ls可以看到.ssh的文件夹,进入.ssh文件夹,查看文件:pcstgibxziLg-linux:/titc/pohtgrt3sql/9*l/itiain5 cdpcstgres&xelg-l inuix: -S u三 .53h pcstgroGK2L0-Linux:! id_ sa i ii_r m d. piiba) 使用 cat id_rsa.pub authorized_keys(#名称必须是 authorized_keys)pcstgre:xelg-i inux: /et(:/po
13、stgreql/3,1 /mains cd - /.s: authorized_keys 追加到 authorized_keys 里面j:cstgre7 5x.elg- irmx:. 5 5h$ sauthorized keys id rsa id xsa.puib known hosts nodel slavelpostgreszelg-Linux: -/ . ssti? cat nodel authorized._keys postgresxelg-Linux: -/ . ssti$ cat slavel authorized._k:eys uJrri ,n d) 测试无密码连接是否生效:
14、在第一次连接输入密码后,以后的连接都不用输入密码poGtgresselg-lin.u.x: -/ . ssh? gh 192.16S . 141.142Welcome 二口 Ubuntu 12.1.0 (UMU/Linux 3 * 3 - 0-L-/-generic 我8 6_6封)* Documertat ion: htzps : /help. libuntu. com/New rsleae T13.04 T avaiLafels.Run f do-rslease-upgrade to upgrade to it.Lat Logir: Sun Apr 27 09:32:07 2014 fro
15、m koLo Linux 2.local3.配置pg流复制模式(slave1,slave2)a) 使用 pg_ctl 命令,停止 slave1,slave2 的 PG 服务(slave)pL:5tyres3xfelg-liiLiix; /tc/pcstgrsql/S * 1/n.aliiS pg_ct 1 stop 2014-04-217 09; 21:39 CST LOG: received snar-z. ahutdo request I201-l-0-27 0:21:3S1 CST _OG: autovacuum Launcher shutting down waiting tier s
16、erver tc. shut dawn, . , .2014-04-2:7 0E?: 21:3? USl _OG: stiutt ing down2014-03-27 05:21:40 CST _UG: datibae system 12 shut lown donesr fjTnyjpedb)返回master服务器,执行如下命令postgresxelg-linux:/.ssh$ psqlpsql(9.1.13)Type help for help.postgres=# select pg_start_backup(stream_bak);pg_start_backup0/2000020(1
17、row)postgres=# qLinux:psql 9.1.13Type ,theLp,F for help.postgrsM select pg sts t rkup (F t.rsam_ba );pg_s tET t_ba c kuj?)/2000020(1 r-jw)postgrss=# cc) 使用命令 scp -r 9.1/ 192.168.141.140:和 scp -r 9.1/ 192.168.141.141:将备份文件分别 传送给 slave1 slave2 (master)d) 在master上面执行如下命令(master)postgresxelg-linux:$ psq
18、lpsql(9.1.13)Type help for help.postgres=# select pg_stop_backup();NOTICE: pg_stop_backup complete, all required WAL segments have been archivedpg_stop_backup0/2000168(1 row)postgres=#pcLgre1 g-1 _iiux: -5 pqlpql (9.1.L 3)Type pihGlpr for help.postgres= # select pg_stop_bajckup);NOTICE: pg_stop_back
19、up complete all required WAL SEgments have been archived pg_s top_b ackup0/2D0016B(1 row)e) 切换终端到 slavel 和 slave2,进入/9.1/main 目录,并执行 vi recovery.conf (slave1 slave2)cd 9.1/mann/ pGstgresfixelg-Linux:.1/main? pwd /var/Lib/postgre5ql/9.1/nainpcstgresGelg-Linux:-/9.1/main? vi recovery.conff) 添加行:编辑文件 $
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- pg+pgpool+Ubuntu 实现分布式流复制模式 pg pgpool Ubuntu 实现 分布式 复制 模式
链接地址:https://www.31ppt.com/p-4887491.html