一.组成部分

  • 1.walsender进程是用来发送WAL日志记录的
  • 2.walreceiver进程是用来接收WAL日志记录的
  • 3.startup进程是用来apply日志的

二.主库配置

  • 1.授权账号,用于远程连接复制,类似mysql的复制账号
CREATE ROLE replica login replication encrypted password 'replica';
  • 2.pg_hba.conf新增策略
host    replication     replica         172.16.10.0/24         md5
  • 3.postgresql修改主配置文件
wal_level = hot_standby   # 备用服务器上增加了运行只读查询所需的信息
max_wal_senders = 5 # 这个设置了可以最多有几个流复制连接,即几个slave
wal_keep_segments = 128 # 设置流复制保留的最多的xlog数目,默认每个16M,总大小128*16
wal_sender_timeout = 60s # 设置流复制主机发送数据的超时时间
  • 4.启动primary主库
pg_ctl start -D $PGDATA
pg_ctl start -D /data/pgsql_data
/etc/init.d/pgsqld start

三.slave配置

  • 1.复制主库的pgsql_data目录
pg_basebackup -D . -Fp -Xs -v -P -h 172.16.10.100 -U repl -p 5432 --format=p -T "/data/pgsql_data/pgdata01"=/data/pg_data/tb/
# 复制到本地备份目录,再移动到/data/pgsql_data (如果数据库很大很浪费时间做二次移动)
mv ./* /data/pgsql_data
cd /data/pgsql_data/pg_tblspc
ln -s /data/pgsql_data/pgdata01 16428
  • 2.修改slave的postgresql.conf
max_connections = 200      # 比主库稍大即可
hot_standby = on
max_standby_streaming_delay = 30s
wal_receiver_status_interval = 10s
hot_standby_feedback = on
  • 3.在$PGDATA目录下创建recovery.conf文件
standby_mode = on  # 指定为从库
primary_conninfo = 'host=172.16.10.100 port=5432 user=repl password=repl' # 对应的主库信息
recovery_target_timeline = 'latest' # 这个说明这个流复制同步到最新的数据
  • 4.启动slave
pg_ctl start -D $PGDATA
pg_ctl start -D /data/pgsql_data
/etc/init.d/pgsqld start
  • 5.在主库上查询同步状态
postgres=# \x
postgres=# select * from pg_stat_replication;
-[ RECORD 1 ]----+------------------------------
pid | 1664
usesysid | 16426
usename | repl
application_name | walreceiver
client_addr | 172.16.10.142
client_hostname |
client_port | 48645
backend_start | 2018-11-27 13:22:53.316104+08
backend_xmin | 1854
state | streaming
sent_location | 0/12000138
write_location | 0/12000138
flush_location | 0/12000138
replay_location | 0/12000138
sync_priority | 0
sync_state | async
# 有三个值
async: 异步
sync: 同步
potential: 虽然现在是异步模式,但是有可能升级到同步模式 sent_location--发送wal的位置
write_location--备库接收到的wal的位置
flush_location—备库写wal日志到磁盘的位置
replay_location—备库应用日志的位置 查看备库落后主库多少字节
select pg_xlog_location_diff(pg_current_xlog_location(),replay_location)/1024/1024 as MB from pg_stat_replication;
select pg_xlog_location_diff(pg_current_xlog_location(),replay_location)/1024/1024/1024 as GB from pg_stat_replication;
  • 6.slave的log
[root@mycat01 pg_log]# cat postgresql-2018-11-27_132255.csv
2018-11-27 13:22:55.938 CST,,,29116,,5bfcd4af.71bc,1,,2018-11-27 13:22:55 CST,,0,LOG,00000,"ending log output to stderr",,"Future log output will go to log destination ""csvlog"".",,,,,,,""
2018-11-27 13:22:55.953 CST,,,29118,,5bfcd4af.71be,1,,2018-11-27 13:22:55 CST,,0,LOG,00000,"database system was interrupted; last known up at 2018-11-27 13:17:47 CST",,,,,,,,,""
2018-11-27 13:22:55.965 CST,,,29118,,5bfcd4af.71be,2,,2018-11-27 13:22:55 CST,,0,LOG,00000,"entering standby mode",,,,,,,,,""
2018-11-27 13:22:56.014 CST,,,29119,,5bfcd4b0.71bf,1,,2018-11-27 13:22:56 CST,,0,LOG,00000,"started streaming WAL from primary at 0/11000000 on timeline 1",,,,,,,,,""
2018-11-27 13:22:56.046 CST,,,29118,,5bfcd4af.71be,3,,2018-11-27 13:22:55 CST,1/0,0,LOG,00000,"redo starts at 0/11000028",,,,,,,,,""
2018-11-27 13:22:56.047 CST,,,29118,,5bfcd4af.71be,4,,2018-11-27 13:22:55 CST,1/0,0,LOG,00000,"consistent recovery state reached at 0/11000128",,,,,,,,,""
2018-11-27 13:22:56.047 CST,,,29116,,5bfcd4af.71bc,2,,2018-11-27 13:22:55 CST,,0,LOG,00000,"database system is ready to accept read only connections",,,,,,,,,""
  • 7.进程
[root@mysql56 pgsql_data]# ps -ef |grep postgres
postgres 1621 1 0 13:14 ? 00:00:00 /usr/local/pgsql/bin/postmaster -D /data/pgsql_data
postgres 1622 1621 0 13:14 ? 00:00:00 postgres: logger process
postgres 1624 1621 0 13:14 ? 00:00:00 postgres: checkpointer process
postgres 1625 1621 0 13:14 ? 00:00:00 postgres: writer process
postgres 1626 1621 0 13:14 ? 00:00:00 postgres: wal writer process
postgres 1627 1621 0 13:14 ? 00:00:00 postgres: autovacuum launcher process
postgres 1628 1621 0 13:14 ? 00:00:00 postgres: archiver process last was 000000010000000000000011.00000028.backup
postgres 1629 1621 0 13:14 ? 00:00:00 postgres: stats collector process
postgres 1664 1621 0 13:22 ? 00:00:00 postgres: wal sender process repl 172.16.10.142(48645) streaming 0/12000570 #用于发送log
postgres 1669 1621 0 13:23 ? 00:00:00 postgres: postgres postgres [local] idle postgres 29116 1 0 13:22 pts/6 00:00:00 /usr/local/postgresql-9.4.7/bin/postgres -D /data/pgsql_data
postgres 29117 29116 0 13:22 ? 00:00:00 postgres: logger process
postgres 29118 29116 0 13:22 ? 00:00:00 postgres: startup process recovering 000000010000000000000012
postgres 29119 29116 0 13:22 ? 00:00:00 postgres: wal receiver process streaming 0/12000570
postgres 29120 29116 0 13:22 ? 00:00:00 postgres: checkpointer process
postgres 29121 29116 0 13:22 ? 00:00:00 postgres: writer process
postgres 29122 29116 0 13:22 ? 00:00:00 postgres: stats collector process

https://www.postgresql.org/docs/9.4/app-pgbasebackup.html

https://my.oschina.net/u/2254487/blog/783904

流复制-pg_basebackup (有自定义表空间)的更多相关文章

  1. 流复制-pg_basebackup (没有自定义表空间)

    一.组成部分 1.walsender进程是用来发送WAL日志记录的 2.walreceiver进程是用来接收WAL日志记录的 3.startup进程是用来apply日志的 二.主库配置 1.授权账号, ...

  2. 流复制-pg_start_backup(带自定义表空间)

    一.准备slave库 archive_mode = on ---开启归档模式 archive_command = 'test ! -f /mysqldata/pg/archive_active/%f ...

  3. 【HICP Gauss】数据库 数据库管理(连接方式 会话模式 存储表空间)-6

    数据库连接方式:驱动连接和客户端连接 驱动连接 : JDBC GSC ODBC 客户端连接 zsql工具 zsql / as sysdba -q #管理员身份登陆 zsql omm/ - #普通身份登 ...

  4. 【Oracle 】tablespace 表空间创建和管理

    1.表空间的概述 1. 表空间是数据库的逻辑组成部分. 2. 从物理上讲,数据库数据存放在数据文件中: 3. 从逻辑上讲,数据库是存放在表空间中,表空间由一个或者多个数据文件组成. 2.oracle的 ...

  5. 9. InnoDB通用表空间

    9. InnoDB通用表空间 通用表空间是InnoDB 使用CREATE TABLESPACE语法创建的共享表空间.本节中的以下主题描述了常规表空间功能和功能: 通用表空间功能 创建通用表空间 将表添 ...

  6. KingbaseES V8R3集群运维案例之---用户自定义表空间管理

    ​案例说明: KingbaseES 数据库支持用户自定义表空间的创建,并建议表空间的文件存储路径配置到数据库的data目录之外.本案例复现了,当用户自定义表空间存储路径配置到data下时,出现的故障问 ...

  7. 6. 将单独表空间(File-Per-Table Tablespaces)复制到另一个实例

    6. 将单独表空间复制到另一个实例 本节介绍如何将单独表空间从一个MySQL实例复制 到另一个MySQL实例,也称为可传输表空间功能. 将InnoDB单独表空间复制到其他实例的原因有很多: - 在不对 ...

  8. 数据库周刊28│开发者最喜爱的数据库是什么?阿里云脱口秀聊程序员转型;MySQL update误操作;PG流复制踩坑;PG异机归档;MySQL架构选型;Oracle技能表;Oracle文件损坏处理……

    热门资讯 1.Stackoverflow 2020年度报告出炉!开发者最喜爱的数据库是什么?[摘要]2020年2月,近6.5万名开发者参与了 Stackoverflow 的 2020 年度调查,这份报 ...

  9. 表迁移工具的选型-复制ibd的方法-传输表空间

    1.1. 场景 有的时候开放人员自己的库需要帮忙导一些数据,但是表的数据量又很大.虽然说使用mysqldump或mysqlpump也可以导.但是这耗时需要比较久. 记得之前建议开放人员可以直接使用na ...

随机推荐

  1. qt 怎么让程序自带字体,就是说在操作系统上没有的字体

    字体要加到.qrc文件中 QString Widget::loadFontFamilyFromTTF() { static QString font; static bool loaded = fal ...

  2. Ubuntu syslog 太多的 named[1195]: error (network unreachable) resolving './DNSKEY/IN': 2001:7fd::1#53

    Edit file /etc/default/bind9: # run resolvconf? RESOLVCONF=yes # startup options for the server OPTI ...

  3. Github C 编译器项目 8cc main函数中用到的 C库函数

    atexit C 库函数 int atexit(void (*func)(void)) 当程序正常终止时,调用指定的函数 func.您可以在任何地方注册你的终止函数,但它会在程序终止的时候被调用. s ...

  4. 【DNS域名解析命令】 nslookup

    1. nslookup作用 nslookup用于查询DNS的记录,查询域名解析是否正常,在网络故障时用来诊断网络问题 nslookup - query Internet name servers in ...

  5. webpack前端构建angular1.0!!!

    webpack前端构建angular1.0 Webpack最近很热,用webapcak构建react,vue,angular2.0的文章很多,但是webpack构建angualr1.0的文章找来找去也 ...

  6. 提高Web服务器并发响应的经历

    1 前言 ---------- 最近一直在维护一个线上运行的旧系统,系统本身的问题很多,然而又有大量客户准备试用.之前一直存有侥幸心理,希望系统能神奇的顶过这段时间,但这个蜗牛般的系统残忍的告诉我们- ...

  7. Centos 搭建wordpress个人博客

    1.装apache.mariadb yum install httpd mariadb-server php php-mysql -ysystemctl start httpdsystemctl en ...

  8. 设计模式(Java语言)- 建造者模式

    前言 在日常的生活中,我们可以经常看到建造者模式的影子.比如,建造房子,那么房子就是一个产品,房子由门,窗,墙,地板等部门组成.然后包工头在建造房子的时候就根据设计好的图纸来建造,但是包工头并不是亲自 ...

  9. Coursera课程笔记----计算导论与C语言基础----Week 6

    理性认识C程序 导论(Week 6) 明确学习进度 讲课内容 感性➡️理性➡️函数➡️指针等 作业练习 初级阶段 ➡️正常作业练习 C语言的由来 程序设计语言的分类 低级语言之机器语言 0010101 ...

  10. Qt源码解析之-从PIMPL机制到d指针

    一.PIMPL机制 PIMPL ,即Private Implementation,作用是,实现 私有化,力图使得头文件对改变不透明,以达到解耦的目的 pimpl 用法背后的思想是把客户与所有关于类的私 ...