文档首页/ 云数据库 GaussDB/ 用户指南/ 数据库迁移/ 使用gs_dump和gs_dumpall命令导出数据
更新时间:2024-10-08 GMT+08:00

使用gs_dump和gs_dumpall命令导出数据

操作场景

GaussDB提供的gs_dump和gs_dumpall工具,能够帮助用户导出需要的数据库对象或其相关信息。通过导入工具将导出的数据信息导入至需要的数据库,可以完成数据库信息的迁移。gs_dump支持导出单个数据库或其内的对象,而gs_dumpall支持导出数据库中所有数据库或各库的公共全局对象。详细的使用场景见表1

在多租场景下,gs_dump支持导出单个PDB或其内的对象,而gs_dumpall不支持导出PDB及其内的对象。

表1 适用场景

适用场景

支持的导出粒度

支持的导出格式

配套的导入方法

导出单个数据库

数据库级导出(参见导出数据库)。

  • 导出全量信息。

    使用导出的全量信息可以创建一个与当前库相同的数据库,且库中数据也与当前库相同。

  • 仅导出库中所有对象的定义,包含库定义、函数定义、模式定义、表定义、索引定义和存储过程定义等。

    使用导出的对象定义,可以快速创建一个相同的数据库,但是库中并无原数据库的数据。

  • 仅导出数据。
  • 纯文本格式
  • 自定义归档格式
  • 目录归档格式
  • tar归档格式
  • 纯文本格式数据文件导入使用gsql工具,请参见《工具参考》中“客户端工具 > gsql”章节。
  • 自定义归档格式、目录归档格式和tar归档格式数据文件导入请参见使用gs_restore命令导入数据

模式级导出(参见导出模式)。

  • 导出模式的全量信息。
  • 仅导出模式中数据。
  • 仅导出对象的定义,包含表定义、存储过程定义和索引定义等。
表级导出(参见导出表)。
  • 导出表的全量信息。
  • 仅导出表中数据。
  • 仅导出表的定义。

导出所有数据库

数据库级导出(参见导出所有数据库)。

  • 导出全量信息。

    使用导出的全量信息可以创建与当前主机相同的一个主机环境,拥有相同数据库和公共全局对象,且库中数据也与当前各库相同。

  • 仅导出各数据库中的对象定义,包含表空间、库定义、函数定义、模式定义、表定义、索引定义和存储过程定义等。

    使用导出的对象定义,可以快速创建与当前主机相同的一个主机环境,拥有相同的数据库和表空间,但是库中并无原数据库的数据。

  • 仅导出数据。

纯文本格式

数据文件导入请参见使用copy from命令导入数据

各库公共全局对象导出(参见导出全局对象)。
  • 仅导出表空间信息。
  • 仅导出角色信息。
  • 导出角色与表空间。

gs_dump和gs_dumpall通过-U指定执行导出的用户账户。如果当前使用的账户不具备导出所要求的权限时,会无法导出数据。可使用该功能的场景请参见表1

注意事项

gs_dump和gs_dumpall通过对导出的数据文件加密,导入时对加密的数据文件进行解密,可以防止数据信息泄露,为数据库的安全提供保证。注意,使用gs_dump加密的纯文本格式文件,因gsql不支持解密导入存储过程和函数,因此如果导出的数据库中包含存储过程/函数,请使用另外三种模式导出数据库,并使用gs_restore恢复。

gs_dump和gs_dumpall工具在进行数据导出时,其他用户可以访问数据库(读或写)。

gs_dump和gs_dumpall工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,或者启动gs_dumpall导出GaussDB数据库,那么导出数据结果将会是T1时刻A数据库或者该GaussDB数据库的数据状态,T1时刻之后对A数据库或GaussDB数据库的修改不会被导出。

gs_dump和gs_dumpall工具导出数据时,生成列不会被转储。

  • 禁止修改-F c/d/t 格式导出的文件和内容,否则可能无法恢复成功。对于-F p 格式导出的文件,如有需要,可根据需要谨慎编辑导出文件。
  • 如果数据库中包含的对象数量(数据表、视图、索引)在50万以上,为了提高性能且避免出现内存问题,建议联系技术支持
  • 为了保证数据一致性和完整性,导出工具会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁,gs_dump和gs_dumpall会等待锁释放后锁定表。如果无法在指定时间内锁定某个表,转储会失败。用户可以通过指定--lock-wait-timeout选项,自定义等待锁超时时间。
  • 由于gs_dumpall读取所有数据库中的表,因此必须以数据库管理员身份进行连接,才能导出完整文件。在使用gsql执行脚本文件导入时,同样需要管理员权限,以便添加用户和组,以及创建数据库。

迁移准备

  1. 准备弹性云服务器或可通过公网访问GaussDB。
    • 通过弹性云服务器连接GaussDB数据库实例,需要创建一台弹性云服务器。

      创建并登录弹性云服务器,请参见《弹性云服务器快速入门》中“购买弹性云服务器”和“登录弹性云服务器”。

    • 通过公网地址连接GaussDB数据库实例,需具备以下条件。
      1. 先对GaussDB数据库实例绑定公网地址,如何绑定公网地址,请参见绑定弹性公网IP
      2. 保证本地设备可以访问GaussDB数据库实例绑定的公网地址。
  2. 在准备的弹性云服务器或可访问GaussDB数据库的设备上,安装gsql客户端,并连接到GaussDB数据库实例。详情请参见使用gsql连接数据库

导出数据库

  1. 创建准备导出的库和表,并插入数据。
    create database gs_example;
    
    \c gs_example
    password: 
    
    create schema gs_sch_example;
    set search_path to gs_sch_example;
    create table gs_table_example
    (
    	col_1 integer,
    	col_2 text,
    	col_3 varchar(12),
    	col_4 date,
    	col_5 time
    );
    insert into gs_table_example values(1,'iamtext','iamvarchar','2006-07-07','12:00:00');
    insert into gs_table_example values(2,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_table_example values(3,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_table_example values(4,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_table_example values(5,'sometext','somevarchar','2006-07-07', null);
    insert into gs_table_example values(6,'sometext','somevarchar','2006-07-07','19:00:02');
  2. 使用gs_dump导出gs_example数据库。
    • 示例一:执行gs_dump,指定数据库IP,导出gs_example数据库全量信息,导出文件格式为sql文本格式。
      gs_dump -U root -f /tmp/data/gs_example_dump.sql -p 8000 gs_example -F p -h 192.*.*.139; 
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:04:20]: The total objects number is 458.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:04:20]: [100.00%] 458 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:04:20]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:04:20]: total time: 8779  ms
    • 示例二:执行gs_dump,指定数据库IP,导出gs_example数据库全量信息,以tar归档格式到'/tmp/data/gs_example_dump.tar'文件中。
      gs_dump -U root -f /tmp/data/gs_example_dump.tar -p 8000 gs_example -F t -h 192.*.*.139; 
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 14:58:49]: The total objects number is 458.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 14:58:49]: [100.00%] 458 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 14:58:49]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 14:58:49]: total time: 8201  ms
    • 示例三:执行gs_dump,指定数据库IP,仅导出gs_example数据库中的数据,不包含数据库对象定义,导出文件格式为自定义归档格式。
      gs_dump -U root -f /tmp/data/gs_example_dump.dmp -p 8000 gs_example -a -F c -h 192.*.*.139; 
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:07:23]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:07:23]: total time: 8369  ms
    • 示例四:执行gs_dump,指定数据库IP,仅导出gs_example数据库所有对象的定义,导出文件格式为sql文本格式。
      gs_dump -U root -f /tmp/data/gs_example_dump_s.sql -p 8000 gs_example -s -F p -h 192.*.*.139; 
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:09:37]: The total objects number is 457.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:09:37]: [100.00%] 457 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:09:37]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:09:37]: total time: 8523  ms
    • 示例五:执行gs_dump,指定数据库IP,仅导出gs_example数据库的所有对象的定义,导出文件格式为文本格式,并对导出文件进行加密。
      gs_dump -U root -f /tmp/data/gs_example_dump_s_key.sql -p 8000 gs_example --with-encryption AES128 --with-key abcdefg_?1234567 -s -F p -h 192.*.*.139;
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:10:38]: The total objects number is 457.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:10:38]: [100.00%] 457 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:10:38]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:10:38]: total time: 9101  ms
    表2 常用参数说明

    参数

    参数说明

    举例

    -U

    连接数据库的用户名。

    说明:

    不指定连接数据库的用户名时,默认以安装时创建的初始系统管理员连接。

    -U jack

    -W

    指定用户连接的密码。

    • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项。
    • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

    -W ********

    -f

    将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。如果输出格式为(-F c/-F d/-F t)时,必须指定-f参数。

    -f /home/omm/backup/MPPDB_backup.tar

    -p

    指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

    -p 8000

    dbname

    需要导出的数据库名称。

    testdb

    -F

    选择导出文件格式。-F参数值如下:

    • p:纯文本格式
    • c:自定义归档
    • d:目录归档格式
    • t:tar归档格式

    -F t

