暂无图片
在同一台服务器上,备份恢复一个数据库,那种方式快?
我来答
分享
James Yu
2024-09-24
在同一台服务器上,备份恢复一个数据库,那种方式快?

在同一台服务器上,譬如有个database db1,大小几十GB, 现在想在同一台服务器上通过备份/恢复产生一个 db1_test 用于测试,希望能快速生成测试库用于对比测试,用那个工具比较安全、快捷? 谢谢!

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
吾亦可往

在同一台服务器上对 PostgreSQL 数据库进行备份恢复以快速生成测试库,以下是一些较为安全快捷的方式:


一、使用 pg_dump 和 pg_restore


  1. 备份数据库 db1
   pg_dump -F c -b -v -f db1_backup.dump db1


这将以自定义格式(-F c)备份数据库 db1,生成一个名为 db1_backup.dump 的备份文件。


  1. 恢复为新数据库 db1_test


   pg_restore -d db1_test -v db1_backup.dump


这将把备份文件恢复到新的数据库 db1_test 中。


优点:


  • 是 PostgreSQL 自带的工具,稳定性高。
  • 可以灵活控制备份和恢复的选项。


缺点:


  • 对于非常大的数据库,恢复时间可能较长。


二、使用 pg_basebackup


如果数据库处于归档模式下,可以使用 pg_basebackup 进行物理备份和恢复。


  1. 备份:
   pg_basebackup -D backup_directory -Fp -Xs -v -P -h localhost -p 5432 -U username -R


这将进行物理备份,并生成一个包含恢复所需信息的文件。


  1. 恢复:
    首先停止数据库服务器,然后将备份目录复制到新的数据库目录,并修改配置文件以指向新的数据库名称。


优点:


  • 对于大型数据库,物理备份和恢复可能比逻辑备份更快。


缺点:


  • 需要数据库处于归档模式,配置相对复杂。
  • 可能需要更多的磁盘空间来存储备份。


总体而言,对于几十 GB 的数据库,使用 pg_dump 和 pg_restore 通常是比较安全可靠的选择。如果数据库处于归档模式且对恢复速度有更高要求,可以考虑使用 pg_basebackup。同时,在进行备份和恢复操作之前,一定要确保对数据进行了充分的测试,并在非生产环境中进行演练,以确保操作的安全性和正确性。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