PostgreSQL备份与恢复
PostgreSQL备份与恢复 官方文档(英文):http://www.postgresql.org/docs/9.4/static/backup.html 官方文档(中文):http://58.58.27.50:8079/doc/html/9.3.1_zh/backup.html 逻辑备份:1.SQL转储(pg_dump,pg_dumpall)
SQL转储不包括索引,可以自定义要备份的对象及其内容,将备份内容生成不同的格式。可以通过pg_restore还原备份。 是pg_dump的输出通常可以重新载入到PostgreSQL新版本, 然而文件级别备份和连续归档都限于原服务器版本。pg_dump是将数据库传输到另一台机器体系结构工作时唯一的方法, 如从32位变到64位服务器。 由pg_dump创建的备份在内部是一致的, 也就是说,pg_dump转储的pg_dump开始运行时的数据库快照。pg_dump工作的时候并不阻塞其它的对数据库的操作 (但是会阻塞那些需要排它锁的操作,比如多数形式的ALTER TABLE)。
物理备份:1.文件系统备份文件系统级别备份,就是直接copy数据库目录,必须关闭服务,这无法在提供24小时不间断服务的Web上应用。 需要注意的是文件系统备份往往比SQL转储大。 比如pg_dump不用导出索引, 只是创建它们的命令。然而,文件系统备份也可能会更快。 2.连续归档和基于时间点恢复PITR(Point In Time Recovery)基于时间点恢复可参考:http://my.oschina.net/Kenyon/blog/58112 在任何时候,PostgreSQL都在集群的数据目录的pg_xlog/子目录里维护着一套预写日志(WAL)。 这些日志记录着每一次对数据库的修改细节。这些日志存在是为了防止崩溃: 如果系统崩溃,数据库可以通过"重放"上次检查点以来的日志记录以恢复数据库的完整性。但是,日志的存在让它还可以用于第三种备份数据库的策略: 我们可以组合文件系统备份与WAL文件的备份。如果需要恢复,我们就恢复备份,然后重放备份了的WAL文件,把备份恢复到当前的时间。这个方法对管理员来说,明显比以前的方法更复杂,但是有非常明显的优势:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |