技术开发 频道

Linux上Postgres Plus数据库备份和恢复

  三、与备份和恢复有关的选项

  Pg_dump和pg_restore程序为我们提供了许多选项,通过它们可以控制将哪些数据库对象保存到备份文件,从备份文件中恢复哪些数据库对象,以及如何进行恢复。下面列出了一些选项:

  •仅转储或者恢复模式 (表、视图和序列定义、约束、触发器与函数),不转储或恢复表中数据。(如果您当前使用的是Postgres Plus Advanced Server的话,SPL函数、过程、触发器和软件包也是能够进行备份和恢复的。)

  •仅转储或恢复表中数据,而不包括模式。

  •转储或恢复属于选中的模式的数据库对象。

  •创建备份时,排除选中的方案。

  •转储或恢复选中的表。

  •创建备份时,排除选中的表。

  •允许恢复操作使用要备份的数据库的名称来新建数据库,然后从这个新创的数据库中恢复数据库对象。

  •将数据库对象恢复到所有的现有数据库。

  •令被恢复的数据库对象的属主与制作备份时这些对象的属主同名。

  •将进行恢复操作的用户的角色指定为所有被恢复的数据库对象的属主。

  注意:有关创建一个备份文件更详细的说明,请参阅Postgres Plus web文档页面中的“PostgreSQL Client Applications”一章中关于pg_dump的内容。有关恢复定制的归档格式的备份文件的详细过程,请参阅Postgres Plus web文档页面中的“PostgreSQL Client Applications”一章中关于pg_restore的内容。

  假设我们想要备份一个数据库的全部内容,并在随后某个时间从备份文件中重建整个数据库,下面我们就介绍用纯文本格式的备份文件和定制的归档格式的备份文件来完成上述过程。

  四、指导步骤

  假定您的数据库环境如下所示:

  •我们的数据库要恢复到其中的数据库集群包含的角色名称(用户名和组名)就是制作备份时数据库对象的属主。换句话说,我们要制作备份(当制作备份时没有删除任何数据库对象的属主的角色)的数据库集群与恢复的目的地是同一个数据库集群,或者我们要恢复到一个新的数据库集群,并且在其中添加的一组角色名称与制作备份的数据库集群中的角色名称完全相同。

  •用来恢复我们的数据库的数据库集群中没有与制作备份的数据库同名的数据库。 (如果制作备份文件的数据库集群正好是用来恢复数据库的数据库集群,则数据库制作备份之后,需要将其删除或者改名。)

  注意:一个数据库集群就是由同一个Postgres Plus 实例运行的一组数据库。一个数据库集群通过它的ip地址和端口号唯一标识。

0
相关文章