PostgreSQL流式复制的方法是什么

发布时间:2022-01-21 09:20:29 作者:iii
来源:亿速云 阅读:172

本文小编为大家详细介绍“PostgreSQL流式复制的方法是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“PostgreSQL流式复制的方法是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

主从术语

主/主服务器

从/备用服务器

数据写入主服务器并传播到从服务器。如果现有主服务器出现问题,其中一台从服务器将接管并继续写入以确保系统的可用性。

WAL 基于运输的复制

什么是 WAL?

WAL 如何用于复制?

预写日志记录用于保持数据库服务器之间的数据同步。这是通过两种方式实现的:

基于文件的日志传送
流式 WAL 记录

这两种方法各有优缺点。使用基于文件的传送可实现时间点恢复和连续归档,而流可确保备用服务器上的数据即时可用。但是,您可以将 PostgreSQL 配置为同时使用这两种方法并享受好处。在这篇文章中,我们主要关注流复制以实现 PostgreSQL 高可用性。

如何设置流式复制

在 PostgreSQL 中设置流式复制非常简单。假设所有服务器上都已经安装了 PostgreSQL,您可以按照以下步骤开始:

主节点上的配置

# Possible values are replica|minimal|logical
wal_level = replica
# required for pg_rewind capability when standby goes out of sync with master
wal_log_hints = on
# sets the maximum number of concurrent connections from the standby servers.
max_wal_senders = 3
# The below parameter is used to tell the master to keep the minimum number of
# segments of WAL logs so that they are not deleted before standby consumes them.
# each segment is 16MB
wal_keep_segments = 8
# The below parameter enables read only connection on the node when it is in
# standby role. This is ignored when the server is running as master.
hot_standby = on
# Allow replication connections from localhost,
# by a user with the replication privilege.
# TYPE DATABASE USER ADDRESS METHOD
host replication repl_user IPaddress(CIDR) md5

备用节点上的配置

# Explaining a few options used for pg_basebackup utility
# -X option is used to include the required transaction log files (WAL files) in the
# backup. When you specify stream, this will open a second connection to the server
# and start streaming the transaction log at the same time as running the backup.
# -c is the checkpoint option. Setting it to fast will force the checkpoint to be
# created soon.
# -W forces pg_basebackup to prompt for a password before connecting
# to a database.
pg_basebackup -D <data_directory> -h <master_host> -X stream -c fast -U repl_user -W
# Specifies whether to start the server as a standby. In streaming replication,
# this parameter must be set to on.
standby_mode = ‘on’
# Specifies a connection string which is used for the standby server to connect
# with the primary/master.
primary_conninfo = ‘host=<master_host> port=<postgres_port> user=<replication_user> password=<password> application_name=”host_name”’
# Specifies recovering to a particular timeline. The default is to recover along the
# same timeline that was current when the base backup was taken.
# Setting this to latest recovers to the latest timeline found
# in the archive, which is useful in a standby server.
recovery_target_timeline = ‘latest’

备用配置必须在所有备用服务器上完成。配置完成并启动备用服务器后,它将连接到主服务器并开始流式传输日志。这将设置复制并可以通过运行 SQL 语句进行验证 SELECT * FROM pg_stat_replication;。

默认情况下,流式复制是异步的。如果您希望使其同步,则可以使用以下参数对其进行配置:

# num_sync is the number of synchronous standbys from which transactions
# need to wait for replies.
# standby_name is same as application_name value in recovery.conf
# If all standby servers have to be considered for synchronous then set value ‘*’
# If only specific standby servers needs to be considered, then specify them as
# comma-separated list of standby_name.
# The name of a standby server for this purpose is the application_name setting of the
# standby, as set in the primary_conninfo of the
# standby’s WAL receiver.
synchronous_standby_names = ‘num_sync ( standby_name [, ...] )’

Synchronous_commit 必须为同步复制设置,这是默认设置。PostgreSQL 为同步提交提供了非常灵活的选项,并且可以在用户/数据库级别进行配置。有效值如下:

synchronous_commit 在同步复制模式下设置 为 off 或 local 会使其像异步一样工作,并且可以帮助您获得更好的写入性能。但是,这会增加备用服务器上的数据丢失和读取延迟的风险。如果设置为 remote_apply,它将确保备用服务器上的数据立即可用,但写入性能可能会降低,因为它应该应用于所有/提到的备用服务器。

如果您计划使用连续存档和时间点恢复,则可以启用存档模式。虽然流式复制不是强制性的,但启用存档模式有额外的好处。如果归档模式未开启,那么我们需要使用复制槽 功能或确保根据负载将wal_keep_segments值设置得足够高。

读到这里,这篇“PostgreSQL流式复制的方法是什么”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注亿速云行业资讯频道。

推荐阅读:
  1. postgreSQL主从复制
  2. postgresql复制参考

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

postgresql

上一篇:pymysql实现用户登录验证的代码怎么写

下一篇:plsql可不可以连接mysql

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》