广告
返回顶部
首页 > 资讯 > 数据库 >PostgreSQL数据库单机怎样扩展为流复制
  • 948
分享到

PostgreSQL数据库单机怎样扩展为流复制

2024-04-02 19:04:59 948人浏览 八月长安
摘要

本篇文章为大家展示了postgresql数据库单机怎样扩展为流复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 在standby

本篇文章为大家展示了postgresql数据库单机怎样扩展为流复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

1. 在standby服务器安装postgres数据库,不需要初始化.

安装过程详见:Http://www.cnblogs.com/ilifeilong/p/6979288.html

2. 在primary服务器创建具有REPLICATION权限的复制用户

postgres=# CREATE ROLE repl WITH REPLICATioN PASSWord ‘repl‘ LOGIN;

3. 允许复制用户远程连接到primary服务器

$ grep "^host" pg_hba.conf host    all             all             127.0.0.1/32            trust host    replication             repl             0.0.0.0/0               md5  host    all             all             ::1/128                 trust

4. 在primary服务器设置流复制相关的参数

$ mkdir /usr/local/pgsql/arch  $ egrep "arcHive_mode|max_wal_senders|wal_keep_segments|archive_command|wal_level|hot_standby" postgresql.conf al_level = hot_standby            # minimal, archive, hot_standby, or logical archive_mode = on        # enables archiving; off, on, or always archive_command = ‘test ! -f /usr/local/pgsql/arch/%f && cp %p /usr/local/pgsql/arch/%f‘         max_wal_senders = 5        # max number of walsender processes wal_keep_segments = 30        # in logfile segments, 16MB each; 0 disables hot_standby = on            # "on" allows queries during recovery #hot_standby_feedback = off        # send info from standby to prevent

5. 重新启动primary服务器进程

$ pg_ctl stop -m fast $ pg_ctl start

6. 对primary服务器做一个全备并传输到standby服务器

  • 在primary服务器通过pg_(start|stop)_backup函数进行备份

postgres=# SELECT pg_start_backup(‘label‘, true);  pg_start_backup  -----------------  7/E6000060 (1 row) $ rsync -az --progress ${PGDATA} postgres@10.189.100.195:/usr/local/pgsql/ --exclude postmaster.pid postgres=# SELECT pg_stop_backup(); NOTICE:  pg_stop_backup complete, all required WAL segments have been archived  pg_stop_backup  ----------------  7/E60005C8 (1 row)

在standby服务器通过pg_basebackup命令进行备份,要求standby的PGDATA目录为空

$ pg_basebackup --host=10.189.102.118 --username=repl --port=5432 --label=backup --verbose --progress --pgdata=/usr/local/pgsql/data --checkpoint=fast --fORMat=p --xlog-method=stream Password:  transaction log start point: 7/EA000028 on timeline 1 pg_basebackup: starting background WAL receiver 65933562/65933562 kB (100%), 1/1 tablespace                                          transaction log end point: 7/EA000830 pg_basebackup: waiting for background process to finish streaming ... pg_basebackup: base backup completed

7. 设置standby数据库复制相关参数,使得standby失效转移后可以作为主库工作

$ mkdir /usr/local/pgsql/arch $ egrep "archive_mode|max_wal_senders|wal_keep_segments|archive_command|wal_level|hot_standby" postgresql.conf wal_level = hot_standby                 # minimal, archive, hot_standby, or logical archive_mode = on               # enables archiving; off, on, or always archive_command = ‘test ! -f /usr/local/pgsql/arch/%f && cp %p /usr/local/pgsql/arch/%f‘ max_wal_senders = 5             # max number of walsender processes wal_keep_segments = 30          # in logfile segments, 16MB each; 0 disables hot_standby = on                        # "on" allows queries during recovery #hot_standby_feedback = off             # send info from standby to prevent

8. 在standby文件创建恢复文件

