注册
达梦数据库不同场景逻辑导出和导入总结
培训园地/ 文章详情 /

达梦数据库不同场景逻辑导出和导入总结

agent_r 2025/04/15 109 0 0

达梦数据库的逻辑导出(dexp)和导入(dimp)工具支持多种场景的数据迁移与备份,以下是不同场景的具体操作及注意事项:


一、按对象级别导出导入

1. 数据库级(FULL)

适用场景:全库备份或迁移。
导出命令

./dexp USERID=SYSDBA/SYSDBA FILE=full.dmp DIRECTORY=/backup FULL=Y LOG=full.log

导入命令

./dimp USERID=SYSDBA/SYSDBA FILE=full.dmp DIRECTORY=/backup FULL=Y LOG=imp_full.log

说明:导出所有用户、模式、表及数据,需确保目标数据库参数(如字符集、页大小等)与源库一致。


2. 用户级(OWNER)

适用场景:迁移某用户下所有对象。
导出命令

./dexp USERID=SYSDBA/SYSDBA FILE=owner.dmp DIRECTORY=/backup OWNER=用户 LOG=owner.log

导入命令

./dimp USERID=SYSDBA/SYSDBA FILE=owner.dmp DIRECTORY=/backup OWNER=用户 LOG=imp_owner.log

说明:目标库需提前创建同名用户并授权。


3. 模式级(SCHEMAS)

适用场景:迁移特定模式下的数据。
导出命令

./dexp USERID=SYSDBA/SYSDBA FILE=schema.dmp DIRECTORY=/backup SCHEMAS=模式名 LOG=schema.log

导入命令

./dimp USERID=SYSDBA/SYSDBA FILE=schema.dmp DIRECTORY=/backup SCHEMAS=模式名 LOG=imp_schema.log

说明:支持跨用户模式映射(REMAP_SCHEMA=原模式:目标模式)。


4. 表级(TABLES)

适用场景:迁移单个或多个表。
导出命令

./dexp USERID=SYSDBA/SYSDBA FILE=tables.dmp DIRECTORY=/backup TABLES=表1,表2 LOG=tables.log

导入命令

./dimp USERID=SYSDBA/SYSDBA FILE=tables.dmp DIRECTORY=/backup TABLES=表1,表2 LOG=imp_tables.log

说明:支持模糊匹配(FUZZY_MATCH=Y)和子集筛选(QUERY="WHERE条件")。


二、跨用户/模式迁移

使用REMAP_SCHEMA参数可将数据从源用户/模式映射到目标用户/模式:

./dimp USERID=SYSDBA/SYSDBA FILE=user.dmp REMAP_SCHEMA=原用户:目标用户 LOG=remap.log

注意:目标用户需提前创建且拥有足够权限。


三、参数一致性处理

若源库与目标库的初始化参数(如字符集、页大小)不一致,导入可能报错。解决方法:

  1. 重新初始化目标库:通过dminit命令创建参数一致的实例。
  2. 使用TABLE_EXISTS_ACTION:指定冲突处理方式(如REPLACE覆盖或SKIP跳过)。

四、字符集兼容性

问题:若源库字符集(如GB18030)与目标库(如UTF8)不兼容,可能导致数据截断。
解决
• 调整源数据长度以适配目标库。
• 临时修改系统字符集环境变量(如Linux下设置LANG=zh_CN.gbk)后再导入。

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服