
# 导出全局对象
DWS支持使用gs_dumpall工具导出所有数据库公共的全局对象，包含数据库用户和组，表空间及属性（例如：适用于数据库整体的访问权限）信息。
#### 操作步骤
1. [准备ECS作为gsql客户端主机](https://support.huaweicloud.com/mgtg-dws/dws_01_0037.html#section0)。
2. 请参见[下载客户端](https://support.huaweicloud.com/mgtg-dws/dws_01_0031.html)下载gsql客户端，并使用SSH文件传输工具（例如WinSCP工具），将客户端工具上传到一个待安装gsql的Linux主机上。
   
   执行上传gsql操作的用户需要对客户端主机的目标存放目录有完全控制权限。
   或者，您也可以先SSH远程登录到需要安装gsql的Linux主机，然后在Linux命令窗口，执行以下命令下载gsql客户端：
   ```
   wget https://obs.myhuaweicloud.com/dws/download/dws_client_9.x.x_redhat_x64.zip --no-check-certificate
   ```
   
   
3. 执行以下命令解压客户端工具。 
   ```
   cd <客户端存放路径>
   unzip dws_client_9.x.x_redhat_x64.zip
   ```
   其中：
   - \<客户端存放路径\>：请替换为实际的客户端存放路径。
   
   - dws_client_9.x.x_redhat_x64.zip：为"RedHat x86"对应的客户端工具包名称，请替换为实际下载的包名。
   
   
   
   
4. 执行以下命令配置客户端。 
   ```
   source gsql_env.sh
   ```
   提示以下信息表示客户端已配置成功：
   ```
   All things done.
   ```
   
   
5. 使用gs_dumpall导出表空间对象信息。 
   ```
   gs_dumpall -W password -U dbadmin -f /home/dbadmin/backup/MPPDB_tablespace.sql -p 8000 -h 10.10.10.100 -t
   ```
   表1常用参数说明 
   | 参数 | 参数说明                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       | 举例                                             |
   |:---|:---|:---|
   | -U | 连接数据库的用户名，需要是集群管理员用户。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      | -U dbadmin                                     |
   | -W | 指定用户连接的密码。 - 如果主机的认证策略是trust，则不会对数据库管理员进行密码验证，即无需输入-W选项；  - 如果没有-W选项，并且不是数据库管理员，会提示用户输入密码。   | --W *password*，此处密码需要用户自定义。                    |
   | -f | 将导出文件发送至指定目录文件夹。如果这里省略，则使用标准输出。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            | -f /home/dbadmin/backup/*MPPDB_tablespace*.sql |
   | -p | 指定服务器所监听的TCP端口或本地Unix域套接字后缀，以确保连接。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         | -p 8000                                        |
   | -h | "集群地址"如果通过公网地址连接，请指定为集群"公网访问地址"或"公网访问域名"，如果通过内网地址连接，请指定为集群"内网访问地址"或"内网访问域名"。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               | -h 10.10.10.100                                |
   | -t | 或者--tablespaces-only，只转储表空间，不转储数据库或角色。                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | -                                              |
      
   其他参数说明请参见《数据仓库服务工具指南》中"gs_dumpall"章节。
   
   
 
#### 示例
示例一：执行gs_dumpall，导出所有数据库的公共全局表空间信息和用户信息（dbadmin为管理员用户），导出文件为文本格式。
```
gs_dumpall -W password -U dbadmin -f /home/dbadmin/backup/MPPDB_globals.sql -p 8000 -h 10.10.10.100 -g
gs_dumpall[port='8000'][2018-11-14 19:06:24]: dumpall operation successful
gs_dumpall[port='8000'][2018-11-14 19:06:24]: total time: 1150  ms
```
示例二： 执行gs_dumpall，导出所有数据库的公共全局表空间信息（dbadmin为管理员用户），并对导出文件进行加密，导出文件为文本格式。
```
gs_dumpall -W password -U dbadmin -f /home/dbadmin/backup/MPPDB_tablespace.sql -p 8000 -h 10.10.10.100 -t --with-encryption AES128 --with-key 1212121212121212
gs_dumpall[port='8000'][2018-11-14 19:00:58]: dumpall operation successful
gs_dumpall[port='8000'][2018-11-14 19:00:58]: total time: 186  ms
```
示例三：执行gs_dumpall，导出所有数据库的公共全局用户信息（dbadmin为管理员用户），导出文件为文本格式。
```
gs_dumpall -W password -U dbadmin -f /home/dbadmin/backup/MPPDB_user.sql -p 8000 -h 10.10.10.100 -r
gs_dumpall[port='8000'][2018-11-14 19:03:18]: dumpall operation successful
gs_dumpall[port='8000'][2018-11-14 19:03:18]: total time: 162  ms
```
