postgresql 备份还原多张表

关于postgresql,在执行脚本的时候,往往我们需要先备份数据库,但有些数据库整库备份需要花很长时间,因此采用单表或多表备份的方式更方便。

多表备份

PGPASSWORD=123456 pg_dump -h 127.0.0.1 -U postgres -F c -v -f 
test-$(date +%Y-%m-%d-%H-%M).sql test -t test_log_202402_0 -t 
test_log_202402_1 -t test_log_202401_0 -t test_log_202401_1
  • PGPASSWORD=123456: 这是一个环境变量,用于指定连接到 PostgreSQL 数据库时所使用的密码。在这里,密码是 123456
  • pg_dump 是一个用于备份 PostgreSQL 数据库的工具。
  • -h 127.0.0.1: 指定数据库服务器的主机地址为 127.0.0.1,也就是本地主机。
  • -U postgres: 使用 postgres 用户连接到数据库。
  • -F c: 以自定义格式(custom format)输出备份文件。这种格式支持压缩和并行备份/恢复,并且包含足够的元数据以重新创建数据库对象。
  • -v: 启用详细输出模式,显示更多的操作信息。
  • -f test-$(date +%Y-%m-%d-%H-%M).sql: 指定输出文件的名称。这里使用了 shell 命令替换来生成一个包含当前日期和时间的文件名。
  • test: 要备份的数据库名称。
  • -t test_log_202402_0 -t test_log_202402_1 -t test_log_202401_0 -t test_log_202401_1: 这些 -t 选项用于指定要备份的表。这里,备份了 test_log_202402_0test_log_202402_1test_log_202401_0test_log_202401_1 这四张表。

还原表

和还原数据库是一样的,不需要单独指定还原哪张表,直接把备份的文件当库还原就可以,会自动覆盖之前的表

pg_restore -h 127.0.0.1 -U postgres --if-exists -c -v -d 
test test-2024-03-22-09-39.sql
  • pg_restore: 用于从 pg_dump 创建的备份文件中恢复数据的工具。
  • -h 127.0.0.1: 同样指定数据库服务器的主机地址为 127.0.0.1
  • -U postgres: 使用 postgres 用户连接到数据库。
  • --if-exists: 如果目标数据库已存在,则不报错。这通常用于确保在恢复过程中不会因为数据库已存在而导致失败。
  • -c: 在恢复之前,先创建一个新的数据库连接,这意味着它会先断开现有的连接,然后再重新连接。这有助于确保恢复过程中的数据一致性。
  • -v: 启用详细输出模式。
  • -d test: 指定要恢复到的数据库名称,这里是 test
  • test-2024-03-22-09-39.sql: 这是要恢复的备份文件的名称。
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值