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

表级导入导出

对于表级的导入与导出,能够使用的工具很多,可基于以下场景切入选择合适的工具。

  1. 需要导出单个表的定义和表内数据到同一个文件中时,推荐使用gs_dump工具的纯文本归档,并配合-t参数使用,可以连续使用-t备份多张表。gs_dump工具请参考《工具参考》中“数据导入导出工具 > gs_dump导出数据库信息”。

    当导出的表依赖其他未导出的对象时,可能会导致导入该表时报缺少依赖对象的错误,因此恢复时请确保依赖的其他对象已经创建好后再做导入。

    备份时推荐以初始用户或具备sysadmin权限的用户执行如下命令,源库为my_database,目标表为my_schema下的my_table。
    nohup gs_dump my_database -U root -W ******** -p 8000 -F p -f /data/backup/my_table_backup.sql -t my_schema.my_table > /data/backup/my_table_backup.log &
    恢复时需要先创建好与源库属性相同的目标库,且库内已有目标模式,没有目标表,再以初始用户/具备sysadmin权限的用户执行如下命令进行恢复
    nohup gsql -d my_database2 -p 8000 -U root -W ******** -f /data/backup/my_table_backup.sql -a > /data/backup/my_table_restore.log &
  2. 仅需要导出单个表的定义,不需要表内数据。

    当导出的表依赖其他未导出的对象时,可能会导致导入该表时报缺少依赖对象的错误,因此恢复时请确保依赖其他的对象已经创建好后再做导入。

    推荐使用gs_dump工具的纯文本归档,配合-s参数使用,命令如下。
    nohup gs_dump my_database -U root -W ******** -p 8000 -F p -f /data/backup/my_table_backup.sql -t my_schema.my_table -s > /data/backup/my_table_backup.log &
    恢复时需要先创建好与源库属性相同的目标库,且库内已有目标模式,没有目标表,再以初始用户或具备sysadmin权限的用户执行如下命令进行恢复。
    nohup gsql -d my_database2 -p 8000 -U root -W ******** -f /data/backup/my_table_backup.sql -a > /data/backup/my_table_restore.log &