
# 模式级导入导出
gs_dump工具可以对单个Schema进行备份，推荐使用gs_dump工具并配合-n参数进行备份，可以连续使用多个-n备份多个Schema。
gs_dump工具请参考《工具参考》中"数据导入导出工具 \> gs_dump导出数据库信息"。
![](https://support.huaweicloud.com/distributed-devg-v8-gaussdb/public_sys-resources/notice_3.0-zh-cn.png)
当导出的Schema依赖其他未导出Schema的对象时，可能会导致导入该Schema时报缺少依赖对象的错误，因此恢复时请确保依赖其他的Schema对象已经创建好后再做导入。
备份时推荐以初始用户或具备sysadmin权限的用户执行如下命令，源库为my_database，导出时会包含数据和对象定义。
```
-- 纯文本归档格式
nohup gs_dump my_database -U root -W ******** -p 8000 -F p -f /data/backup/my_schema_backup.sql -n my_schema > /data/backup/my_schema_backup.log &
-- 自定义归档格式
nohup gs_dump my_database -U root -W ******** -p 8000 -F c -f /data/backup/my_schema_backup.dmp -n my_schema > /data/backup/my_schema_backup.log &
-- 目录归档格式
nohup gs_dump my_database -U root -W ******** -p 8000 -F d -f /data/backup/my_schema_backup -n my_schema > /data/backup/my_schema_backup.log &
-- tar归档格式
nohup gs_dump my_database -U root -W ******** -p 8000 -F t -f /data/backup/my_schema_backup.tar -n my_schema > /data/backup/my_schema_backup.log &
```
恢复时需要先创建好与源库属性相同的目标库，且库内没有目标模式。
```
-- 通过以下gsql元命令，查看数据库属性信息
\l+
-- 根据查询到的属性信息，创建目标数据库
create database my_database2 encoding='xxxxx' LC_COLLATE='xxxxx' LC_CTYPE ='xxxxx' TEMPLATE=xxx DBCOMPATIBILITY 'xxx';
```
再以初始用户或具备sysadmin权限的用户执行如下命令进行恢复。
```
-- 纯文本归档格式
nohup gsql -d my_database2 -p 8000 -U root -W ******** -f /data/backup/my_schema_backup.sql -a > /data/backup/my_schema_restore.log &
-- 自定义归档格式
nohup gs_restore /data/backup/my_database_backup.dmp -d my_database2 -p 8000 -U root -W ******** -F c -v -n my_schema > /data/backup/my_schema_restore.log &
-- 目录归档格式
nohup gs_restore /data/backup/my_database_backup -d my_database2 -p 8000 -U root -W ******** -F d -v -n my_schema > /data/backup/my_schema_restore.log &
-- tar归档格式
nohup gs_restore /data/backup/my_database_backup.tar -d my_database2 -p 8000 -U root -W ******** -F t -v -n my_schema > /data/backup/my_schema_restore.log &
```
