设为首页 加入收藏

TOP

pgsql主备搭建及切换(四)
2019-09-03 03:38:15 】 浏览:96
Tags:pgsql 搭建 切换
covery.conf

recovery_target_timeline = 'latest'                      

standby_mode = on

primary_conninfo = 'host=192.168.231.131 port=5432 user=repuser'

 

[pgsql@pgstandby ~]$ touch .pgpass            --在家目录下面创建.pgpass文件,目的是在连接主库的时候不需要输入密码

[pgsql@pgstandby ~]$ chmod 0600 .pgpass       --注意赋予0600权限

[pgsql@pgstandby ~]$ cat .pgpass

192.168.231.132:5432:replication:repuser:hufj123

192.168.231.131:5432:replication:repuser:hufj123

 

不配置 .pgpass文件则警告日志显示下面信息

2019-08-05 11:37:42.556 CST [76967] FATAL:  could not connect to the primary ser

ver: fe_sendauth: no password supplied

 

遇到错误查看日志 $PGDATA/log/路径的日志。

如果此步没报错,并且主库上可以查看到 WAL 发送进程,同时备库上可以看到 WAL 接收进程说明流复制配置成功,查看主库上的 WAL 发送进程, 如下所示:

 

[pgsql@pgsql ~]$ ps -ef|grep wal

pgsql     35001  34996  0 22:27 ?        00:00:00 postgres: wal writer process

pgsql     35006  34996  0 22:27 ?        00:00:00 postgres: wal sender process repuser 192.168.231.132(55152) streaming 0/7000098

pgsql     35008  34790  0 22:27 pts/1    00:00:00 grep --color=auto wal

 

查看备库上的 WAL 接收进程,如下所示:

 

[pgsql@pgstandby ~]$ ps -ef|grep wal

pgsql     59336  59310  1 22:27 ?        00:00:00 postgres: wal receiver process   streaming 0/70000D0

pgsql     59347  58742  0 22:27 pts/3    00:00:00 grep --color=auto wal

接着在主库上创建一个测试表并插入数据,如下所示:

postgres=# create table test_sr(id int4);

CREATE TABLE

postgres=# insert into test_sr values(1);

INSERT 0 1

备库上验证数据是否同步:

 

postgres=# select * from test_sr;

 id

----

  1

(1 row)

 

2.4.2 pg_basebackup(实例级的备份) 方式部署流复制(方案二)

 

将备库停库,删除数据库,进行测试

[pgsql@pgstandby ~]$ pg_ctl stop

waiting for server to shut down.... done

server stopped

[pgsql@pgstandby ~]$ rm -rf /database/pg10/pg_root/*

[pgsql@pgstandby ~]$ rm -rf /database/pg10/pg_tbs/*

[pgsql@pgstandby ~]$ pg_basebackup -D /database/pg10/pg_root -Fp -Xs -v -P -h 192.168.231.131 -p 5432 -U repuser

 

 

-D 参数表示指定备节点用来接收主库数据的目标路径,这里和主库保持一致,依然是/database/pg10/pg_root目录。

-F参数指定pg_basebackup命令生成的备份数据格式,支持两种格式,p(plain)格式和t(tar)格式,p(plain)格式是指生成的备份数据和主库上的数据文件布局一样,也就是说类似于操作系统命令将数据库$PGDATA系统数据文件、表空间文件完全拷贝到备节点;t(tar)格式是指将备份文件打个tar包并存储在指定目录里,系统文件被打包成base.tar,其他表空间文件被打包成oid.tar,其中OID为表空间的OID。

-X参数设置在备份的过程中产生的WAL日志包含在备份中的方式,有两种可选方式,f(fetch)和s(stream),f(fetch)是指WAL日志在基准备份完成后被传送到备节点,这时主库上的wal_keep_segments参数需要设置得较大,以免备份过程中产生的WAL还没发送到备节点之前被主库覆盖掉,如果出现这种情况创建基准备份将会失败,f(fetch)方式下主库将会启动一个基准备份WAL发送进程;s(stream)方式中主库上除了启动一个基准备份WAL发送进程外还会额外启动一个WAL发送进程用于发送主库产生的WAL增量日志流,这种方式避免了f(fetch)方式过程中主库的WAL被覆盖掉的情况,生产环境流复制部署推荐这种方式,特别是比较繁忙的库或者是大库。

-v参数表示启用verbose模式,命令执行过程中打印出各阶段的日志,建议启用此参数,了解命令执行到哪个阶段。

-P参数显示数据文件、表空间文件近似传输百分比,由于执行pg_basebackup命令过程中主库数据文件会变化,因此这只是一个估算值;建议启用此选项,了解数据复制的进度。

 

[pgsql@pgstandby~]

首页 上一页 1 2 3 4 5 6 下一页 尾页 4/6/6
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Navicat Premium12.0 常用快捷键 下一篇文件被占用导致Hive Load文件不成..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目