
# 使用gs_dump和gs_dumpall命令导出数据
#### 操作场景
GaussDB提供的gs_dump和gs_dumpall工具，能够帮助用户导出需要的数据库对象或其相关信息。通过导入工具将导出的数据信息导入至需要的数据库，可以完成数据库信息的迁移。gs_dump支持导出单个数据库或其内的对象，而gs_dumpall支持导出数据库中所有数据库或各库的公共全局对象。详细的使用场景见[表1]。
![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
在多租场景下，gs_dump支持导出单个PDB或其内的对象，而gs_dumpall不支持导出PDB及其内的对象。
 表1适用场景 
| 适用场景    | 支持的导出粒度                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 支持的导出格式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | 配套的导入方法                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    |
|:---|:---|:---|:---|
| 导出单个数据库 | 数据库级导出（参见[导出数据库]）。 - 导出全量信息。 使用导出的全量信息可以创建一个与当前库相同的数据库，且库中数据也与当前库相同。   - 仅导出库中所有对象的定义，包含库定义、函数定义、模式定义、表定义、索引定义和存储过程定义等。 使用导出的对象定义，可以快速创建一个相同的数据库，但是库中并无原数据库的数据。   - 仅导出数据。                                                 | - 纯文本格式  - 自定义归档格式  - 目录归档格式  - tar归档格式   | - 纯文本格式数据文件导入使用gsql工具，请参见《工具参考》中"[gsql](https://support.huaweicloud.com/tg-gaussdb-cent/gaussdb-38-0003.html)"章节。  - 自定义归档格式、目录归档格式和tar归档格式数据文件导入请参见[使用gs_restore命令导入数据](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_686.html)。   |
| 导出单个数据库 | 模式级导出（参见[导出模式]）。 - 导出模式的全量信息。  - 仅导出模式中数据。  - 仅导出对象的定义，包含表定义、存储过程定义和索引定义等。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                        | - 纯文本格式  - 自定义归档格式  - 目录归档格式  - tar归档格式   | - 纯文本格式数据文件导入使用gsql工具，请参见《工具参考》中"[gsql](https://support.huaweicloud.com/tg-gaussdb-cent/gaussdb-38-0003.html)"章节。  - 自定义归档格式、目录归档格式和tar归档格式数据文件导入请参见[使用gs_restore命令导入数据](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_686.html)。   |
| 导出单个数据库 | 表级导出（参见[导出表]）。 - 导出表的全量信息。  - 仅导出表中数据。  - 仅导出表的定义。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | - 纯文本格式  - 自定义归档格式  - 目录归档格式  - tar归档格式   | - 纯文本格式数据文件导入使用gsql工具，请参见《工具参考》中"[gsql](https://support.huaweicloud.com/tg-gaussdb-cent/gaussdb-38-0003.html)"章节。  - 自定义归档格式、目录归档格式和tar归档格式数据文件导入请参见[使用gs_restore命令导入数据](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_686.html)。   |
| 导出所有数据库 | 数据库级导出（参见[导出所有数据库]）。 - 导出全量信息。 使用导出的全量信息可以创建与当前主机相同的一个主机环境，拥有相同数据库和公共全局对象，且库中数据也与当前各库相同。   - 仅导出各数据库中的对象定义，包含表空间、库定义、函数定义、模式定义、表定义、索引定义和存储过程定义等。 使用导出的对象定义，可以快速创建与当前主机相同的一个主机环境，拥有相同的数据库和表空间，但是库中并无原数据库的数据。   - 仅导出数据。   | 纯文本格式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 数据文件导入请参见[使用copy from命令导入数据](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_683.html#ZH-CN_TOPIC_0000002649772878__section1258492312331)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| 导出所有数据库 | 各库公共全局对象导出（参见[导出全局对象]）。 - 仅导出表空间信息。  - 仅导出角色信息。  - 导出角色与表空间。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 纯文本格式                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  | 数据文件导入请参见[使用copy from命令导入数据](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_683.html#ZH-CN_TOPIC_0000002649772878__section1258492312331)。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
   
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万以上，为了提高性能且避免出现内存问题，建议您在管理控制台右上角，选择[新建工单](https://console.huaweicloud.com/ticket/?locale=zh-cn#/ticketindex/createIndex)，联系客服人员获取技术支持。
- 为了保证数据一致性和完整性，导出工具会对需要转储的表设置共享锁。如果表在别的事务中设置了共享锁，gs_dump和gs_dumpall会等待锁释放后锁定表。如果无法在指定时间内锁定某个表，转储会失败。用户可以通过指定--lock-wait-timeout选项，自定义等待锁超时时间。
- 由于gs_dumpall读取所有数据库中的表，因此必须以数据库管理员身份进行连接，才能导出完整文件。在使用gsql执行脚本文件导入时，同样需要管理员权限，以便添加用户和组，以及创建数据库。
 
#### 迁移准备
1. 准备弹性云服务器或可通过公网访问GaussDB。
   - 通过弹性云服务器连接GaussDB数据库实例，需要创建一台弹性云服务器。 创建并登录弹性云服务器，详细内容请参见"[购买弹性云服务器](https://support.huaweicloud.com/usermanual-ecs/ecs_03_7002.html)"和"[登录弹性云服务器](https://support.huaweicloud.com/ecs_faq/ecs_faq_0632.html)"。
     
   
   - 通过公网地址连接GaussDB数据库实例，需具备以下条件。
     1. 先对GaussDB数据库实例绑定公网地址，如何绑定公网地址，请参见[绑定弹性公网IP](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_160.html)。
     
     2. 保证本地设备可以访问GaussDB数据库实例绑定的公网地址。
      
    
2. 在准备的弹性云服务器或可访问GaussDB数据库的设备上，安装gsql客户端，并连接到GaussDB数据库实例。详情请参见[使用gsql连接数据库](https://support.huaweicloud.com/usermanual-gaussdb/gaussdb_01_503.html#ZH-CN_TOPIC_0000002649773052__li107091547192)。
 
 #### 导出数据库
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。
   ![](https://support.huaweicloud.com/usermanual-gaussdb/public_sys-resources/note_3.0-zh-cn.png)
   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 | 连接数据库的用户名，需要是数据库管理员用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -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 | 连接数据库的用户名，需要是数据库管理员用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -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命令的更多信息，请参见：
- [gs_dump（分布式版）](https://support.huaweicloud.com/tg-gaussdb-dist-v8/gaussdb-08-0011.html)
- [gs_dump（集中式版）](https://support.huaweicloud.com/tg-gaussdb-cent-v8/gaussdb-38-0012.html)
- [gs_dumpall（分布式版）](https://support.huaweicloud.com/tg-gaussdb-dist-v8/gaussdb-08-0012.html)
- [gs_dumpall（集中式版）](https://support.huaweicloud.com/tg-gaussdb-cent-v8/gaussdb-38-0013.html)
 
