软件下载吧文章资讯

分类分类

postgresql连续归档及时间点恢复的操作

2024-02-24 17:17作者:下载吧

简介

前面我们介绍了通过pgsql的流复制在生产环境中搭建高可用环境来保证服务的可持续性;我们也要对数据库进行周期备份,来防止数据的丢失,这就需要连续归档,它不仅可以用于大型数据库的增量备份和恢复,也可以用于搭建standby镜像备份。   

PostgreSQL默认处于非归档模式。开启归档模式,主要涉及到三个参数:wal_level,archive_mode和archive_commandwal_level参数默认为mininal,设置此参数为archive或者之上的级别都可以打开归档。当postgresql需要传输归档日志时,会调用archive_command指定的shell命令。

归档文件传输成功时,shell命令要返回0,此时,postgresql会认为归档文件已经传输成功,因此可以删除或者重新循环利用归档文件。当shell命令返回非0值时,postgresql会保留所有未成功传输的归档日志,并不断尝试重新传输,直到成功。如果归档命令一直不成功,pg_xlog目录会持续增长,有耗尽服务器存储空间的可能,此时postgresql会PANIC关闭,直到释放存储空间。

另外将归档WAL日志存储在本机上是风险极高,不被推荐的。postgresql通过archive_command提供了存储WAL日志的灵活性,可以将归档日志存储到挂装的NFS目录,磁带,刻录到光盘,也可以将WAL日志通过ssh/scp,rsync传输到异机保存。

**注意:**archive_command及restore_command命令将以运行PostgreSQL的系统用户的身份运行。Centos系统里,这个系统用户是postges。

环境说明

Role IP 系统 数据库
源库 10.10.10.60 Centos6.5 postgresql 9.2
备份库 10.10.10.61 Centos6.5 postgresql 9.2

需求说明:源库产生归档日志,并传输到备份库上的归档目录/data/pg_archive;备份库利用归档日志,恢复至源库的任意时间点的数据。

注意:基础环境我们基于postgresql流复制,但是备份库作为一个独立的库,此时请保证recovery.conf中的standby_mode=off

环境配置

1.ssh无密码登录

由于我们备份和还原过程中所用的archive_command和restore_command命令都以postgres用户运行,因此我们需要针对postgres用户实现ssh无密码登录。

#源库
ssh-ketgen -t rsa
scp id_rsa.pub postgres@10.10.10.60:/var/lib/pgsql/.ssh/authorized_keys
#备份库
ssh-ketgen -t rsa
scp id_rsa.pub postgres@10.10.10.61:/var/lib/pgsql/.ssh/authorized_keys

展开全部

相关文章

说两句网友评论
    我要跟贴
    取消