达梦数据库dexp逻辑导出和dimp逻辑导入

想更多了解达梦数据库,请关注达梦云适配中心。
https://eco.dameng.com/

一、功能介绍

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。

逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四 种级别独立互斥,不能同时存在。四种级别所提供的功能:

  • 数据库级(FULL):导出或导入整个数据库中的所有对象。
  • 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
  • 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
  • 表级(TABLES):导出或导入一个或多个指定的表或表分区。

二、dexp逻辑导出

dexp 功能

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

可通过 ./dexp help 打印帮助信息。
在这里插入图片描述

导出案例

例1:全库导出

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 FULL=Y FILE=FULL_BAK.DMP LOG=FULL_BAK.LOG DIRECTORY=/dm8/backup

例2:单用户导出

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 OWNER=SYSDBA FILE=OWNER_SYSDBA_BAK.DMP LOG=OWNER_SYSDBA_BAK.LOG DIRECTORY=/dm8/backup

例3:多用户导出

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 OWNER=SYSDBA,TEST FILE=OWNER_SYSDBA_TEST_BAK.DMP LOG=OWNER_SYSDBA_TEST_BAK.LOG DIRECTORY=/dm8/backup

例4:单模式导出

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 SCHEMAS=DMHR FILE=SCHEMA_DMHR_BAK.DMP LOG=SCHEMA_DMHR_BAK.LOG DIRECTORY=/dm8/backup

例5:多模式导出

[dmdba@localhost bin]$  ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 SCHEMAS=DMHR,SYSDBA FILE=SCHEMA_DMHR_SYSDBA_BAK.DMP LOG=SCHEMA_DMHR_SYSDBA_BAK.LOG DIRECTORY=/dm8/backup

例6:单表导出

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 TABLES=DMHR.EMPLOYEE FILE=TABLES_EMPLOYEE_BAK.DMP LOG=TABLES_EMPLOYEE_BAK.LOG DIRECTORY=/dm8/backup

例7:多表导出

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 TABLES=DMHR.EMPLOYEE,DMHR.DEPARTMENT FILE=TABLES_EMPLOYEE_DEPARTMENT_BAK.DMP LOG=TABLES_EMPLOYEE_DEPARTMENT_BAK.LOG DIRECTORY=/dm8/backup

例8:通过QUERY过滤导出数据

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 TABLES=DMHR.EMPLOYEE FILE=QUERY_EMPLOYEE_BAK.DMP LOG=QUERY_EMPLOYEE_BAK.LOG DIRECTORY=/dm8/backup QUERY="WHERE SALARY>10000"

例9:通过ROWS只导出数据对象

[dmdba@localhost bin]$ ./dexp userid=SYSDBA/SYSDBA@LOCALHOST:5236 FULL=Y FILE=NOROWS_BAK.DMP LOG=NOROWS_BAK.LOG DIRECTORY=/dm8/backup ROWS=N

测试dexp 和 dexpdp的区别

dexp 工具名称有两种写法 dexp 和 dexpdp。两者语法完全相同。唯一的区别在于, dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。

测试1:dexp导出目录为服务端
E:\dmdba\bin> dexp userid=SYSDBA/SYSDBA@192.168.26.20:5236 FULL=Y FILE=FULL_BAK.DMP LOG=FULL_BAK.LOG DIRECTORY=/dm8/backup

在这里插入图片描述
导出失败,提示不存在的文件路径/dm8/backup

测试2:dexp导出目录为客户端
E:\dmdba\bin> dexp userid=SYSDBA/SYSDBA@192.168.26.20:5236 FULL=Y FILE=FULL_BAK.DMP LOG=FULL_BAK.LOG DIRECTORY=E:\dmdba\backup

在这里插入图片描述
查看文件
在这里插入图片描述
导出成功

测试3:dexpdp导出目录为客户端
E:\dmdba\bin> dexpdp userid=SYSDBA/SYSDBA@192.168.26.20:5236 FULL=Y FILE=FULL_BAK.DMP LOG=FULL_BAK.LOG DIRECTORY=E:\dmdba\backup

