postgresql增量备份原理

chshw1987 贡献于2016-10-17

作者 ckm  创建于2013-09-06 07:46:00   修改者ckm  修改于2013-09-06 08:24:00字数855

文档摘要:WAL,即write Ahead Logging,是postgresql的一种记录对数据库进行操作的事务的日志。当一条数据库事务被提交时,它不会马上flush到硬盘,而是先确保其对应的日志记录写到硬盘,然后再将事务对数据库文件的改变写到硬盘。这是因为postgres进程到硬盘之间存在多级缓存,若发生崩溃,可通过重做日志将恢复提交的事务,确保数据库的一致性
关键词:

POSTGRESQL 增量备份原理 一、 概念: 1. WAL WAL,即write Ahead Logging,是postgresql的一种记录对数据库进行操作的事务的日志。当一条数据库事务被提交时,它不会马上flush到硬盘,而是先确保其对应的日志记录写到硬盘,然后再将事务对数据库文件的改变写到硬盘。这是因为postgres进程到硬盘之间存在多级缓存,若发生崩溃,可通过重做日志将恢复提交的事务,确保数据库的一致性。原理可参考 2. checkpoint checkpoint标志了数据库操作事务的某个位置。当postgres产生检查点时,会确保将该checkpoint之前的所有事务先flush到硬盘,然后将该checkpoint的信息保存到数据库文件夹的global/pg_control文件里面; 数据库恢复时,会先从pg_control获得checkpoint的信息,然后从WAL日志上找到该检查点的位置开始重做日志操作。 二、 POSTGRESQL备份方式 POSTGRESQL的备份方式主要有两类:逻辑备份和物理备份。 1逻辑备份 通过使用pg_dump/pg_dumpall工具,将数据库当前状态的创建语句以SQL脚本的形式导出。其好处是可以支持导出单个数据库,表,或某些数据库对象等。 2 物理备份 备份整个数据库文件夹并加以保存。 三、 增量备份原理 数据库增量备份是通过利用checkpoint和WAL日志等信息进行,需要两个必备条件:基础备份和WAL日志备份; 1. 基础备份 对整个数据库文件夹进行备份,备份前调用pg_start_backup()函数,产生新的checkpoint点,备份过程中通过脚本关闭WAL archive,以确保备份过程中产生的WAL日志保存在基础备份中。备份结束调用pg_stop_backup()函数,使新的WAL日志写入新的文件,使旧日志归档。 2. WAL增量备份 打开WAL的归档功能,WAL日志会被归到指定的文件夹,通过基础备份加上归档的WAL文件,就可以恢得到checkpoint后的任意一个时间点。

下载文档到电脑,查找使用更方便

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享文档获得金币 ] 0 人已下载

下载文档