导出模式

  1. 创建准备导出的模式,并插入数据。
    create database gs_example;
    
    \c gs_example
    password: 
    
    create schema gs_sch_example;
    create schema gs_sch_1_example;
    create table gs_sch_example.gs_table_example
    (
    	col_1 integer,
    	col_2 text,
    	col_3 varchar(12),
    	col_4 date,
    	col_5 time
    );
    create table gs_sch_1_example.gs_table_example
    (
    	col_1 integer,
    	col_2 text,
    	col_3 varchar(12),
    	col_4 date,
    	col_5 time
    );
    insert into gs_sch_example.gs_table_example values(1,'iamtext','iamvarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example values(2,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example values(3,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example values(4,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_sch_example.gs_table_example values(5,'sometext','somevarchar','2006-07-07', null);
    insert into gs_sch_example.gs_table_example values(6,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_sch_1_example.gs_table_example values(7,'iamtext','iamvarchar','2006-07-07','12:00:00');
    insert into gs_sch_1_example.gs_table_example values(8,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_1_example.gs_table_example values(9,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_1_example.gs_table_example values(10,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_sch_1_example.gs_table_example values(11,'sometext','somevarchar','2006-07-07', null);
    insert into gs_sch_1_example.gs_table_example values(12,'sometext','somevarchar','2006-07-07','19:00:02');
  2. 使用gs_dump同时导出gs_example库中的模式。
    • 示例一:执行gs_dump,指定数据库IP,同时导出gs_sch_example和gs_sch_1_example模式,导出文件格式为目录归档格式。
      gs_dump -U root -f /tmp/data/gs_sch_dump -p 8000 gs_example -n gs_sch_example -n gs_sch_1_example -F d -h 192.*.*.139;
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:37:11]: The total objects number is 460.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:37:11]: [100.00%] 460 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:37:11]: dump schema gs_sch_example gs_sch_1_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:37:11]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:37:11]: total time: 9602  ms
    • 示例二:执行gs_dump,指定数据库IP,导出gs_sch_example模式全量信息,导出文件格式为文本格式。
      gs_dump -U root -f /tmp/data/gs_sch_dump.sql -p 8000 gs_example -n gs_sch_example -F p -h 192.*.*.139;
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:39:00]: The total objects number is 457.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:39:00]: [100.00%] 457 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:39:00]: dump schema gs_sch_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:39:00]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:39:00]: total time: 8582  ms
    • 示例三:执行gs_dump,指定数据库IP,导出gs_example数据库时,排除gs_sch_example模式,导出文件格式为自定义归档格式。
      gs_dump -U root -f /tmp/data/gs_sch_dump.dmp -p 8000 gs_example -N gs_sch_example -F c -h 192.*.*.139;
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:41:14]: The total objects number is 458.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:41:14]: [100.00%] 458 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:41:14]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:41:14]: total time: 8323  ms
    表3 常用参数说明

    参数

    参数说明

    举例

    -U

    连接数据库的用户名。

    -U jack

    -W

    指定用户连接的密码。

    • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项。
    • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

    -W ********

    -f

    将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。

    -f /home/omm/backup/MPPDB_schema_backup

    -p

    指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

    -p 8000

    dbname

    需要导出的数据库名称。

    human_resource

    -n

    只导出与模式名称匹配的模式,此选项包括模式本身和所有它包含的对象。

    • 单个模式:-n schemaname
    • 多个模式:多次输入-n schemaname
    • 单个模式:-n hr
    • 多个模式:-n hr -n public

    -F

    选择导出文件格式。-F参数值如下:

    • p:纯文本格式
    • c:自定义归档
    • d:目录归档格式
    • t:tar归档格式

    -F d

