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

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

汪弘毅
2023-12-01

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

功能简介

DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使用 RMAN 工具进行的备份还原。物理备份还原请参考《DM7 新备份与还原》。逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp和 dimp 进行的备份还原。逻辑备份还原正是本文章所要介绍的内容。

逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。 dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装录/dmdbms/bin 中找到。逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。 四种级
别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级(FULL) :导出或导入整个数据库中的所有对象。
用户级(OWNER) :导出或导入一个或多个用户所拥有的所有对象。
模式级(SCHEMAS) :导出或导入一个或多个模式下的所有对象。
表级(TABLE) :导出或导入一个或多个指定的表或表分区。

dexp 逻辑导出

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

导出特殊参数

1.USERID

USERID 用于连接服务器。 必选参数。
语法如下:
USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
USER/PWD: 用户名和密码, 用户名必写,密码缺省为 SYSDBA。

2.FILE

FILE 用于明确指定导出的文件(可以包含路径),可以包含多个文件,用逗号分隔。 可选参数, 如果不选用 FILE 参数(来明确指定导出文件名称),那么默认导出文件名称为dexp.dmp。
语法如下:
FILE=<文件>
例如, 设置 FILE=db_str.dmp, 导出文件名为 db_str.dmp。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dexp

3.LOG

LOG 用于明确指定导出的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。 可选参数。 如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件
名称为 dexp.log。
语法如下:
LOG=<文件名>
例如,指定日志文件名为 db_str.log。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dexp

4.DIRECTORY

DIRECTORY 用于指定导出文件及日志文件生成的路径。可选参数,缺省为导出到 dexp
所在路径。
语法如下:
DIRECTORY= < path >
< path >:导出文件和日志文件生成的路径。
如果 FILE 和 LOG 参数指定的文件包含生成路径,则 FILE 和 LOG 参数中指定的路径将替代 DIRECTORY 所指定的路径; 如果 FILE 和 LOG 参数指定的文件未包含路径信息,则文件将被生成到 DIRECTORY 指定的目录下; 如果都没有指定路径,程序将根据当前的运行环境来设置相应的导出路径,一般为当前路径。
例如, 指定路径/mnt/data/dexp。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dexp

四种级别的导出方式

1.FULL

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

2.OWNER

OWNER 方式导出一个或多个用户拥有的所有对象。
语法如下:
OWNER=<用户名>{,<用户名>}
例如, 设置 OWNER=USER01,导出用户 USER01 所拥有的对象全部导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log OWNER=USER01
DIRECTORY=/mnt/data/dexp

3.SCHEMAS

SCHEMAS 方式的导出一个或多个模式下的所有对象。
语法如下:
SCHEMAS=<模式名>{,<模式名>}
例如, 设置 SCHEMAS=USER01,导出模式 USER01 模式下的所有对象。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log
SCHEMAS=USER01DIRECTORY=/mnt/data/dexp

3.TABLES

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

dimp 逻辑导入

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

导入特殊参数

1.USERID

USERID 用于连接服务器。 必选参数。
语法如下:
USER/PWD*MPP_TYPE@SERVER:PORT#SSLPATH@SSLPWD
USER/PWD: 用户名和密码, 用户名必写,密码缺省为 SYSDBA。

2.FILE

FILE 用于指定明确导入 dexp 导出的文件(可以包含路径)。 为必选参数。
语法如下:
FILE=<文件>
例如, 之前导出的文件路径为: FILE=/mnt/data/dexp/db_str.dmp, 那么导入文件
可以写成如下所示:
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
DIRECTORY=/mnt/data/dimp
若 FILE 没有指定文件路径,则可在 DIRECTORY 中指定。

3.LOG

LOG 用于明确指定导入的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。 可选参数。 如果不选用 LOG 参数(来明确指定日志文件名称),那么默认导出日志文件
名称为 dimp.log。
语法如下:
LOG=<文件名>
例如, 指定日志文件名为 db_str.log。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
DIRECTORY=/mnt/data/dimp
如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径;
如果 LOG 和 DIRECTORY 都没有指定路径,则使用 FILE 指定的路径。

DIRECTORY

DIRECTORY 用于指定导入文件及日志文件生成的路径。可选参数,缺省为 dimp 所在
路径。
语法如下:
DIRECTORY=< path >
< path >:导入文件路径和日志文件生成的路径。
例如, 指定 FILE 使用/mnt/data/dexp 路径, LOG 使用/mnt/data/dimp 路径。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp db_str.dmp LOG=db_str.log
FULL=Y DIRECTORY=/mnt/data/dimp。
FILE 和 LOG 中指定的路径, 优先级高于 DIRECTORY 中指定的路径。当 FILE 和 LOG 不指定路径时,才使用 DIRECTORY 指定的路径。如果都没有指定路径,则使用系统当前路径。

四种级别的导入方式

1.FULL

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

1.OWNER

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

1.SCHEMAS

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 导入导出的一个子集。

1.TABLES

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

注意:当需要从A库导出数据文件再导入到B数据库的时,要保证A库和B库的数据库实例的初始化参数一致。

视频演示

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

 类似资料: