zoukankan      html  css  js  c++  java
  • GreenPlum 大数据平台--非并行备份(六)

    一,非并行备份(pg_dump)

      1) GP依然支持常规的PostgreSQL备份命令pg_dump和pg_dumpall
      2) 备份将在Master主机上创建一个包含所有Segment数据的大的备份文件
      3) 不适合于全部数据备份,适用于小部分数据的迁移或备份

      pg_dump是用于备份数据库的标准PostgreSQL实用程序,在Greenplum数据库中也受支持。它创建一个(非并行)转储文件。对于Greenplum数据库的常规备份,最好使用Greenplum Database备份实用程序gpcrondump以获得最佳性能。

      如果要将数据迁移到其他数据库供应商的系统,或者使用具有不同段配置的另一个Greenplum Database系统(例如,如果要迁移到的系统具有更多或更少的段实例),请使用pg_dump。要还原,必须使用相应的pg_restore实用程序(如果转储文件采用存档格式),或者可以使用客户端程序(如psql)(如果转储文件采用纯文本格式)。

      由于pg_dump与常规PostgreSQL兼容,因此可用于将数据迁移到Greenplum数据库。 Greenplum数据库中的pg_dump实用程序与PostgreSQL pg_dump实用程序非常相似,但有以下例外和限制:

       如果使用pg_dump备份Greenplum数据库数据库,请记住,对于非常大的数据库,转储操作可能需要很长时间(几个小时)。此外,您必须确保有足够的磁盘空间来创建转储文件。
      如果要将数据从一个Greenplum数据库系统迁移到另一个,请使用--gp-syntax命令行选项在CREATE TABLE语句中包含DISTRIBUTED BY子句。这可确保Greenplum Database表数据在还原时与正确的分发键列一起分发。

      即使同时使用数据库,pg_dump也会进行一致的备份。 pg_dump不会阻止访问数据库的其他用户(读者或编写者)。

      当与其中一种存档文件格式一起使用并与pg_restore结合使用时,pg_dump提供了灵活的存档和传输机制。 pg_dump可用于备份整个数据库,然后pg_restore可用于检查存档和/或选择要还原数据库的哪些部分。最灵活的输出文件格式是自定义格式(-Fc)。它允许选择和重新排序所有已归档项目,并在默认情况下进行压缩。 tar格式(-Ft)未压缩,加载时无法重新排序数据,但在其他方面非常灵活。它可以使用标准的UNIX工具(如tar)进行操作

      参数:

     1 [gpadmin@greenplum01 ~]$ pg_dump --help
     2 pg_dump dumps a database as a text file or to other formats.
     3 
     4 Usage:
     5   pg_dump [OPTION]... [DBNAME]
     6 
     7 General options:
     8   -f, --file=FILENAME      output file name
     9   -F, --format=c|t|p       output file format (custom, tar, plain text)
    10   -i, --ignore-version     proceed even when server version mismatches
    11                            pg_dump version
    12   -v, --verbose            verbose mode
    13   -Z, --compress=0-9       compression level for compressed formats
    14   --help                   show this help, then exit
    15   --version                output version information, then exit
    16 
    17 Options controlling the output content:
    18   -a, --data-only             dump only the data, not the schema
    19   -b, --blobs                 include large objects in dump
    20   -c, --clean                 clean (drop) schema prior to create
    21   -C, --create                include commands to create database in dump
    22   -d, --inserts            dump data as INSERT, rather than COPY, commands
    23   -D, --column-inserts     dump data as INSERT commands with column names
    24   -E, --encoding=ENCODING     dump the data in encoding ENCODING
    25   -n, --schema=SCHEMA         dump the named schema(s) only
    26   -N, --exclude-schema=SCHEMA do NOT dump the named schema(s)
    27   -o, --oids                  include OIDs in dump
    28   -O, --no-owner              skip restoration of object ownership
    29                               in plain text format
    30   -s, --schema-only           dump only the schema, no data
    31   -S, --superuser=NAME        specify the superuser user name to use in
    32                               plain text format
    33   -t, --table=TABLE           dump only matching table(s) (or views or sequences)
    34   -T, --exclude-table=TABLE   do NOT dump matching table(s) (or views or sequences)
    35   -x, --no-privileges         do not dump privileges (grant/revoke)
    36   --disable-dollar-quoting    disable dollar quoting, use SQL standard quoting
    37   --disable-triggers          disable triggers during data-only restore
    38   --use-set-session-authorization
    39                               use SESSION AUTHORIZATION commands instead of
    40                               ALTER OWNER commands to set ownership
    41   --gp-syntax                 dump with Greenplum Database syntax (default if gpdb)
    42   --no-gp-syntax              dump without Greenplum Database syntax (default if postgresql)
    43   --function-oids             dump only function(s) of given list of oids
    44   --relation-oids             dump only relation(s) of given list of oids
    45 
    46 Connection options:
    47   -h, --host=HOSTNAME      database server host or socket directory
    48   -p, --port=PORT          database server port number
    49   -U, --username=NAME      connect as specified database user
    50   -W, --password           force password prompt (should happen automatically)
    51 
    52 If no database name is supplied, then the PGDATABASE environment
    53 variable value is used.
    54 
    55 Report bugs to <bugs@greenplum.org>.

    实例:

    1. 只导出postgres数据库的数据,不包括模式 -s
    
       pg_dump -U gpadmin -f /postgres.sql -s postgres(数据库名)
    
    2. 导出postgres数据库(包括数据)
    
       pg_dump -U gpadmin -f /postgres.sql  postgres(数据库名)
    
    3. 导出postgres数据库中表test01的数据
    
       create database "test1" with owner="gpadmin" encoding='utf-8';(单引号,双引号不能错)
    
       pg_dump -U gpadmin -f /postgres.sql -t test1 postgres(数据库名)
    
    4. 导出postgres数据库中表test1的数据,以insert语句的形式
    
       pg_dump -U gpadmin -f /postgres.sql -t test1 --column-inserts postgres(数据库名)
    
    5. 恢复数据到gpdb数据库
    
      psql -U gpadmin -f /postgres.sql gpdb

    二,操作指南

      备份1:

    [gpadmin@greenplum01 ~]$ pg_dump -U gpadmin -F t -f /gpbackup/back2/gpdb.tar gpdb
    [gpadmin@greenplum01 ~]$

      恢复:

    [gpadmin@greenplum01 ~]$ pg_restore -U gpadmin -d gpdb /gpdb.tar
    [gpadmin@greenplum01 ~]$

      备份2:

    [gpadmin@greenplum01 ~]$ pg_dump -U gpadmin -F c -f /gpbackup/back2/gpdb.tar gpdb

      备份压缩1:

    [gpadmin@greenplum01 ~]$ pg_dump -U gpadmin gpdb | gzip > /gpbackup/back2/gpdb.gz
    [gpadmin@greenplum01 ~]$

      恢复

     gunzip -c /gpdb.gz | psql -U gpadmin postgres
    cat /gpdb.gz | gunzip | psql -U gpadmin postgres

      备份切割:

     pg_dump -U gpadmin -d gpdb | split -b 100k - gpback/gpb

      恢复:

    cat /gpback/gpb* | psql -U gpadmin postgres

      

  • 相关阅读:
    python学习笔记(五)---sublime text 多行代码注释快捷键
    python学习笔记(四)---python不能输出中文问题
    python学习笔记(三)---python关键字及其用法
    python学习笔记(二)---编辑工具sublimeText3运行python
    python学习笔记(一)---python下载以及环境的安装
    idea上查看本文件svn修改的历史版本
    关于app
    Git 上传文件到 码云 gitee
    Vue 图片引入
    Eslint 规则说明
  • 原文地址:https://www.cnblogs.com/kingle-study/p/10564865.html
Copyright © 2011-2022 走看看