导出表

  1. 创建准备导出的模式,并插入数据。
    create database gs_example;
    
    \c gs_example
    password: 
    
    create schema gs_sch_example;
    create table gs_sch_example.gs_table_example
    (
    	col_1 integer,
    	col_2 text,
    	col_3 varchar(12),
    	col_4 date,
    	col_5 time
    );
    create table gs_sch_example.gs_table_example_2
    (
    	col_1 integer,
    	col_2 text,
    	col_3 varchar(12),
    	col_4 date,
    	col_5 time
    );
    insert into gs_sch_example.gs_table_example values(1,'iamtext','iamvarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example values(2,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example values(3,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example values(4,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_sch_example.gs_table_example values(5,'sometext','somevarchar','2006-07-07', null);
    insert into gs_sch_example.gs_table_example values(6,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_sch_example.gs_table_example_2 values(7,'iamtext','iamvarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example_2 values(8,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example_2 values(9,'sometext','somevarchar','2006-07-07','12:00:00');
    insert into gs_sch_example.gs_table_example_2 values(10,'sometext','somevarchar','2006-07-07','19:00:02');
    insert into gs_sch_example.gs_table_example_2 values(11,'sometext','somevarchar','2006-07-07', null);
    insert into gs_sch_example.gs_table_example_2 values(12,'sometext','somevarchar','2006-07-07','19:00:02');
  2. 使用gs_dump同时导出指定表gs_sch_example.gs_table_example和gs_sch_example.gs_table_example_2。
    1. 下方示例导出后,在导入恢复前,需要确保存在导出表所在的schema。
    • 示例一:执行gs_dump,指定数据库IP,同时导出表gs_sch_example.gs_table_example和gs_sch_example.gs_table_example_2,导出文件格式为目录归档格式。
      gs_dump -U root -f /tmp/data/gs_table_dump -p 8000 gs_example -t gs_sch_example.gs_table_example -t gs_sch_example.gs_table_example_2 -F d -h 192.*.*.139;
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:49:06]: The total objects number is 458.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:49:06]: [100.00%] 458 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:49:06]: dump table gs_sch_example.gs_table_example gs_sch_example.gs_table_example_2 successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:49:06]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:49:06]: total time: 7694  ms
    • 示例二:执行gs_dump,指定数据库IP,不导出表gs_sch_example.gs_table_example_2,导出文件格式为自定义归档格式。
      gs_dump -U root -f /tmp/data/gs_table_dump.dmp -p 8000 gs_example -T gs_sch_example.gs_table_example_2 -F c -h 192.*.*.139;
      Password:
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:52:07]: The total objects number is 461.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:52:07]: [100.00%] 461 objects have been dumped.
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:52:07]: dump database gs_example successfully
      gs_dump[user='root'][localhost][port='8000'][gs_example][2024-07-26 15:52:07]: total time: 8203  ms
    表4 常用参数说明

    参数

    参数说明

    举例

    -U

    连接数据库的用户名。

    -U jack

    -W

    指定用户连接的密码。

    • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项。
    • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

    -W ********

    -f

    将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。

    -f /home/omm/backup/MPPDB_table_backup

    -p

    指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

    -p 8000

    dbname

    需要导出的数据库名称。

    human_resource

    -t

    指定导出的表(或视图、序列、外表),可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。当使用通配符指定多个表对象时,注意给pattern打引号,防止shell扩展通配符。

    • 单个表:-t schema.table
    • 多个表:多次输入-t schema.table
    • 单个表:-t hr.staffs
    • 多个表:-t hr.staffs -t hr.employments

    -F

    选择导出文件格式。-F参数值如下:

    • p:纯文本格式
    • c:自定义归档
    • d:目录归档格式
    • t:tar归档格式

    -F d

    -T

    不转储的表(或视图、或序列、或外表)对象列表,可以使用多个-t选项来选择多个表,也可以使用通配符指定多个表对象。

    当同时输入-t和-T时,会转储在-t列表中,而不在-T列表中的表对象。

    -T table1

