PostgreSQL与Oracle和DB2等很多数据库一样,也有归档日志和循环日志,并且可以利用归档日志进行基于时间点的恢复。
在线热备的前提是需要开启WAL日志,具体配置方法如下:
vi /var/lib/pgsql/9.4/data/postgresql.conf
为了启动WAL归档,设置wal_level 配置参数到archive (或者hot_standby), archive_mode为on,并且所使用的shell命令由配置参数archive_command声明,它实际上总是放在postgresql.conf文件里的。在archive_command中,任何%p都被要归档文件的绝对路径代替,而任何%f只是被文件名代替。如果你需要在命令里嵌入一个真正的%字符,那么必须双写(%%)。最简单的有用命令类似下面这样:
Unix/Linux环境:
archive_command = 'test ! -f /mnt/server/archivedir/%f && cp %p /mnt/server/archivedir/%f'
Windows环境:
archive_command = 'copy "%p" "C:\\server\\archivedir\\%f"' 它将把WAL段拷贝到/mnt/server/archivedir目录。这个只是一个例子,并非我们建议的方法, %p和%f参数被取代之后,实际执行的命令看起来这样:
test ! -f /mnt/server/archivedir/00000001000000A900000065 && cp pg_xlog/00000001000000A900000065 /mnt/server/archivedir/00000001000000A900000065
请根据实际情况进行路径和文件名的替代工作。
重启数据库:
-bash-3.2$
/usr/pgsql-9.4/bin/pg_ctl stop
等待服务器进程关闭 ......... 完成
服务器进程已经关闭
-bash-3.2$
/usr/pgsql-9.4/bin/pg_ctl start
正在启动服务器进程
-bash-3.2$ < 2015-01-26 00:29:22.486 CST >日志: 日志输出重定向到日志收集进程
< 2015-01-26 00:29:22.486 CST >提示: 后续的日志输出将出现在目录 "pg_log"中.
-bash-3.2$
psql -U postgres music
psql (9.4.0)
输入 "help" 来获取帮助信息.
进行基础备份:
music=#
SELECT pg_start_backup('music_full',true);
pg_start_backup
-----------------
0/A000028
(1 行记录)
结束备份:
music=#
SELECT pg_stop_backup();
注意: pg_stop_backup 执行完成,所有需要的WAL段都已经归档完成。
pg_stop_backup
----------------
0/A0000B8
(1 行记录)
music=#
阅读(5291) | 评论(0) | 转发(0) |