达梦dexp/dimp逻辑导入导出

1. dexp逻辑导出(摘自达梦官方文档)

dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。备份的内容非常灵活,可以选择是否备份索引、数据行和权限,是否忽略各种约束(外键约束、非空约束、唯一约束等),在备份前还可以选择生成日志文件,记录备份的过程以供查看。四 种级别独立互斥,不能同时存在

1.1 常用导出模板

1.1.1 数据库级(全备)

./dexp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=db_bak.dmp LOG=db_bak.log FULL=Y DIRECTORY=/backup/FULL_BAK

批注:dexp工具位于./bin目录下(数据库安装目录),USERID:连接信息 FILE:备份文件名,LOG:备份日志,FULL=Y:表示全备。DIRECTORY:备份文件及日志文件路径。关键字FULL

1.1.2 用户级

./dexp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=db_users.dmp LOG=db_users.log 
OWNER=TEST1,TEST2,...,TESTN DIRECTORY=/backup/FULL_BAK

 批注:同数据库级大同小异,差异点在于备份级别不同,针对的对象不同。多个OWNER以逗号间隔。关键字OWNER

1.1.3 模式级

./dexp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=db_users.dmp LOG=db_users.log 
SCHEMAS=TEST1,TEST2,...,TESTN DIRECTORY=/backup/FULL_BAK

批注:关键字SCHEMAS。

1.1.4 表级

./dexp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=db_users.dmp LOG=db_users.log 
TABLES=模式.表名,...,模式.表名 DIRECTORY=/backup/FULL_BAK

批注:关键字TABLES

2. dimp逻辑导入(摘自达梦官方文档)

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。同样分四个级别

2.1 常用导入模板

2.1.1 数据库级

./dimp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=/backup/FULL_BAK/db_bak.dmp LOG=db_recover.log FULL=Y DIRECTORY=/backup/IMP_BAKDIR

批注:同导出的区别在于,FILE的值为全路径备份文件名。DIRECTORY设置的路径为导入过程中日志文件路径。

2.1.2 模式级

./dimp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=/backup/FULL_BAK/db_bak.dmp LOG=db_recover.log SCHEMAS=TEST1,...,TESTN DIRECTORY=/backup/IMP_BAKDIR

 批注:若将MODE01模式下的所有对象导出后导入到MODE02下,则应使用以下代码

./dimp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=/backup/FULL_BAK/db_bak.dmp LOG=db_recover.log REMAP_SCHEMA=MODE01:MODE02 DIRECTORY=/backup/IMP_BAKDIR

2.1.3 用户级

./dimp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=/backup/FULL_BAK/db_bak.dmp LOG=db_recover.log OWNER=TEST1,...,TESTN DIRECTORY=/backup/IMP_BAKDIR

批注:此为常规情况下,导出用户及导入用户相匹配。

若将USER01用户下的所有对象导出后导入到USER02下,则应使用以下代码

./dimp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=/backup/FULL_BAK/db_bak.dmp LOG=db_recover.log FROMUSER=USER01 TOUSER=USER02  DIRECTORY=/backup/IMP_BAKDIR

2.1.4 表级

./dimp USERID=SYSDBA/SYSDBA@localhost:5236 FILE=/backup/FULL_BAK/db_bak.dmp LOG=db_recover.log TABLES=模式.表名,...,模式.表名 DIRECTORY=/backup/IMP_BAKDIR

3. 注意事项

3.1 大小写及特殊字符

对于用户命令行输入的用户名,模式名及表名都会自动转换成大写。对于特殊字符,应该用\进行转义

举例:如tabname,则应传入到dexp/dimp中的值应为:"tabname"。

操作系统层级还有一层 “”,则命令行应写为:"\"tabname\""

举例:如dexp/dimp表名为全小写对象tabname",命令行应写为""\tabname\"\"\""

较为复杂,我的理解是:

1. 首先左右两个大的双引号为操作系统要求。

2. 其次在里面使用"需要用\进行转义。

3. 最后dexp/dimp要求对表名/模式名/用户名中的双引号转义需要用双引号转义。也就是双引号转义双引号。

3.2 导出表对象已存在

例如,库DATABASE1中导出的表对象MODE1.TAB1在在目的库中已存在,当使用dmp导入时则会报:导出对象已存在。

解决方案:加上关键字:TABLE_EXISTS_ACTION。

该关键字有四个值分别为:SKIP、APPEND、TRUNCATE、REPLACE

SKIP:跳过此表

APPEND:直接向现有表导数据

TRUNCATE:先清空此表,再导入数据

REPLACE:先删掉该表,再创建、导入数据。

更多达梦关技术文档可访问​​​​​​

达梦数据库 - 新一代大型通用关系型数据库 | 达梦云适配中心

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值