更新时间:2025-05-29 GMT+08:00

模式级导入导出

gs_dump工具可以对单个Schema进行备份,推荐使用gs_dump工具并配合-n参数进行备份,可以连续使用多个-n备份多个Schema。

gs_dump工具请参考《工具参考》中“数据导入导出工具 > gs_dump导出数据库信息”。

当导出的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 &