PostgreSQL数据库在线备份配置

5270阅读 0评论2015-02-25 jackson198574
分类:Mysql/postgreSQL

  



 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=# 




上一篇:PostgreSQL数据库备份与恢复之pg_dump简单体验
下一篇:Oracle BBED 小小手术刀的小手术---修改数据内容