温馨提示×

如何在CentOS上配置PostgreSQL的复制

小樊
49
2025-10-24 06:50:24
栏目: 云计算

在CentOS上配置PostgreSQL的复制可以通过以下步骤完成。这里我们假设你有一个主服务器(Master)和一个从服务器(Slave)。主服务器将用于写入操作,而从服务器将用于读取操作。

步骤1:准备主服务器

  1. 安装PostgreSQL

    sudo yum install postgresql-server 
  2. 初始化数据库

    sudo postgresql-setup initdb 
  3. 启动并启用PostgreSQL服务

    sudo systemctl start postgresql sudo systemctl enable postgresql 
  4. 创建复制用户: 以postgres用户登录到PostgreSQL:

    sudo -u postgres psql 

    在psql shell中,创建一个用于复制的用户并授予权限:

    CREATE USER replicator WITH REPLICATION PASSWORD 'your_password' LOGIN; GRANT ALL PRIVILEGES ON DATABASE your_database TO replicator; 
  5. 配置主服务器: 编辑主服务器的postgresql.conf文件:

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

    找到并修改以下参数:

    wal_level = replica max_wal_senders = 10 wal_keep_segments = 64 hot_standby = on 

    然后编辑pg_hba.conf文件:

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

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

    host replication replicator 192.168.1.100/32 md5 

    其中192.168.1.100是从服务器的IP地址。

  6. 重启主服务器

    sudo systemctl restart postgresql 

步骤2:准备从服务器

  1. 安装PostgreSQL

    sudo yum install postgresql-server 
  2. 初始化数据库

    sudo postgresql-setup initdb 
  3. 启动并启用PostgreSQL服务

    sudo systemctl start postgresql sudo systemctl enable postgresql 
  4. 停止从服务器的PostgreSQL服务

    sudo systemctl stop postgresql 
  5. 配置从服务器: 编辑从服务器的postgresql.conf文件:

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

    找到并修改以下参数:

    hot_standby = on 

    然后编辑recovery.conf文件(如果不存在则创建):

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

    添加以下内容:

    standby_mode = 'on' primary_conninfo = 'host=master_ip port=5432 user=replicator password=your_password' restore_command = 'cp /var/lib/pg_repl/wal_archive/%f %p' trigger_file = '/tmp/postgresql.trigger.5432' 
  6. 启动从服务器

    sudo systemctl start postgresql 

步骤3:验证复制

  1. 在主服务器上创建一个测试数据库

    sudo -u postgres psql CREATE DATABASE test_db; 
  2. 在从服务器上检查数据库

    sudo -u postgres psql \l 

    你应该能看到test_db数据库。

通过以上步骤,你已经成功在CentOS上配置了PostgreSQL的主从复制。主服务器将处理写入操作,而从服务器将处理读取操作,从而实现负载均衡和高可用性。

0