导出所有数据库

使用gs_dumpall一次导出所有数据库信息。
  • 示例一:执行gs_dumpall,指定数据库IP,一次导出所有数据库信息,导出文件为sql文本格式。执行命令后,会有很长的打印信息,最终出现total time即代表执行成功。示例中将不体现中间的打印信息。
    gs_dumpall -U root -f /tmp/data/dumpall.sql -p 8000 -h 192.*.*.139;
    Password:
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:02:15]: dumpall operation successful
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:02:15]: total time: 35133  ms
  • 示例二:执行gs_dumpall,指定数据库IP,仅导出所有数据库定义,导出文件为sql文本格式。执行命令后,会有很长的打印信息,最终出现total time即代表执行成功。示例中将不体现中间的打印信息。
    gs_dumpall -U root -f /tmp/data/dumpall_def.sql -p 8000 -s -h 192.*.*.139;
    Password:
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:07:50]: dumpall operation successful
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:07:50]: total time: 21239  ms
表5 常用参数说明

参数

参数说明

举例

-U

连接数据库的用户名,需要是数据库openGauss管理员用户。

-U omm

-W

指定用户连接的密码。

  • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项。
  • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

-W ********

-f

将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。

-f /home/omm/backup/MPPDB_backup.sql

-p

指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

-p 8000

导出全局对象

使用gs_dumpall导出表空间对象信息。
  • 示例一:执行gs_dumpall,指定数据库IP,导出所有数据库的公共全局表空间信息和用户信息,导出文件为sql文本格式。示例中将不体现中间的打印信息。
    gs_dumpall -U root -f /tmp/data/dumpall_tablespace.sql -p 8000 -t -h 192.*.*.139;
    Password:
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:10:42]: dumpall operation successful
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:10:42]: total time: 1800  ms
  • 示例二:执行gs_dumpall,指定数据库IP,导出所有数据库的公共全局用户信息,导出文件为文本格式。示例中将不体现中间的打印信息。
    gs_dumpall -U root -f /tmp/data/dumpall_user.sql -p 8000 -r -h 192.*.*.139;
    Password: 
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:12:15]: dumpall operation successful
    gs_dumpall[user='root'][localhost][port='8000'][2024-07-26 16:12:15]: total time: 1269  ms
表6 常用参数说明

参数

参数说明

举例

-U

连接数据库的用户名,需要是数据库openGauss管理员用户。

-U omm

-W

指定用户连接的密码。

  • 如果主机的认证策略是trust,则不会对数据库管理员进行密码验证,即无需输入-W选项。
  • 如果没有-W选项,并且不是数据库管理员,会提示用户输入密码。

-W ********

-f

将导出文件发送至指定目录文件夹。如果这里省略,则使用标准输出。

-f /home/omm/backup/MPPDB_tablespace.sql

-p

指定服务器所侦听的TCP端口或本地Unix域套接字后缀,以确保连接。

-p 8000

-t

或者--tablespaces-only,只转储表空间,不转储数据库或角色。

-t

相关链接

有关gs_dump和 gs_dumpall命令的更多信息,请参见: