美文网首页
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