Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2338200
  • 博文数量: 194
  • 博客积分: 3409
  • 博客等级: 中校
  • 技术积分: 3944
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-24 10:21
个人简介

● ITPUB名人堂嘉宾 ● ChinaUnix社区博客专家 ● ChinaUnix社区Oracle板块版主 ● 优酷网认证音乐牛人:EricGuitar ● SDOUG 核心成员 ●E-mail:gaoqiangdba@163.com

文章分类

全部博文(194)

文章存档

2020年(6)

2019年(7)

2016年(5)

2015年(36)

2014年(23)

2013年(15)

2012年(23)

2011年(61)

2010年(18)

分类: Mysql/postgreSQL

2015-02-25 16:46:32

  



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




阅读(3719) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~