设为首页 加入收藏

TOP

pgsql主备搭建及切换(二)
2019-09-03 03:38:15 】 浏览:95
Tags:pgsql 搭建 切换
on。

 

archive_command参数设置WAL归档命令,可以将WAL归档到本机目录,也可以归档到远程其他主机上,由于流复制的配置并不一定需要依赖配置归档命令,我们将归档命令暂且设置成伪归档命令/bin/date,后期如果需要打开归档直接配置归档命令即可。

 

max_wal_senders参数控制主库上的最大WAL发送进程数,通过pg_base_backup命令在主库上做基准备份时也会消耗WAL进程,此参数设置不能比max_connections参数值高,默认值为10,一个流复制备库通常只需要消耗流复制主库一个WAL发送进程。

 

wal_keep_segments参数设置主库pg_wal目录保留的最小WAL日志文件数,以便备库落后主库时可以通过主库保留的WAL进行追回,这个参数设置得越大,理论上备库在异常断开时追平主库的机率越大,如果归档存储空间充足,建议将此参数配置得大些,由于默认情况下每个WAL文件为16MB(编译时可通过--with-walsegsize参数设置WAL文件大小),因此pg_wal目录大概占用空间为wal_keep_segments参数值×16MB,这里为512×16MB=8GB,实际情况下pg_wal目录下的WAL文件数会比此参数的值稍大。

 

hot_standby参数控制数据库恢复过程中是否启用读操作,这个参数通常用在流复制备库,开启此参数后流复制备库支持只读SQL,但备库不支持写操作,主库上也设置此参数为on。

 

以上是流复制配置过程中主要的 postgresqI. conf参数,其他参数没有列出,主库和备库的 postgresqI. conf配置建议完全一致。

配置主库的pg_hba.conf文件,添加以下内容:

host    replication     repuser         192.168.231.131/24      md5

host    replication     repuser         192.168.231.132/24      md5

 

意思为允许repuser用户从外部地址通过密码连接任何数据库,配置两个信息是因为以后方便主备切换。

2.4 异步流复制

2.4.1拷贝数据文件形式部署流复制(方案一)

#  chown -R pgsql:pgsql /var/run/postgresql/     --若开启postgresql数据库失败,报/var/run/postgresql/权限不足的情况下,请赋权

drwxr-xr-x.  2 pgsql          pgsql            80 Aug  9 11:03 postgresql

 

$  pg ctl start

使用超级用户pgsql登录到数据库创建流复制用户 repuser,流复制用户需要有 REPLICATION 权限和 LOGIN 权限

[pgsql@pgsql ~]$ psql postgres

psql (10.9)

Type "help" for help.

postgres=# create user repuser replication login connection limit 5 encrypted password 'hufj123';

CREATE ROLE

postgres=# SELECT pg_start_backup('frans_bk1');

 pg_start_backup

-----------------

 0/2000028

(1 row)

pg_ start_ backup()函数在主库上发起一个在线备份

[pgsql@pgsql pg10]$ tar czvf pg_root.tar.gz pg_root --exclude=pg_root/pg_wal    --主库将$PGDATA路径下的东西进行备份,将pg_wal排除在外是因为,备库会同步这些日志

[pgsql@pgsql pg10]$ scp pg_root.tar.gz pgsql@192.168.231.132:/database/pg10/   --将备份好的tar文件传到备库上去

备库操作:

[pgsql@pgstandby pg10]$ tar xvf pg_root.tar.gz                               --备库进行解压,在$PGDATA目录下

主库操作:

[pgsql@pgsql pg10]$ psql postgres

postgres=# SELECT pg_stop_backup();                                       --主库关闭备份,其实在备份好tar文件之后也可以进行关闭备份

NOTICE:  pg_stop_backup complete, all required WAL segments have been archived

 pg_stop_backup

----------------

 0/2000130

(1 row)

 

[pgsql@pgstandby pg_root]$ cp /usr/pgsql-10/share/recovery.conf.sample  $PGDATA/recovery.conf  --备库拷贝一份recovery.conf文件

[pgsql@pgstandby pg_root]$ vi re

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目