使用Dexp和Dixp
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实
现对 DM 数据库的逻辑备份和逻辑还原。
dexp 工具名称有两种写法 dexp 和 dexpdp。两者语法完全相同。唯一的区别在于,
dexp 导出的文件必须存放在客户端,dexpdp 导出的文件必须存放在服务器端。
命令:
例 将用户名和密码均为 SYSDBA,IP 地址为 192.168.0.248,端口号为 8888 的数
据库采用FULL方式完全导出。/user/data为数字证书路径。导出文件名为db_str.dmp,
导出的日志文件名为 db_str.log,导出文件的路径为/mnt/dexp/data。
./dexp USERID=SYSDBA/SYSDBA@192.168.0.248:8888#/user/data FILE=db_str.dmp
DIRECTORY=/mnt/dexp/data LOG=db_str.log FULL=Y
USERID:用于指定数据库的连接信息。必选参数。
File:明确指定导出文件名称,可选。如果缺省该参数, 则导出文件名为 dexp.dmp
DIRECTORY 导出文件所在目录
LOG:明确指定日志文件名称 可选,如果缺省该参数, 则导出文件名为 dexp.log,FILE 指定的文件也可以包含路径,设置 FILE=/mnt/db_str.dmp。文件也可以在生成过程中自动扩展成多个。首先,文件名需要包含通配符%U,用于作为 自动扩充文件的文件名模板。%U 表示为 2 个字符宽度的数字,由系统自动生成,起始为 01。 其次,使用 FILESIZE 参数来指定文件的大小。
FILE 和 LOG 中指定的路径,优先级高于 DIRECTORY 中指定的路径。
当 FILE 和 LOG 不指定路径时,才使用 DIRECTORY 指定的路径。
如果都没有指定路径,则使用系统当前路径
DEXP导出方式:
针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导出方式可供选
FULL 方式导出数据库的所有对象。
语法如下:
FULL=Y
例 设置 FULL=Y,导出数据库的所有对象,导出数据库文件和日志文件放在路径
/mnt/data/dexp 下。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dexp
OWNER 方式导出一个或多个用户拥有的所有对象。
语法如下:
OWNER=<用户名>{,<用户名>}
例 设置 OWNER=USER01,导出用户 USER01 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01
DIRECTORY=/mnt/data/dexp
SCHEMAS 方式的导出一个或多个模式下的所有对象。
语法如下:
SCHEMAS=<模式名>{,<模式名>}
例 设置 SCHEMAS=USER01,导出模式 USER01 模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log SCHEMAS=USER01
DIRECTORY=/mnt/data/dexp
一般情况下,OWNER 与 SCHEMAS 导入导出是相同的。
但是用户可以包含多个模式,在这种情况下 SCHEMAS 的导入导出是
OWNER 导入导出的一个子集。
TABLES 方式导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引
等信息。
语法如下:
TABLES=<表名>{,<表名>}
例 设置 TABLES=table1,table2,导出 table1,table2 两张表的所有数据和信息。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1,table2
DIRECTORY=/mnt/data/dexp
和 TABLES 导出有关的参数还有 QUERY、EXCLUDE 和 INCLUDE,都是用来设置过滤条
件的。
CONSTRAINTS、TABLESPACE、GRANTS、INDEXES、
TRIGGERS、ROWS
这些参数用来指定某类对象是否被导出。类别分别为约束、表空间、权限、索引、触发
器和数据
语法如下:
CONSTRAINTS = Y/N
TABLESPACE = N/Y
GRANTS = Y/N
INDEXES = Y/N
TRIGGERS = Y/N
ROWS = Y/N
CONSTRAINTS:设置是否导出约束,可选参数。取值范围:Y/N。Y:导出约束,缺省
值;N:不导出约束。
TABLESPACE:设置导出的对象定义中是否包含表空间,可选参数。取值范围:N/Y。N:
不包含表空间,缺省值;Y:包含表空间。
GRANTS:设置是否导出权限,可选参数。取值范围:Y/N。Y:导出权限,缺省值;N:
不导出权限。
INDEXES:设置是否导出索引,可选参数。取值范围:Y/N。Y:导出索引,缺省值;N:
不导出索引。
TRIGGERS:设置是否导出触发器,可选参数。取值范围:Y/N。Y:导出触发器,缺省
值;N:不导出触发器。
ROWS:设置是否导出数据,可选参数。取值范围:Y/N。Y:导出数据,缺省值;N:不
导出数据。
例 设置 ROWS=N,不导出表中的数据。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp NOLOGFILE=Y FULL=Y
DIRECTORY=/mnt/data/dexp ROWS=N
此处,对象(CONSTRAINTS、GRANTS、INDEXES、TRIGGERS、ROWS)
分别单独设置,和 EXCLUDE/INCLUDE 中批量设置功能一样。设置一个即
可。
如果单独设置和批量设置同时出现时,那么以最后出现的那个为准。
DIXP导出方式:
dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻
辑还原
dimp 工具名称有两种写法 dimp 和 dimpdp。两者语法完全相同。唯一的区别在于,
dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。
dimp 工具需要从命令行启动。在 cmd 命令行工具中找到 dimp 所在安装目录
/dmdbms/bin,输入 dimp 和参数后回车。参数在下一节详细介绍。
语法如下:
dimp PARAMETER=value { PARAMETER=value }
或
dimpdp PARAMETER=value { PARAMETER=value }
PARAMETER:dimp 参数。多个参数之间排列顺序无影响,参数之间使用空格间隔。
value:参数取值。
例 将逻辑备份采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为
192.168.0.248,端口号为 8888 的数据库。导入文件名为 db_str.dmp,导入的日志文
件名为 db_str.log,路径为/mnt/data/dexp。
./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp
DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y
DIRECTORY: 导入文件所在目录 可选
四种级别的导入方式
针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导入方式可供选择。一
次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。
FULL 方式导入整个数据库。
语法如下:
FULL=Y
例 设置 FULL=Y,导入整个数据库,导入的数据库文件在/mnt/data/dexp,即将生
成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp
OWNER 方式导入一个或多个用户拥有的所有对象。
语法如下:
OWNER=<用户名>{,<用户名>}
例 设置 OWNER=USER01,导入用户 USER01 所拥有的对象全部导出。导入的数据库文
件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
OWNER=USER01 DIRECTORY=/mnt/data/dimp
SCHEMAS 方式的导入一个或多个模式下的所有对象。
语法如下:
SCHEMAS=<模式名>{,<模式名>}
例 设置 SCHEMAS=USER01,导入模式 USER01 模式下的所有对象。导入的数据库文件
在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
SCHEMAS=USER01 DIRECTORY=/mnt/data/dimp
一般情况下,OWNER 与 SCHEMAS 导入导出是相同的。
但是用户可以包含多个模式,在这种情况下 SCHEMAS 的导入导出是
OWNER 导入导出的一个子集。
TABLES 方式导入一个或多个指定的表或表分区。导入所有数据行、约束、索引等信息。
语法如下:
TABLES=<表名>{,<表名>}
例 设置 TABLES=table1,table2,导入 table1,table2 两张表的所有数据和信息。
导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
TABLES=table1,table2 DIRECTORY=/mnt/data/dimp
和 TABLES 导入有关的参数还有 EXCLUDE,用来指定导入时过滤掉某类对象
PARALLEL
PARALLEL 用于指定导入的过程中所使用的线程数目。可选参数,缺省为单线程。如果
CPU 核数为 N 的话,那一般来说 PARALLEL 为 N 或者 N+1 最合适。
语法如下:
PARALLEL=<num>
<num>:线程数。整数类型,取值范围:1~100,缺省为1。
例 设置 PARALLEL=2 时,则线程数为 2。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp PARALLEL=2
GRANTS、CONSTRAINTS、INDEXES、TRIGGERS、ROWS
这些参数用来指定某类对象是否被导入。类别分别为约束、权限、索引、触发器和数据。
语法如下:
GRANTS=Y/N
CONSTRAINTS=Y/N
INDEXES=Y/N
TRIGGERS=Y/N
ROWS=Y/N
GRANTS:设置是否导入权限,可选参数。取值范围:Y/N。Y:导入权限,缺省值;N:
不导入权限。
CONSTRAINTS:设置是否导入约束,可选参数。取值范围:Y/N。Y:导入约束,缺省
值;N:不导入约束。
INDEXES:设置是否导入索引,可选参数。取值范围:Y/N。Y:导入索引,缺省值;N:
不导入索引。
TRIGGERS:设置是否导入触发器,可选参数。取值范围:Y/N。Y:导入触发器,缺省
值;N:不导入触发器。
ROWS:设置是否导入数据,可选参数。取值范围:Y/N。Y:导入数据,缺省值;N:不
导入数据。
例 设置 ROWS=N 不导入表中的数据。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp NOLOGFILE=Y FULL=Y
DIRECTORY=/mnt/data/dimp ROWS=N
推荐阅读
-
使用 PlantUML 绘制活动图和泳道图
-
使用 Docker 和 Homeassistant,让家庭用电更轻松,帮您省电省钱
-
JEECG 技术文档]JEECG 接口权限开发和配置使用指南
-
使用 Node.js 获取用户的操作系统和版本号
-
23、必须看软件开发工程师执照的目的和使用范围、知识的含金量
-
使用 Neo4j 和 Langchain 创建知识图谱
-
如何在 Windows 上使用 WSL 和 VSCode 快速创建 C 语言开发环境
-
将 python 文件转换为 exe 文件的方法和使用细节
-
实践中的软件测试技术:设计、工具和管理 - 第 2 章第 2.3 节 使用状态转换图设计测试用例
-
SpringBoot 使用 Redis 和注解实现接口幂等性