$ cat recovery.conf  restore_command = ‘cp /usr/local/pgsql/arch/%f "%p"‘ standby_mode = ‘on‘ primary_conninfo = ‘user=repl password=repl host=10.189.102.118 port=5432 sslmode=disable sslcompression=1‘ archive_cleanup_command = ‘pg_archivecleanup -d /usr/local/pgsql/arch %r >> /usr/local/pgsql/arch/archive_cleanup.log‘ trigger_file = ‘/usr/local/pgsql/data/trigger_active_standby‘

9. 启动standby数据库进程,自动启动流复制

$ pg_ctl start -w waiting for server to start....LOG:  could not create IPv6 Socket: Address family not supported by protocol LOG:  redirecting log output to logging collector process HINT:  Future log output will appear in directory "pg_log".  done server started

10. 检查primary和standby数据库的延迟

  • 通过函数和系统表查看

edbstore=# select * from pg_stat_replication;           #在primary主库查看 -[ RECORD 1 ]----+------------------------------ pid              | 15013 usesysid         | 19206 usename          | repl application_name | walreceiver client_addr      | 10.189.100.195 client_hostname  |  client_port      | 56072 backend_start    | 2017-06-13 08:10:35.400508-07 backend_xmin     |  state            | streaming sent_location    | 7/EC01A588 write_location   | 7/EC01A588 flush_location   | 7/EC01A588 replay_location  | 7/EC01A588 sync_priority    | 0 sync_state       | async  edbstore=# SELECT pg_current_xlog_location();                      #在primary主库查看  pg_current_xlog_location  --------------------------  7/EC01A588 (1 row)  postgres=# select pg_last_xlog_receive_location(),pg_last_xlog_replay_location(),pg_last_xact_replay_timestamp();     #在standby备库查看  pg_last_xlog_receive_location | pg_last_xlog_replay_location | pg_last_xact_replay_timestamp  -------------------------------+------------------------------+-------------------------------  7/EC01A588                    | 7/EC01A588                   | 2017-06-13 08:25:20.281568-07 (1 row)
  • 通过进程查看

$ ps -ef | grep sender | grep -v grep #在primary库查看  postgres 15013 24883 0 08:10 ? 00:00:00 postgres: wal sender process repl 10.189.100.195(56072) streaming 7/EC01A668  $ ps -ef | grep receiver | grep -v grep #在standby库查看  postgres 12857 12843 0 08:10 ? 00:00:00 postgres: wal receiver process streaming 7/EC01A668

上述内容就是PostgreSQL数据库单机怎样扩展为流复制,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: PostgreSQL数据库单机怎样扩展为流复制

本文链接: https://www.lsjlt.com/news/67544.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • PostgreSQL数据库单机怎样扩展为流复制
    本篇文章为大家展示了PostgreSQL数据库单机怎样扩展为流复制,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。1. 在standby...
    99+
    2022-10-19
  • DM7 RAC数据库怎样恢复成单机数据库
    本篇文章为大家展示了DM7 RAC数据库怎样恢复成单机数据库,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。DM7 RAC数据库恢复成单机数据库1) 启动RMAN备份...
    99+
    2022-10-19
  • 怎么将源RAC CDB数据库复制成为单实例CDB数据库
    这篇文章主要介绍“怎么将源RAC CDB数据库复制成为单实例CDB数据库”,在日常操作中,相信很多人在怎么将源RAC CDB数据库复制成为单实例CDB数据库问题上存在疑惑,小编查阅了各式资料,整理出简单好用...
    99+
    2022-10-19
  • 灵活扩展数据库能力:MySQL主从复制作为集群技术的成本效益分析
    灵活扩展数据库能力:MySQL主从复制作为集群技术的成本效益分析随着互联网的迅猛发展,数据库的存储和处理压力也变得越来越大。为了满足业务的需求,很多企业开始寻求一种灵活扩展数据库能力的方法。在这个过程中,MySQL主从复制作为一种常见的集群...
    99+
    2023-10-22
    主从复制 扩展能力 成本效益分析
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作