Postgresql hot standby就是实现多个Postgresql节点实现数据同步(其实9.0x不只是异步)、这个同步是针对整数集群的(包含一切的数据、 DDL,DCL都会在salve上同步)。salve在利用日志恢复数据同时也能提供只读的操作,这样就可以利用这个技术实现多台主机数据同步和读取操作 的负载平衡。另存还有一点跟8.x不一样的地方就是这次9.0x提供的方法叫流复制(streaming repication),这是9.0x后才提供的新方法,这个方法只要事务提交后,就会把生成的日志同步的传送给slave数据库上,这比先前的WAL日 志需要写完现传送的方法有更低的数据延迟。
sql-9.2.1.tar.bz2" class="editor-attachment" src="http://img.jb51.cc/vcimg/static/loading.png" style="background:url("/e/u261/lang/zh-cn/images/localimage.png") no-repeat center;border:1px solid #ddd;" src="http://xiajie.blog.51cto.come/u261/themes/default/images/spacer.gif">
1、编译安装
yuminstall-ygccgcc-c++automakeautoconflibjpeglibjpeg-devellibpnglibpng-develfreetypefreetype-devellibxml2libxml2-develzlibzlib-develglibcglibc-develglib2glib2-develbzip2bzip2-develncursesncurses-develcurlcurl-devele2fsprogse2fsprogs-develkrb5krb5-devellibidnlibidn-developensslopenssl-developenldapopenldap-develnss_ldapopenldap-clientsopenldap-serversbison*glib*flexreadlinereadline-develaprapr-utilapr-develrzszsysstate4fsprogsntpreadline-developensslopenssl-develpam-devellibxml2-devellibxslt-develpython-develtcl-develflexbison
tar�jxvfpostgresql-9.2.1.tar.bz2 cdpostgresql-9.2.1 ./configure--prefix=/usr/local/pgsql gmakeworld gmakeinstall-world
2、新建用户,授权
#创建数据库目录 mkdir/data #创建用户postgres,并授权 useraddpostgres chownpostgres.postgres/data
3、配置环境变量
#切换到postgres用户 supostgres #为其配置环境变量: vim~postgres/.bash_profile PGLIB=/usr/local/pgsql/lib PGDATA=/data PATH=$PATH:/usr/local/pgsql/bin MANPATH=$MANPATH:/usr/local/pgsql/man exportPGLIBPGDATAPATHMANPATH exportPGDATA=/data
4、初始化数据库
initdb-D$PGDATA
5、Master配置文件修改
vimpg_hba.conf hostallall192.168.2.4/32trust hostallpostgres192.168.2.4/32trust
vimpostgres.conf listen_addresses='*' wal_level='hot_standby' max_wal_senders=3 wal_keep_segments=16#80GBrequiredonpg_xlog cp/usr/local/pgsql/share/recovery.conf.sample/data/recovery.cone vimreconver.conf standby_mode=on primary_conninfo='host=masterport=5433user=postgres'#从节点信息
6、生成备库实例
[postgres@localhostdata]$pg_ctl�D$PGDATA-p5432
传送数据文件到slave
在备库执行
[postgres@localhostdata]$pg_basebackup-D$PGDATA-Fp-Xs-v-hmaster-p5432-Upostgres
7、Slave配置文件修改
[postgres@localhost data]$ vimpostgresql.conf
注意删除"#"
hot_standby=on vimreconver.conf standby_mode=on primary_conninfo='host=masterport=5432user=postgres'#主节点信息
8、启动主从数据库
pg_ctl�D$PGDATA
master
[postgres@localhostdata]$ps-ef|greppostgres|grepsender postgres1202110924014:37?00:00:00postgres:walsenderprocesspostgres172.16.0.132(33427)streaming0/3036838
slave
[postgres@localhostdata]$ps-ef|greppostgres|greprecover postgres54795471017:24?00:00:00postgres:startupprocessrecovering00000002000000000000000D
注意:这个时候slave从master同步数据,但是slave是只读的。
原文链接:/postgresql/195130.html