postgres 数据备份和还原

PgSql备份pg_dump与还原手记pg_restore

真没有想到,以前一直是PostgreSQL使用者,突然需要库移植又成了头一招了!原来它与mysql命令行操作区别还挺大。
不用怕,但绝对要细心,因为数据库操作是网站的核心,一旦出现损坏或丢失,后果就非常严重了。
我先写了步骤,然后按计划进行,虽然也出现了错误,但最终还是安全移植了。这里记录在案,以备后用。
备份还原方法:pg_dump和pg_restore,先仔细说明这两个命令,再记录我的操作方法。


pg_dump --  将一个PostgreSQL数据库抽出到一个脚本文件或者其它归档文件中
pg_dump [option...] [dbname]

选项option...
下面的命令行参数控制输出的内容和格式。

dbname
声明将要转储的数据库名。 如果没有声明这个参数,那么使用环境变量 PGDATABASE。 如果那个环境变量也没声明,那么用发起连接的用户名。

-a
--data-only
只输出数据,不输出模式(数据定义)。

这个选项只是对纯文本格式有意义。对于归档格式,你可以在调用 pg_restore 的时候声明选项。

-b
--blobs
在转储中包含大对象。必须选择一种非文本输出格式。

-c
--clean
输出在创建数据库创建命令之前先清理(删除)该数据库对象的命令。

这个选项只是对纯文本格式有意义。对于归档格式,你可以在调用 pg_restore 的时候声明选项。

-C
--create
以一条创建该数据库本身并且与这个数据库联接等命令开头进行输出。 (如果是这种形式的脚本,那么你在运行脚本之前和哪个数据库联接就不重要了。)

这个选项只对纯文本格式有意义。对于归档格式,你可以在调用 pg_restore 的时候声明该选项。

-d
--inserts
将数据输出为的INSERT命令(而不是 COPY)。 这样会导致恢复非常缓慢。 这个选项主要用于制作那种可以用于其它非 PostgreSQL 数据库的转储。 请注意,如果你重新排列了字段顺序,那么恢复可能会完全失败。 -D 更安全,但是也更慢。

-D
--column-inserts
--attribute-inserts
把数据转储为带有明确字段名的 INSERT 命令。 (INSERT INTO table(column, ...) VALUES ...)。 这样会导致恢复非常缓慢,它主要用于制作那种可以用于其它非 PostgreSQL 数据库的转储。

-f file
--file=file
把输出发往指定的文件。如果忽略这些,则使用标准输出。

-F format
--format=format
选择输出的格式。format可以是下列之一:

p
输出纯文本SQL脚本文件(缺省)

t
输出适合输入到 pg_restore 里的tar归档文件。 使用这个归档允许在恢复数据库时重新排序和/或把数据库对象排除在外。 同时也可能可以在恢复的时候限制对哪些数据进行恢复。

c
输出适于给 pg_restore 用的客户化归档。 这是最灵活的格式,它允许对装载的数据和对象定义进行重新排列。 这个格式缺省的时候是压缩的。

-i
--ignore-version
忽略在 pg

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值