当前位置: 首页 > news >正文

pgsql 主从搭建

在 PostgreSQL 中,主从复制(Master-Slave Replication)是一种常见的数据库高可用性和数据备份解决方案。它允许你创建一个主数据库服务器(Master),并在一个或多个从数据库服务器(Slave)上复制主数据库的数据。这有助于提高系统的可用性,因为在主服务器发生故障时,可以切换到从服务器来提供服务。以下是在 PostgreSQL 中设置主从复制的基本步骤:

注意: 在开始之前,请确保你已经安装了 PostgreSQL,并且主从服务器都可以访问彼此。

配置主服务器(Master):

a. 打开主服务器的 PostgreSQL 配置文件,通常位于 /etc/postgresql/<version>/main/postgresql.conf。

b. 确保以下参数设置正确:

listen_addresses = '*' # 允许远程连接

wal_level = replica     # 设置 WAL 日志级别为 replica

max_wal_senders = 3     # 允许的 WAL 发送者数量,根据需要进行调整

wal_keep_segments = 64  # 保留的 WAL 日志段数量,根据需要进行调整

打开 pg_hba.conf 文件(通常位于相同目录),确保允许从服务器连接到主服务器。添加以下行:

host replication <replication_user> <slave_ip> md5

其中 <replication_user> 是用于复制的用户名,<slave_ip> 是从服务器的IP地址。例如:

host replication replicator 192.168.1.2/32 md5

重新启动 PostgreSQL 以使更改生效。

创建复制用户和权限:

在主服务器上创建一个用于复制的用户,并授予适当的权限。登录到主服务器的 PostgreSQL,然后执行以下命令:

CREATE USER replicator REPLICATION LOGIN CONNECTION LIMIT 3;

备份和还原数据:

在主服务器上执行备份操作,并将备份文件传输到从服务器。可以使用 pg_dump 命令创建备份:

pg_dump -U <username> -h <hostname> -F c -b -f <backup_file> <database_name>

将 <username> 替换为数据库用户名,<hostname> 替换为数据库主机名,<backup_file> 替换为备份文件的路径,<database_name> 替换为要备份的数据库名称。

在从服务器上执行还原操作:

pg_restore -U <username> -h <hostname> -d <database_name> <backup_file>

配置从服务器(Slave):

a. 打开从服务器的 PostgreSQL 配置文件,通常位于 /etc/postgresql/<version>/main/postgresql.conf。

b. 设置以下参数以启用从服务器:

listen_addresses = '*'  # 允许远程连接

hot_standby = on        # 启用热备份模式

c.创建一个 recovery.conf 文件,通常位于与数据目录相同的位置,包含以下内容:

standby_mode = 'on'

primary_conninfo = 'host=<master_ip> port=<master_port> user=<replication_user> password=<password>'

restore_command = 'cp /var/lib/postgresql/<version>/main/archive/%f %p'

archive_cleanup_command = '/usr/lib/postgresql/<version>/bin/pg_archivecleanup /var/lib/postgresql/<version>/main/archive %r'

trigger_file = '/tmp/postgresql.trigger'

替换 <master_ip>, <master_port>, <replication_user>, <password> 以及相关的路径和版本信息。

d. 重新启动从服务器的 PostgreSQL。

启动主从复制:

在从服务器上,启动 PostgreSQL 服务后,它会自动连接到主服务器并开始复制数据。你可以在主服务器上进行监视和管理复制进程。

测试主从复制:

在主服务器上进行一些数据更改,然后验证这些更改是否在从服务器上反映出来。你可以使用 pg_stat_replication 视图来监视复制状态。

这只是一个基本的主从复制设置过程,实际环境中可能需要更复杂的配置,例如使用流复制(streaming replication)或逻辑复制(logical replication)来满足特定需求。此外,确保在生产环境中采取适当的安全措施,如加密和访问控制,以保护你的数据库。

http://www.lryc.cn/news/170147.html

相关文章:

  • JS中的数值精度问题(二)
  • WPF——Control与Template理解
  • 华为HCIA学习(一)
  • 使用jmeter+ant+jenkins+git搭建自动化测试平台
  • C# Winform中在DataGridView中添加Button按钮,操作Button按钮
  • Docker 网络学习
  • django创建web服务器
  • 极光笔记 | 推送服务数据中心选择:合规性与传输效率的双重考量
  • Python灰帽编程——初识Python上
  • OLED透明屏交互技术:开创未来科技的新篇章
  • 揭秘Spring Boot内嵌Tomcat原理
  • 分类散点图 stripplot() 加辅助线axhline() 多图合一
  • 一文告诉你为什么时序场景下 TDengine 数据订阅比 Kafka 好
  • reg与wire的用法,证明reg可以在右边,wire型在左边,来作组合逻辑处理。
  • Studio One6.2简体中文免费最新版本宿主软件
  • 算法刷题 week2
  • 子网的划分
  • Docker安装与卸载
  • 【Davinci开发】:开发过程问题记录及总结
  • 数据结构——排序算法——冒泡排序
  • vscode使用
  • python经典百题之求前!的和
  • C语言入门Day_22 初识指针
  • 【面试必刷TOP101】删除链表的倒数第n个节点 两个链表的第一个公共结点
  • 手刻 Deep Learning -第壹章 -PyTorch教学-激励函数与感知机入门(上)
  • 物理内存分配
  • RFID产线自动化升级改造管理方案
  • 全量数据采集:不同网站的方法与挑战
  • Redis——渐进式遍历和数据库管理命令
  • 如何打造可视化警务巡防通信解决方案