在这里插入图片描述
导出失败,提示不存在的文件路径E:\dmdba\backup

测试4:dexpdp导出目录为服务端
E:\dmdba\bin> dexpdp userid=SYSDBA/SYSDBA@192.168.26.20:5236 FULL=Y FILE=DEXPDP_FULL_BAK.DMP LOG=DEXPDP_FULL_BAK.LOG DIRECTORY=/dm8/backup

查看文件
在这里插入图片描述
导出成功

结论

dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。

三、dimp逻辑导入

dimp功能

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

通过./dimp help打印帮助信息
在这里插入图片描述

导入案例

例1:全库导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 full=y DIRECTORY=/dm8/backup/ FILE=FULL_BAK.DMP  LOG=IMP_FULL.LOG

例2:单用户导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 OWNER=SYSDBA DIRECTORY=/dm8/backup/ FILE=OWNER_SYSDBA_BAK.DMP  LOG=IMP_OWNER.LOG

例3:多用户导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 OWNER=SYSDBA,TEST DIRECTORY=/dm8/backup/ FILE=OWNER_SYSDBA_TEST_BAK.DMP  LOG=IMP_OWNER.LOG

例4:单模式导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 SCHEMAS=DMHR DIRECTORY=/dm8/backup/ FILE=SCHEMA_DMHR_BAK.DMP  LOG=IMP_SCHEMAS.LOG

例5:多模式导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 SCHEMAS=DMHR,SYSDBA DIRECTORY=/dm8/backup/ FILE=SCHEMA_DMHR_SYSDBA_BAK.DMP  LOG=IMP_SCHEMAS.LOG

例6:单表导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 TABLES=DMHR.EMPLOYEE DIRECTORY=/dm8/backup/ FILE=TABLES_EMPLOYEE_BAK.DMP  LOG=IMP_TABLES.LOG

例7:多表导入

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 TABLES=DMHR.EMPLOYEE,DMHR.DEPARTMENT DIRECTORY=/dm8/backup/ FILE=TABLES_EMPLOYEE_DEPARTMENT_BAK.DMP  LOG=IMP_TABLES.LOG

例8:不导入数据行

[dmdba@localhost bin]$ ./dimp userid=SYSDBA/SYSDBA@LOCALHOST:5236 full=y DIRECTORY=/dm8/backup/ FILE=FULL_BAK.DMP  LOG=IMP_FULL.LOG ROWS=N

测试dimp和dimpdp的区别

dimp 工具名称有两种写法 dimp 和 dimpdp。两者语法完全相同。唯一的区别在于, dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。

测试1:dimp导入文件目录为服务端
E:\dmdba\bin> ./dimp userid=SYSDBA/SYSDBA@192.168.26.20:5236 full=y DIRECTORY=/dm8/backup/ FILE=FULL_BAK.DMP  LOG=IMP_FULL.LOG

在这里插入图片描述
导入失败,提示不存在的文件路径/dm8/backup/

测试2:dimp导入文件目录为客户端
E:\dmdba\bin> dimp userid=SYSDBA/SYSDBA@192.168.26.20:5236 full=y DIRECTORY=E:\dmdba\backup FILE=FULL_BAK.DMP  LOG=IMP_FULL.LOG

在这里插入图片描述
导入成功

测试3:dimpdp导入文件目录为客户端
E:\dmdba\bin> dimpdp userid=SYSDBA/SYSDBA@192.168.26.20:5236 full=y DIRECTORY=E:\dmdba\backup FILE=FULL_BAK.DMP  LOG=IMP_FULL.LOG

在这里插入图片描述
导入失败

测试4:dimpdp导入文件目录为服务端
E:\dmdba\bin> dimpdp userid=SYSDBA/SYSDBA@192.168.26.20:5236 full=y DIRECTORY=/dm8/backup FILE=FULL_BAK.DMP  LOG=IMP_FULL.LOG

在这里插入图片描述

导入成功

结论

dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值