当前位置: 首页 > 工具软件 > DIMP > 使用案例 >

dexp和dimp使用说明

邹海超
2023-12-01

1 功能简介

DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用 DMRMAN 工具进行的备份还原。
逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和 dimp 进行的备份还原。逻辑备份还原正是本节所要介绍的内容。
逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实
现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
①、数据库级(FULL):导出或导入整个数据库中的所有对象。
②、用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
③、模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
④、表级(TABLES):导出或导入一个或多个指定的表或表分区。

2 dexp 逻辑导出

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

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

2.1 使用 dexp 工具

dexp 工具需要从命令行启动。在 cmd 命令行工具中找到 dexp 所在安装目录
/dmdbms/bin,输入 dexp 和参数后回车。

语法如下:
./dexp sysdba/Gz_dmdba2021@192.168.xxx.xxx:5237 directory=/dm/dmback file=full_exp.dmp log=full_exp.log full=y

2.2 dexp 部分参数详解

2.2.1 DIRECTORY

DIRECTORY 用于指定导出文件及日志文件生成的路径。可选参数,缺省为导出到 dexp
所在路径。
如果 FILE 和 LOG 参数指定的文件包含生成路径,则 FILE 和 LOG 参数中指定的路径将替代 DIRECTORY 所指定的路径;优先级高于 DIRECTORY 中指定的路径;如果 FILE 和 LOG 参数指定的文件未包含路径信息,则文件将被生成到 DIRECTORY 指定的目录下;如果都没有指定路径,程序将根据当前的运行环境来设置相应的导出路径,一般为当前路径。

语法如下:
例如,没有指定路径,使用当前路径。
./dexp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237
FILE=db_str.dmp LOG=db_str.log FULL=Y

例如,指定路径/mnt/data/dexp。
./dexp USERID=SYSDBA/SYSDBA @192.168.xxx.xxx:5237
DIRECTORY=/mnt/data/dexp FILE=db_str.dmp LOG=db_str.log FULL=Y

2.2.2 FILE

FILE 用于明确指定导出的文件(可以包含路径),可以包含多个文件,用逗号分隔。可选参数,如果不选用 FILE 参数(来明确指定导出文件名称),那么默认导出文件名称为
dexp.dmp。

语法如下:
例如,设置 FILE=db_str.dmp,导出文件名为 db_str.dmp。
./dexp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237
FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp

例如,FILE 指定的文件也可以包含路径,设置 FILE=/mnt/db_str.dmp。
./dexp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237
FILE=/mnt/db_str.dmp LOG=db_str.log FULL=Y

如果 FILE 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
如果 FILE 没有指定路径时,使用 DIRECTORY 中指定的路径;
如果 FILE 和 DIRECTORY 都没有指定路径,则使用系统当前路径。

文件也可以在生成过程中自动扩展成多个。首先,文件名需要包含通配符%U,用于作为自动扩充文件的文件名模板。%U 表示为 2 个字符宽度的数字,由系统自动生成,起始为 01。

其次,使用 FILESIZE 参数来指定文件的大小。
例如,设置 FILE=db_str%U.dmp,导出文件名为 db_str%U.dmp。同时使用%U 对文
件进行扩展,使用 FIZESIZE=128m 指定文件大小。
./dexp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 FILE=db_str%U.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dexpFILESIZE=128m

2.2.3 LOG

LOG 用于明确指定导出的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。可选参数。如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件名称为 dexp.log。
语法如下:
例如,指定日志文件名为 db_str.log。
./dexp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dexp FILE=db_str.dmp LOG=db_str.log FULL=Y
文件也可以在生成过程中自动扩展成多个。首先,文件名需要包含通配符%U,用于作为自动扩充文件的文件名模板。%U 表示为 2 个字符宽度的数字,由系统自动生成,起始为 01。其次,使用 FILESIZE 参数来指定文件的大小。

例如,指定日志文件名为 db_str%U.log。同时使用%U 对文件进行扩展,使用
FIZESIZE=128m 指定文件大小。
./dexp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dexpFILESIZE=128m FILE=db_str.dmp LOG=db_str%U.log FULL=Y

如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径;
如果 LOG 和 DIRECTORY 都没有指定路径,则使用系统当前路径。

LOG文件记载了导出对象的统计信息。供用户查看导出内容。

2.3 使用 dexpdp 和 dimpdp 工具

在使用 dexpdp 和 dimpdp 时,DIRECTORY 参数支持使用在服务器端通过 CREATE
DIRECTORY 定义的目录名。
例如,先在服务器端创建名为GYFDIR的目录,再使用该目录进行导出。
–先连接上远程的数据库服务器 192.168.1.60:5236
disql.exe SYSDBA/SYSDBA@192.168.1.60:5236
–在远程服务器上创建目录
CREATE OR REPLACE DIRECTORY “GYFDIR” AS ‘E:\test\path’;
–使用 dexpdp 导出文件
dexpdp.exe USERID=SYSDBA/SYSDBA@192.168.1.60:5236
FILE=dexpDP.dmp LOG=dexpDP.log FULL=Y DIRECTORY=GYFDIR

2.4 四种级别的导出方式

2.4.1 FULL

FULL 方式导出数据库的所有对象。
./dexp USERID=sysdba/Gz_dmdba2021@192.168.xxx.xxx:5237 directory=/dm/dmback file=full_exp.dmp log=full_exp.log full=y

2.4.2 OWNER

OWNER 方式导出一个或多个用户拥有的所有对象。
./dexp USERID=sysdba/Gz_dmdba2021@192.168.xxx.xxx:5237 directory=/dm/dmback/bak file=test.dmp log=test.log owner=TEST

