设为首页 收藏本站
查看: 981|回复: 0

[经验分享] Postgresql 主从数据库备份

[复制链接]

尚未签到

发表于 2016-11-19 10:48:39 | 显示全部楼层 |阅读模式
一。   内网环境测试  (192.168.8.20    192.168.8.21   2台机器安装路径均和外网保持一致)
Root   
启动命令:
/mapbar/app/pgsql/bin/postgres -D /mapbar/app/pgsql/data
/mapbar/db/program/postgresql-9.2.4/bin/postgres -D /mapbar/db/data


一。 修改主机的配置文件,然后重启数据库:
1. 添加复制的用户:
su  postgres
/mapbar/app/pgsql/bin/psql postgres  
Create user repl superuser password '111qqq,,,';
2. 修改pg_hba.conf 文件:
vi /mapbar/app/pgsql/data/pg_hba.conf  (这里8.20, 8.21 最好都加上 要不以后备机切主机也需要增加权限ip)
host    replication     repl         192.168.8.21/0      password
3. 修改postgresql.conf 文件:
wal_level = hot_standby
max_wal_senders = 5
listen_addresses = '*'
(  这段不用了  写的不对
archive_mode =on  --开启归档
archive_command ='test ! -f /mapbar/app/pgsql/archive_log/%f && cp %p /mapbar/app/pgsql/archive_log/%f'


hot_standby = on
4.  重启数据库

二。  修改备机的配置文件,然后关闭备机数据库:
1. 修改 recovery.conf: (此文件是从: /mapbar/db/program/postgresql-9.2.4/share   下面的recovery.conf.sample  文件拷贝到data下 改名而得)
standby_mode = on
primary_conninfo = 'host=192.168.8.20 port=5432 user=repl password=111qqq,,,'

三。     主机执行命令:(或者到bin下面执行 ./psql)
Su postgres:
psql -c "select pg_start_backup('initial_backup');"
Su  root:
rsync -cva -P --inplace --exclude=*pg_xlog* /mapbar/app/pgsql/data/ 192.168.8.21:/mapbar/db/data/
Su postgres:
psql -c "select pg_stop_backup();"
四。   启动备机的数据库:
五。  测试新加入一个user用户:
看看备机数据库有没有这个用户

=========================   备机切主机    ===================================
六。 如果想从备机切换到主机:
备机:
1. recovery.conf 增加:
trigger_file = '/mapbar/sh/trigger.kenyon'
2. 重启数据库
3. 停掉主机的数据库
4. 备机执行:
touch /mapbar/sh/trigger.kenyon    (创建了一个文件,数据库可以读到就切换为主机)
这时候:recovery.conf 文件已经变成了  recovery.done
5. 切换tomcat 连接 8.21的数据库,启动。
添加一个账号: 21AAA 的数据,这时8.20 是没有这个数据的
主机:
6. 拷贝备机的recovery.done  到主机上:recovery.conf:
修改里面的内容:
primary_conninfo = 'host=192.168.8.21 port=5432 user=repl password=111qqq,,,'
(   ================   这一步应该在开始配置的时候就加上, 避免备机数据库的重启
修改备机的 pg_hba.conf 的配置,允许主机访问:
host    replication     repl         192.168.8.20/32      password
重启备机的数据库
)

7. 启动主机:
报错:
FATAL:  timeline 1 of the primary does not match recovery target timeline 2
需要重新从备机 copy data 到主机:
cd /mapbar/db/program/postgresql-9.2.4/bin/
Su postgres:
./psql -c "select pg_start_backup('initial_backup');"
Su  root:
rsync -cva -P --inplace  /mapbar/db/data/ 192.168.8.20:/mapbar/app/pgsql/data/
Su postgres:
./psql -c "select pg_stop_backup();"
8. 启动主机,这时主机已变成了备用机
使用原备机的数据库创建账号,可以看见原主机也有了账号


相关资料:
http://my.oschina.net/Kenyon/blog/98217
http://www.tuicool.com/articles/rmEnUnN
http://blog.sina.com.cn/s/blog_6cd44dbc0101cbvt.html
http://www.pgsqldb.org:8079/pgdoc/tutorial-zh_cn.html

http://francs3.blog.163.com/blog/static/4057672720149285445881/

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-302512-1-1.html 上篇帖子: Postgresql两表联合更新 下篇帖子: PostgreSQL 9 数据类型
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表