|  
 本文参考:https://eco.dameng.com/docs/zh-cn/pm/dexp-dimp-function-introduction.html
 概要若某种表被误删了,如何还原这张表?能够实现数据库对象级别的备份和还原吗?(物理备份恢复是文件级别的恢复) 逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原
 逻辑备份还原的工具? 逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原
 逻辑导出导入对象的四大级别 数据库级(FULL)导出 / 导入整个数据库中的所有对象
用户级(OWNER)导出 / 导入一个(或多个用户)所拥有的全部对象
模式级(SCHEMAS)导出 / 导入一个(或多个模式)下的所有对象
表级(TABLES)导出 / 导入一个(或多个)指定表 / 表分区
 本文命令运行环境介绍: 源库与目标库都安装在同一台计算机上源库: 实例名为dmserver,端口为5236目标库: 实例名为dmserver2,端口为5237
 数据库级导出 / 导入整个数据库中的所有对象 FULL=Y
 全库导出dexp SYSDBA/SYSDBA\@localhost:5236 file=full01.dmp log=exp_full01.log directory=/dmpdir full=y
 全库导入dimp SYSDBA/SYSDBA\@localhost:5237 file=full01.dmp log=imp_full01.log directory=/dmpdir full=y
 用户级导出 / 导入一个(或多个)用户中的所有schemas OWNER=<用户名>{,<用户名>}
 注意:(仅在DM8中测试过)此处仅导出schemas中的所有对象,并不导出用户
 也就是说,导入时,目标端需要创建好用户,dimp会将导出文件中的所有schemas都导入到此用户中
 导出单个用户导出test1用户下的所有schemas dexp SYSDBA/SYSDBA\@localhost:5236 file=owner01.dmp log=exp_owner01.log directory=/dmpdir owner=test1
 导入单个用户将源端test1用户的所有schemas导入目标端的test1用户中(前提是目标端有test1用户,因为导出文件只导出了schems,并没有导出源端的用户和权限) SQL> drop user test1 cascade;
$ dimp SYSDBA/SYSDBA\@localhost:5237 file=owner01.dmp log=imp_owner01.log directory=/dmpdir owner=test1
 模式级导出 / 导入一个(或多个模式)下的所有对象 SCHEMAS=<模式名>{,<模式名>}
 导出单个模式导出模式test1_sch2下的所有对象,由于模式名为小写,故写法比较特殊 dexp SYSDBA/SYSDBA\@localhost:5236 file=schema01.dmp log=exp_schema01.log directory=/dmpdir schemas="\"test1_sch2\""
 导入单个模式将源库的模式test1_sch2,导入到目标库中,模式名不变(仍为test1_sch2) SQL> drop schema "test1_sch2" cascade;
$ dimp SYSDBA/SYSDBA\@localhost:5237 file=schema01.dmp log=imp_schema01.log directory=/dmpdir schemas="\"test1_sch2\""
 映射可以修改源端和目标端的schema映射关系,实现将源端的sch1.tab1导入到目标端的sch2.tab1 REMAP_SCHEMA=<SOURCE_SCHEMA>:<TARGET_SCHEMA>	
 将源库的模式test1_sch2,导入到目标库中,模式名更改(映射)为test2_sch2 dimp SYSDBA/SYSDBA\@localhost:5237 file=schema01.dmp log=imp_schema01.log directory=/dmpdir schemas="\"test1_sch2\"" remap_schema="\"test1_sch2\"":"\"test2_sch2\""
 表级导出 / 导入一个(或多个)指定表 / 表分区,导入所有数据行、约束、索引等信息 TABLES=<表名>{,<表名>}
 导出单张表导出表test1_sch2.TABLE_2,小写字母需要转义 dexp SYSDBA/SYSDBA\@localhost:5236 file=table01.dmp log=exp_table01.log directory=/dmpdir tables="\"test1_sch2\"".TABLE_2
 导入单张表SQL> drop table "test1_sch2"."TABLE_2" restrict;
$ dimp SYSDBA/SYSDBA\@localhost:5237 file=table01.dmp log=imp_table01.log directory=/dmpdir tables="\"test1_sch2\"".TABLE_2
 其他还有其他可选参数:控制导出导入的速度、表行数、模式对象、导出文件是否加密、压缩等  
 更多详情可参阅:https://eco.dameng.com/docs/zh-cn/pm/dexp-logical-export.html
 |