postgreSQL hot stand by
来源:互联网 发布:中国facebook知乎 编辑:程序博客网 时间:2024/06/06 04:35
博客被遗弃好久了,不是因为忙,而是一直都很懒。今天也算是心血来潮吧。把最经刚刚在windows上配置的postgreSQL hot standby 的过程和大家分享一下。主要还是参考了别人的文章,然后再把自己配置过程中遇到的问题和注意点加以说明。主要是为了做一个记录备案,方便以后需要的时候,拿出来参考。同时给同样需要配置这样的环境的朋友一点参考。
这里我主要参考了这边的一篇博客:http://bbs.pgsqldb.com/index.php?t=msg&th=13110&start=0&rid=501&S=e98802133a29f3dc3313874966d5e986。
postgreSQL hot standby configurantion on windows
1、Hot standby
Standby技术基于PostgreSQL的预写入日志(wal)同步,建立服务器级的数据同步节点。他的节点间直接传递写操作的二进制预写入事务,传输效率高,性能好,一致性强,自动同步的DDL操作。流式同步允许slave节点连接到primary节点上,以流式获取新的wal数据。Replication连接要求用于流式同步的登录账号必须是superuser,可以限定该用户只能在primary节点中执行同步复制,提高安全性。
hot-standby的配置场景有三个:
(1) 正常运行时场景,配置master和slave,并且 master正常运行,slave也正常的运行
(2) Failover场景,即master坏了,slave提升为master,然后修理master机器
(3) Switchover场景,即master修复好后,配置为slave,即角色从原来的master转换为slave,而原来的slave转换成为master
2、Master节点
(1)下载安装postgreSQL最新版本(9.1.3.zip),解压到D盘
(2)创建postgres用户,并且设置密码123456
(3)在命令行输入:runas/user:postgres cmd ,输入postgres账户密码,进入postgres命令行环境。进入pgsql\bin目录initdb.exe -D ../data --no-locale 初始化数据群d
打开d:\pgsql\data\postgresql.conf修改
listen_addresses= '*'
wal_level =hot_standby
max_wal_senders= 5
wal_keep_segments= 1000 #需要至少16*1000=16GB的pg_xlog目录空间,否则可能空间溢出
(4)启动master节点,增加一个用于管理流复制的数据库用户
psql
Create user rep SUPERUSER ENCRYPTENPASSWORD ‘110’
(5) 配置master节点,让其可以接受slave节点连接
打开D:\pgsql\data\pg_hba.conf
添加 host replication rep 172.25.21.72/32 md5
注:这里的红色的ip就是slave服务器的ip地址
启动master节点:pg_ctl restart-D ../data
(6) 对master做基础备份
然后把 data目录复制出来(在配置slave中会有到),接着执行下面的命令
<!—master节点配置完成-->
2、slave节点配置
同样在slave机器上,解压postsql到C盘
然后把master中复制出来的data目录放到pgsql中
到c:\pgsql\share目录复制recovery.conf.sample,改名为recovery.conf,放到data目录下,并且做如下修改
archive_cleanup_command='d:\\pgsql\\bin\\pg_archivecleanupc:\\pgsql\\data\\pg_xlog %r'
standby_mode= 'on'
primary_conninfo= 'host=172.25.21.47 port=5432 user=reppassword=110'
trigger_file= 'c:\\pgsql\\data5433\\trigger_active.5433'
注:这里红色的ip指的是master的IP地址
接着修改c:\pgsql\data\postgresql.conf文件
hot_standby=on //注:这里的on不能有引号
然后启动就OK了。
注:两台机器需要时相同OS,如果操作系统不相同的话,当把data目录,从master复制到slave时,在slave的机器上无法用postgres的账户启动服务。
3、当作为master的机器failover
(1)将原来的slave配置成master
在slave端的data目录下,新建一个文件,trigger_active.5433 (这个文件时在recovery.conf中有配置的),然后
Slave端就成为了master
执行命令:psql -c “select pg_start_backup(‘third’)”
然后把data目录复制出来,拷贝到原来的master机器上,替换其中data
然后在执行命令:psql–c “select pg_stop_backup()”
(2)将原来的master配置成slave
这边的配置和配置slave的步骤一样的
然后再启动服务
- postgreSQL hot stand by
- stand by my side
- Xmemcached failure stand by
- postgresql hot-standby 配置
- POSTGRESQL HOT(HEAP-ONLY TUPLES)
- 【PostgreSQL】PostgreSQL读写分离之Hot Standby
- rac+stand by 清理archive log
- 伴我同行 (stand by me)
- PostgreSQL HOT STANDBY using log shipping
- [PostgreSQL] PG91 的 Replication + Hot Stanby 配
- PostgreSQL HOT-Standby 的主备切换
- postgresql异步流复制Hot Standby
- postgresql同步流复制的Hot Standby
- postgresql 异步流复制hot standby搭建
- PostgreSQL 只读模式 , hot standby recovery 模式
- 利用命令行让Windows进入待机(stand by)状态
- AFNetworking: AFHTTPRequestOperation doesn't work after stand by mode
- postgreSQL GROUP BY
- Oracle10g JDBC ojdbc14 DATE类型hibernate查询时分秒问题(纠结困扰了半天,汗)
- 介绍了8种非常YD用源代码去调试DLL的方法
- Struts 框架中的时间问题
- JS刷新当前页面
- 数据文件自动扩展只能到32G?
- postgreSQL hot stand by
- 进程通信 共享数据段
- android menu
- 让SVN服务开机自动启动
- ubuntu命令查询版本和内核版本
- mysql常用操作
- BlazeDS详解
- 最值得收藏的网站
- 从硬件的系统结构开始