117.info
人生若只如初见

如何在CentOS上配置PostgreSQL的复制功能

在CentOS上配置PostgreSQL的复制功能,通常涉及设置一个主服务器(Master)和一个或多个从服务器(Slave)。以下是一个基本的步骤指南:

1. 安装PostgreSQL

首先,确保在主服务器和从服务器上都安装了PostgreSQL。你可以使用以下命令来安装:

sudo yum install postgresql-server postgresql-contrib 

2. 初始化数据库

在主服务器上初始化数据库:

sudo postgresql-setup --initdb 

启动PostgreSQL服务:

sudo systemctl start postgresql sudo systemctl enable postgresql 

3. 配置主服务器

编辑主服务器的postgresql.conf文件,通常位于/var/lib/pgsql/data/目录下:

sudo vi /var/lib/pgsql/data/postgresql.conf 

找到并修改以下参数:

listen_addresses = '*' # 允许所有IP连接 wal_level = replica # 设置为replica以支持流复制 max_wal_senders = 10 # 允许的最大WAL发送者数量 wal_keep_segments = 64 # 保留的WAL文件段数 

保存并退出编辑器,然后重启PostgreSQL服务:

sudo systemctl restart postgresql 

4. 配置pg_hba.conf

编辑pg_hba.conf文件以允许从服务器连接:

sudo vi /var/lib/pgsql/data/pg_hba.conf 

添加以下行以允许从服务器连接:

host replication replicator <从服务器IP>/32 md5 

保存并退出编辑器,然后重启PostgreSQL服务:

sudo systemctl restart postgresql 

5. 创建复制用户

在主服务器上创建一个用于复制的用户:

sudo -u postgres psql 

在psql shell中执行以下命令:

CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN; 

6. 配置从服务器

在从服务器上编辑postgresql.conf文件:

sudo vi /var/lib/pgsql/data/postgresql.conf 

找到并修改以下参数:

listen_addresses = '*' # 允许所有IP连接 hot_standby = on # 启用热备模式 

保存并退出编辑器,然后重启PostgreSQL服务:

sudo systemctl restart postgresql 

7. 初始化从服务器

在从服务器上创建一个恢复目录:

sudo mkdir /var/lib/pgsql/data/recovery sudo chown postgres:postgres /var/lib/pgsql/data/recovery 

将主服务器的数据目录备份并复制到从服务器:

sudo tar -cvzf - /var/lib/pgsql/data | sudo ssh <从服务器IP> "sudo tar -xvzf - -C /var/lib/pgsql/data" 

8. 配置从服务器的recovery.conf

在从服务器的恢复目录中创建或编辑recovery.conf文件:

sudo vi /var/lib/pgsql/data/recovery/recovery.conf 

添加以下内容:

standby_mode = 'on' primary_conninfo = 'host=<主服务器IP> dbname=postgres user=replicator password=your_password' restore_command = 'cp /var/lib/pgsql/archive/%f %p' trigger_file = '/tmp/postgresql.trigger.5432' 

保存并退出编辑器。

9. 启动从服务器

在从服务器上启动PostgreSQL服务:

sudo systemctl start postgresql 

10. 验证复制

在主服务器上创建一个测试数据库或表,并在从服务器上检查是否同步:

-- 在主服务器上 sudo -u postgres psql CREATE DATABASE testdb; CREATE TABLE testtable (id SERIAL PRIMARY KEY, name VARCHAR(100)); INSERT INTO testtable (name) VALUES ('Test'); 

在从服务器上检查:

sudo -u postgres psql \l # 列出所有数据库 \dt # 列出所有表 SELECT * FROM testtable; 

如果一切配置正确,你应该能在从服务器上看到相同的数据。

注意事项

  • 确保主服务器和从服务器的时间同步。
  • 定期备份主服务器的数据。
  • 监控复制状态,确保没有错误发生。

通过以上步骤,你应该能够在CentOS上成功配置PostgreSQL的复制功能。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe01fAzsNBANWDVI.html

推荐文章

  • 如何查看centos php版本

    要查看 CentOS 上安装的 PHP 版本,您可以使用以下方法之一:
    方法 1:使用命令行 打开终端。
    输入以下命令并按 Enter 键: php -v 这将显示 PHP 的版...

  • compton在centos上的安装与配置

    在CentOS系统上安装和配置Compton可以显著提升桌面环境的性能。Compton是一个轻量级的窗口合成器,常用于减少桌面环境的渲染负担,从而提高性能。以下是详细的安...

  • centos中vsftp如何启动与停止

    在CentOS系统中,使用systemctl命令来管理服务的启动和停止。对于VSFTPD(Very Secure FTP Daemon),你可以按照以下步骤来启动和停止服务:
    启动VSFTPD服务...

  • centos环境下sqladmin使用技巧

    在CentOS环境下使用SQL Admin时,掌握一些技巧可以帮助你更高效地管理数据库。以下是一些有用的技巧:
    权限管理 创建和删除用户:使用 useradd 和 userdel ...

  • centos防火墙怎么测试

    在CentOS系统中,防火墙是一个重要的安全组件,用于控制进出网络的数据流。测试CentOS防火墙的状态和规则可以通过以下几种方法进行:
    检查防火墙状态 使用命...

  • CentOS编译Fortran项目步骤

    在CentOS系统上编译Fortran项目通常涉及以下步骤: 安装必要的编译器: 安装GNU Fortran编译器(gfortran):sudo yum install gcc-gfortran 如果需要使用Intel ...

  • 如何在Debian中使用Overlay

    在Debian中使用Overlay文件系统可以让你将两个目录(通常是/upper和/lower)合并为一个统一的视图,这在某些场景下非常有用,比如构建自定义的根文件系统或者进行...

  • CentOS为何被替换

    CentOS被替换的原因主要有以下几点: 项目转型:Red Hat在2020年底宣布将重心转向CentOS Stream,这是一个滚动预览版,与RHEL的上游开发分支保持一致。这一转型意...