美文网首页
pg_dump、pg_restore实践

pg_dump、pg_restore实践

作者: Hmcf | 来源:发表于2020-07-10 11:17 被阅读0次

常见选项

  • -a --data-only
    只转储数据,而不转储模式(数据定义)。表数据、大对象和序列值都会被转储。
  • -c --clean
    在输出创建数据库对象的命令之前输出清除(删除)它们的命令 (除非也指定了--if-exists,如果任何对象不存在于 目的数据库中,恢复可能会产生一些伤害性的错误消息)。
    这个选项只对纯文本格式有意义。对于归档格式,你可以在调用pg_restore时指定该选项。
  • -E --encoding=encoding
    以指定的字符集编码创建转储。
  • -f --file=file
    将输出发送到指定文件。
    *-F --format=format
    选择输出的格式。
    [p 输出一个纯文本形式的SQL脚本文件(默认值)]
    [c 输出一个适合于作为pg_restore输入的自定义格式归档。和目录输出格式一起,这是最灵活的输出格式,它允许在恢复时手动选择和排序已归档的项。这种格式在默认情况还会被压缩。]
    [d、t]
  • -j --jobs=njobs
    通过同时归档njobs个表来运行并行转储。这个选项缩减了转储的时间,但是它也增加了数据库服务器上的负载。你只能和目录输出格式[d]一起使用这个选项,因为这是唯一一种让多个进程能在同一时间写其数据的输出格式。
  • -n --schema=schema
    只转储匹配schema的模式,这会选择模式本身以及它所包含的所有对象。当没有指定这个选项时,目标数据库中所有非系统模式都将被转储。多个模式可以通过书写多个-n开关来选择。
  • -N --exclude-schema=schema
    不转储匹配schema模式的任何模式。该模式被根据-n所用的相同规则被解释。-N可以被给定多次来排除匹配几个模式中任意一个的模式。
    当-n和-N都被给定时,该行为是只转储匹配至少一个-n开关但是不匹配-N开关的模式。如果只有-N而没有-n,那么匹配-N的模式会被从一个正常转储中排除。
  • -s --schema-only
    只转储对象定义(模式),而非数据。这个选项是--data-only的逆选项。
  • -t --table=table
    只转储名字匹配table的表,“table”还可以包括视图、物化视图、序列和外部表。通过写多个-t开关可以选择多个表。
  • -T --exclude-table=table
    不转储匹配table模式的任何表。该模式被根据-t所用的相同规则被解释。-T可以被给定多次来排除匹配几个模式中任意一个的模式。
    当-t和-T都被给定时,该行为是只转储匹配至少一个-t开关但是不匹配-T开关的表。如果只有-T而没有-t,那么匹配-T的表会被从一个正常转储中排除。
  • -Z 0..9 --compress=0..9
    指定要使用的压缩级别。零意味着不压缩。对于自定义归档格式,这会指定个体表数据段的压缩,并且默认是进行中等级别的压缩。对于纯文本输出,设置一个非零压缩级别会导致整个输出文件被压缩,就好像它被gzip处理过一样,但是默认是不压缩。tar 归档格式当前完全不支持压缩。
  • --if-exists
    时间条件性命令(即增加一个IF EXISTS子句)来清除数据库和其他对象。 只有同时指定了--clean时,这个选项才可用。
  • -d --dbname=dbname
    指定要连接到的数据库名。
  • -h --host=host
    指定服务器正在运行的机器的主机名。
  • -p --port=port
  • -W --password
    强制pg_dump在连接到一个数据库之前提示要求一个口令。
pg_dump实践
  • 备份数据库结构
su - postgres
pg_dump -Fc -s -f testdbschema.sql testdb
  • 备份数据库数据
su - postgres
pg_dump -Fc -a -f testdbdata.sql testdb
  • 备份数据库结构和数据
su - postgres
pg_dump -Fc -f testdbschemadata.sql testdb
  • 备份数据库中指定表结构
pg_dump -Fc -s -t citycode -f citycode_tab.sql testdb
  • 备份数据库中指定表数据
pg_dump -Fc -a -t citycode -f citycode_data.sql testdb
  • 备份数据库中指定表(结构和数据)
pg_dump -Fc -t citycode -f citycode_tabdata.sql testdb
pg_restore实践
  • 恢复数据结构(only schema)
su - postgres
pg_restore -s -d testdb testdbschema.sql  
  • 恢复数据库数据(only data)
su - postgres
pg_restore -a -d testdb testdbdata.sql 
  • 恢复数据库结构和数据(schema and data)
su - postgres
pg_restore -d testdb testdbschemadata.sql 
  • 恢复表结构
pg_restore -s -t citycode -d testdb citycode_schema.sql
  • 恢复表数据
pg_restore -a -t citycode -d testdb citycode_data.sql
  • 恢复表(结构和数据)
pg_restore -t citycode -d testdb citycode_schemadata.sql

相关文章

网友评论

      本文标题:pg_dump、pg_restore实践

      本文链接:https://www.haomeiwen.com/subject/ifmpcktx.html