我有一个正在运行的WAL运输设置,其中有一个热备用从属服务器应用WAL文件。
当我创建pg_standby触发器文件时,它会立即检测到这一点,但实际上准备好接受连接大约需要10-15分钟。大部分时间都花在等待.history文件上。
触发器文件为空,因此应该进行“智能”故障转移。我能做些什么来更快地进行故障转移吗?
日志输出:
WAL file not present yet. Checking for trigger file...
trigger file found: smart failover
LOG: could not open file "pg_xlog/000000010000000000000089" (log file 0, segment 137): No such file or directory
LOG: redo done at 0/88003428
LOG: last completed transaction was at log time 2010-08-10 13:26:20.232799+00
Trigger file : /psql_archive/role.master
Waiting for WAL file : 000000010000000000000088
WAL file path : /psql_archive/000000010000000000000088
Restoring to : pg_xlog/RECOVERYXLOG
Sleep interval : 60 seconds
Max wait interval : 0 forever
Command for restore : cp "/psql_archive/000000010000000000000088" "pg_xlog/RECOVERYXLOG"
Keep archive history : 000000000000000000000000 and later
trigger file found: smart failover
running restore : OK
LOG: restored log file "000000010000000000000088" from archive
Trigger file : /psql_archive/role.master
Waiting for WAL file : 00000002.history
WAL file path : /psql_archive/00000002.history
Restoring to : pg_xlog/RECOVERYHISTORY
Sleep interval : 60 seconds
Max wait interval : 0 forever
Command for restore : cp "/psql_archive/00000002.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history : 000000000000000000000000 and later
running restore :cp: cannot stat `/psql_archive/00000002.history': No such file or directory
cp: cannot stat `/psql_archive/00000002.history': No such file or directory
cp: cannot stat `/psql_archive/00000002.history': No such file or directory
cp: cannot stat `/psql_archive/00000002.history': No such file or directory
not restored
history file not found
LOG: selected new timeline ID: 2
Trigger file : /psql_archive/role.master
Waiting for WAL file : 00000001.history
WAL file path : /psql_archive/00000001.history
Restoring to : pg_xlog/RECOVERYHISTORY
Sleep interval : 60 seconds
Max wait interval : 0 forever
Command for restore : cp "/psql_archive/00000001.history" "pg_xlog/RECOVERYHISTORY"
Keep archive history : 000000000000000000000000 and later
running restore :cp: cannot stat `/psql_archive/00000001.history': No such file or directory
cp: cannot stat `/psql_archive/00000001.history': No such file or directory
cp: cannot stat `/psql_archive/00000001.history': No such file or directory
cp: cannot stat `/psql_archive/00000001.history': No such file or directory
not restored
history file not found
LOG: archive recovery complete
LOG: autovacuum launcher started
LOG: database system is ready to accept connections
感谢。
丹尼斯
答案 0 :(得分:1)
简而言之,如果您不使用快速故障转移,pg_standby将继续处理剩余的所有日志(应该如此)以最大限度地减少数据丢失。
为了让您的生活更轻松,我会看看PITRTools。
答案 1 :(得分:0)
根据文档:http://www.postgresql.org/docs/current/static/pgstandby.html
快速故障转移:在快速故障转移中,服务器立即启动。归档中尚未应用的任何WAL文件都将被忽略,并且这些文件中的所有事务都将丢失。要触发快速故障转移,请创建一个触发器文件并将快速写入其中。如果在定义的时间间隔内没有出现新的WAL文件,pg_standby也可以配置为自动执行快速故障转移。
或者查看“表F-23.ppg_standby选项”,描述了一个maxwaittime。
干杯