怎么搭建postgresql

36次阅读
没有评论

共计 2000 个字符,预计需要花费 5 分钟才能阅读完成。

这篇文章主要讲解了“怎么搭建 postgresql-pg 简易异步流复制”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“怎么搭建 postgresql-pg 简易异步流复制”吧!

流复制是 PostgreSQL 9.0 之后才提供的新的传递 WAL 日志的方法。通过流复制,备库不断的从主库同步相应的数据,并在备库 apply 每个 WAL record,这里的流复制每次传输单位是 WAL 日志的 record。就如
oracle 的 dataguard 技术一样,pg 的流复制也是按照同步模式的不同,分为同步流复制和异步流复制。同步流复制虽然能在主库坏掉时确保数据的一致,但是当网络或者备库有问题的时候,会导致主库事务 hang 住。异步流复制则没有这样的缺点,不会影响生产库的性能,但是在主库坏掉的时候,可能会丢掉一小部分数据。

pg 的流复制安装非常的简单,如下配置完成后,就可以做到,如下版本是 pg11 在 rhel7 的配置,注意,需要提前在两边服务器上建好同一个版本的 pg 服务:

01 主库操作

1.1 创建复制用户作为主从同步使用

postgres=# create role repl login replication encrypted password 123456

CREATE ROLE

1.2 修改 pg_hba.conf 文件

主库

host allall192.168.0.0/24md5

host replication repl192.168.0.52/24md5

第一行 #允许 XX 这个从服务器连接到主服务器

第二行 #允许使用 replica 用户来复制,第二个字段必须要填 repl(上一步添加的用户)

#psql

psql select pg_reload_conf();# 生效

1.3 修改 postgresql.conf

listen_addresses= * #这个一般安装服务器之后都会进行配置,检查下

wal_level=replica #默认 replica,不动

wal_keep_segments=256# 设置流复制保留的最多的 xlog 数目

# 重启 pg 服务生效。

# 只有 listen_address 改变需要重启,否则 select pg_reload_conf() 即可。

pg_ctl stop –D $PGDATA

pg_ctl start –D $PGDATA

1.4 在从库测试连接是否成功

psql -h 192.168.0.51-p 5432-U postgres

02 备库操作

2.1 停止 pg 服务,清空 data 目录

[postgres@apple-standby ~]$ echo $PGDATA

/data/pg11.5/data

[postgres@apple-standby data]$ rm -rf /data/pg11.5/data

2.2 从主节点拷贝数据到从节点

$ pg_basebackup -h 192.168.0.51-U repl -D /data/pg11.5/data -X stream -P

could not identify current directory: No such file or directory

Password:

45238/45238 kB (100%),1/1 tablespace

2.3 配置 recovery.conf

cd $PGHOME(软件安装目录)

cp share/recovery.conf.sample $PGDATA/recovery.conf

vi recovery.conf

standby_mode = on

primary_conninfo= host=192.168.0.51 port=5432 user=repl password=123456

recovery_target_timeline= latest

###

primary_conninfo  主服务器的信息以及连接的用户

standby_mode = on # 说明该节点是从服务器

recovery_target_timeline  #指定恢复到特定时间轴。默认设置是沿着执行基本备份时的当前时间线恢复。将此设置为 latest 将恢复到存档中找到的最新时间轴

2.4 启动服务

pg_ctl start  -D $PGDATA

在主库上查询,如下,可以看到,sync_state,async 就表示异步流复制。

postgres=# select pid,usename,application_name,client_addr,state,sync_state  from  pg_stat_replication;

如上,就简单的搭好了一个流复制数据库!

感谢各位的阅读,以上就是“怎么搭建 postgresql-pg 简易异步流复制”的内容了,经过本文的学习后,相信大家对怎么搭建 postgresql-pg 简易异步流复制这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-27发表,共计2000字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)