2.4.3 SCHEMAS

./dexp USERID=sysdba/Gz_dmdba2021@192.168.xxx.xxx:5237 directory=/dm/dmback/bak file=schema.dmp log=schema.log schemas=TEST

2.4.4 TABLES

./dexp sysdba/Gz_dmdba2021@192.168.xxx.xxx:5237 directory=/dm/dmback/bak file=table.dmp log=table.log tables=TEST.TEST

3 dimp 逻辑导入

dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。dimp 导入是 dexp 导出的相反过程。还原的方式可以灵活选择,如是否忽略对象存在而导致的创建错误、是否导入约束、是否导入索引、导入时是否需要编译、是否生成日志等。
dimp 工具名称有两种写法 dimp 和 dimpdp。两者语法完全相同。唯一的区别在于,dimp 导入的文件必须存放在客户端,dimpdp 导入的文件必须存放在服务器端。

3.1 使用 dimp 工具

dimp 工具需要从命令行启动。在 cmd 命令行工具中找到 dimp 所在安装目录
/dmdbms/bin,输入 dimp 和参数后回车。

语法如下:
./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 DIRECTORY=/mnt/data/dexp FILE=db_str.dmp LOG=db_str.log FULL=Y

3.2 dimp 部分参数详解

3.2.1 DIRECTORY

DIRECTORY 用于指定导入文件及日志文件生成的路径。可选参数,缺省为 dimp 所在路径。
如果 FILE 和 LOG 参数指定的文件包含生成路径,则 FILE 和 LOG 参数中指定的路径将替代 DIRECTORY 所指定的路径;如果 FILE 和 LOG 参数指定的文件未包含路径信息,则导入文件路径和日志生成的文件路径都是 DIRECTORY 指定的路径;如果都没有指定路径,程序将根据当前的运行环境来设置相应的导出路径,一般为当前路径。

例如,没有指定路径,使用当前路径。
./dimp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y

例如,指定 FILE 使用/mnt/data/dexp 路径,LOG 使用/mnt/data/dimp 路径。
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dimp FILE=/mnt/data/dexp db_str.dmp LOG=db_str.log FULL=Y

3.2.2 FILE

FILE 用于指定明确导入 dexp 导出的文件(可以包含路径)。为必选参数。
例如,之前导出的文件路径为:FILE=/mnt/data/dexp/db_str.dmp,那么导入文件
可以写成如下所示:
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
DIRECTORY=/mnt/data/dimp

若 FILE 没有指定文件路径,则可在 DIRECTORY 中指定。

如果 FILE 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
如果 FILE 没有指定路径时,使用 DIRECTORY 中指定的路径;
如果 FILE 和 DIRECTORY 都没有指定路径,则使用系统当前路径。

3.2.3 LOG

LOG 用于明确指定导入的日志文件名称(可以包含路径),可以包含多个文件,用逗号分
隔。可选参数。如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件名称为 dimp.log。

例如,指定日志文件名为 db_str.log。
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dimp
FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y

如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径;
如果 LOG 和 DIRECTORY 都没有指定路径,则使用 FILE 指定的路径。

LOG文件记载了导出对象的统计信息。供用户查看导出内容。详细的日志内容和dexp
LOG中一样。
和 LOG 有关的参数还有 NOLOGFILE、NOLOG 和 LOG_WRITE。NOLOGFILE=Y 用于设
置不使用日志文件。NOLOG=Y 用于设置不在屏幕上显示日志信息。LOG_WRITE=Y 用于设置日志的实时打印(到日志文件)功能。

3.2.4 REMAP_SCHEMA模式映射

SOURCE_SCHEMA:TARGET_SCHEMA --将 SOURCE_SCHEMA 中的数据导入到 TARGET_SCHEMA 中

例如:
REMAP_SCHEMA=“DM_ERP01_CFR08I_03”:“DM_ERP01_CFR08I_PX”

3.3 四种级别的导入方式

针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导入方式可供选择。一
次导出只能指定一种方式。可选参数,缺省为 SCHEMAS。

3.3.1 FULL

FULL 方式导入整个数据库。
例如,设置 FULL=Y,导入整个数据库,导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dimp
FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y

./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 directory=/dm8/data/DM/bak/imp file=/dm8/data/DM/bak/exp.dmp log=imp.log full=y

3.3.2 OWNER

OWNER 方式导入一个或多个用户拥有的所有对象。

例如,设置 OWNER=USER01,导入用户 USER01 所拥有的对象全部导出。导入的数据
库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dimp FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log OWNER=USER01

3.3.3 SCHEMAS

SCHEMAS 方式的导入一个或多个模式下的所有对象。
例如,设置 SCHEMAS=USER01,导入模式 USER01 模式下的所有对象。导入的数据库
文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dimp
FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log SCHEMAS=USER01

一般情况下,OWNER 与 SCHEMAS 导入导出是相同的。但是用户可以包含多个模式,在这种情况下 SCHEMAS 的导入导出是 OWNER 导入导出的一个子集。

3.3.4 TABLES

TABLES 方式导入一个或多个指定的表或表分区。导入所有数据行、约束、索引等信息。

例如,设置 TABLES=table1,table2,导入 table1,table2 两张表的所有数据和
信息。导入的数据库文件在/mnt/data/dexp,即将生成的日志文件放在/mnt/data/dimp。
./dimp USERID=SYSDBA/SYSDBA@192.168.xxx.xxx:5237 DIRECTORY=/mnt/data/dimp FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log TABLES=table1,table2

和 TABLES 导入有关的参数还有 EXCLUDE,用来指定导入时过滤掉某类对象。

达梦社区地址:https://eco.dameng.com

 类似资料: