postgresql 9.5 主主复制详细步骤
时间: 2023-09-27 07:05:49 浏览: 89
PostgreSQL9.5安装
PostgreSQL 9.5支持主主复制,下面是详细的步骤:
1. 确保两个PostgreSQL服务器上都已经安装了9.5版本的PostgreSQL。
2. 在两台服务器上都创建一个数据库,假设它们的名称分别为db1和db2。
3. 在主服务器db1上修改postgresql.conf文件,启用复制功能。找到以下行并将其取消注释:
```
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#wal_level = minimal # minimal, archive, hot_standby, or logical
#max_wal_senders = 0 # max number of walsender processes
# (change requires restart)
#wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
```
将其修改为:
```
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 10
wal_keep_segments = 500
```
其中,listen_addresses设置为通配符,表示接受任何IP地址的数据包;wal_level设置为hot_standby,表示开启热备;max_wal_senders设置为10,表示最大允许10个数据流发送到备份服务器;wal_keep_segments设置为500,表示保留的wal文件数目。
4. 在主服务器db1上修改pg_hba.conf文件,确保允许从备份服务器上访问主服务器。找到以下行并将其取消注释:
```
# IPv4 local connections:
host all all 127.0.0.1/32 md5
```
将其修改为:
```
host all all 0.0.0.0/0 md5
```
其中,0.0.0.0/0表示允许任何IP地址的数据包访问。
5. 在主服务器db1上创建一个复制用户,用于从备份服务器上访问主服务器。执行以下命令:
```
CREATE USER replication_user REPLICATION LOGIN CONNECTION LIMIT 10 ENCRYPTED PASSWORD 'your_password';
```
其中,replication_user是自定义的用户名,your_password是自定义的密码。
6. 在备份服务器db2上修改postgresql.conf文件,启用复制功能。找到以下行并将其取消注释:
```
#listen_addresses = 'localhost' # what IP address(es) to listen on;
# comma-separated list of addresses;
# defaults to 'localhost'; use '*' for all
# (change requires restart)
#wal_level = minimal # minimal, archive, hot_standby, or logical
#max_wal_senders = 0 # max number of walsender processes
# (change requires restart)
#wal_keep_segments = 0 # in logfile segments, 16MB each; 0 disables
```
将其修改为:
```
listen_addresses = '*'
wal_level = hot_standby
max_wal_senders = 10
wal_keep_segments = 500
hot_standby = on
```
其中,listen_addresses设置为通配符,表示接受任何IP地址的数据包;wal_level设置为hot_standby,表示开启热备;max_wal_senders设置为10,表示最大允许10个数据流发送到备份服务器;wal_keep_segments设置为500,表示保留的wal文件数目;hot_standby设置为on,表示开启热备模式。
7. 在备份服务器db2上修改recovery.conf文件,用于指定备份服务器从主服务器上复制数据。在文件中添加以下内容:
```
standby_mode = 'on'
primary_conninfo = 'host=<主服务器IP地址> port=5432 user=replication_user password=<replication_user的密码>'
trigger_file = '/tmp/postgresql.trigger'
```
其中,<主服务器IP地址>是主服务器的IP地址,replication_user的密码是步骤5中自定义的密码。
8. 将主服务器db1上的数据复制到备份服务器db2上。在备份服务器上执行以下命令:
```
pg_basebackup -h <主服务器IP地址> -D /var/lib/postgresql/9.5/main -U replication_user -P
```
其中,<主服务器IP地址>是主服务器的IP地址,/var/lib/postgresql/9.5/main是备份服务器上数据存放的目录,replication_user是步骤5中自定义的用户名。
9. 在备份服务器db2上启动PostgreSQL服务。执行以下命令:
```
systemctl start postgresql
```
10. 在主服务器上创建一个测试数据库,例如testdb,并向其中添加一些数据。
11. 在备份服务器db2上查看是否成功复制数据。执行以下命令:
```
psql -U postgres -c "select datname from pg_database;"
```
如果看到testdb,则表示备份服务器上已经成功复制了主服务器上的数据。
以上就是PostgreSQL 9.5主主复制的详细步骤。
阅读全文