use*_*131 5 postgresql replication
我在两台服务器(一台主服务器,一台主服务器)上使用Postgres版本9.3.2。
我将复制设置如下:-
在大师:-
sudo -u postgres psql -c "CREATE USER replicator REPLICATION LOGIN ENCRYPTED PASSWORD 'FOO’;"
Run Code Online (Sandbox Code Playgroud)
编辑postgresql.conf
listen_address = '*'
wal_level = hot_standby
max_wal_senders = 32
checkpoint_segments = 8
wal_keep_segments = 100
Run Code Online (Sandbox Code Playgroud)
编辑pg_hba.conf
hostssl replication replicator <SLAVE IP>/32 md5
Run Code Online (Sandbox Code Playgroud)
在奴隶:-
编辑postgresql.conf
wal_level = hot_standby
max_wal_senders = 3
checkpoint_segments = 8
wal_keep_segments = 8
hot_standby = on
Run Code Online (Sandbox Code Playgroud)
跑
sudo service postgresql stop
sudo -u postgres rm -rf /var/lib/postgresql/9.3/main
sudo -u postgres pg_basebackup -h <MASTER IP> -D /var/lib/postgresql/9.3/main -U replicator -v -P
Run Code Online (Sandbox Code Playgroud)
创建/var/lib/postgresql/9.3/main/recovery.conf
standby_mode = 'on'
primary_conninfo = 'host=<MASTER IP> port=5432 user=replicator password=FOO sslmode=require'
trigger_file = '/tmp/postgresql.trigger'
Run Code Online (Sandbox Code Playgroud)
跑:-
sudo service postgresql restart
Run Code Online (Sandbox Code Playgroud)
当我在从服务器上重新启动postgres时,出现以下错误消息:
LOG: database system was shut down at 2015-01-14 09:10:50 GMT 2015-01-14 09:11:01 GMT [16741-2]
LOG: entering standby mode 2015-01-14 09:11:01 GMT [16741-3] WARNING: WAL was generated with wal_level=minimal, data may be missing 2015-01-14 09:11:01 GMT [16741-4] HINT: This happens if you temporarily set wal_level=minimal without taking a new base backup. 2015-01-14 09:11:01 GMT [16741-5]
FATAL: hot standby is not possible because wal_level was not set to "hot_standby" on the master server 2015-01-14 09:11:01 GMT [16741-6] HINT: Either set wal_level to "hot_standby" on the master, or turn off hot_standby here. 2015-01-14 09:11:01 GMT [16740-1]
LOG: startup process (PID 16741) exited with exit code 1 2015-01-14 09:11:01 GMT [16740-2] LOG: aborting startup due to startup process failure ... failed!
Run Code Online (Sandbox Code Playgroud)
为什么会这样呢?我已经检查并重新检查了将主wal_level设置为hot_standby。在主服务器上运行“显示全部”表明情况是这样吗?我对我在这里做错的事情感到茫然。