DM数据库工具——dexp、dimp学习
dexp、dimp使用
-
功能简介
- DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。
- 物理备份还原是对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。
- 逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。
- 逻辑导出(dexp)和逻辑导入(dimp)是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。
- 逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
- 数据库级(FULL):导出或导入整个数据库中的所有对象。
- 用户级(OWNER):导出或导入一个或多个用户所拥有的所有对象。
- 模式级(SCHEMAS):导出或导入一个或多个模式下的所有对象。
- 表级(TABLES):导出或导入一个或多个指定的表或表分区。
- DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。
-
dexp逻辑导出
dexp 工具可以对本地或者远程数据库进行数据库级、用户级、模式级和表级的逻辑备份。
-
使用dexp工具
-
dexp 工具需要从命令行启动。在 cmd 命令行工具中找到 dexp 所在安装目录 /dmdbms/bin,输入 dexp 和参数后回车
-
语法:
dexp PARAMETER=<value> { PARAMETER=<value> } 或 dexpdp PARAMETER=<value> { PARAMETER=<value> }
- PARAMETER:dexp 参数。参数 USERID 必须置于首位,此外多个参数之间排列顺序无影响,参数之间使用空格间隔。
-
例:将用户名和密码均为 SYSDBA,IP 地址为 192.168.0.248,端口号为 8888 的数据库采用 FULL 方式完全导出
./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
- /user/data 为数字证书路径。导出文件名为 db_str.dmp,导出的日志文件名为 db_str.log,导出文件的路径为/mnt/dexp/data
-
-
dexp参数
-
具体的参数与其含义如下表所示:
说明:
每个参数含义后面的括号内为(N)则表示该参数默认为否,为(Y)表示默认为是;“()”内的值表示的是参数的默认值。
-
-
dexp参数详解
-
特殊参数
-
USERID
-
USERID 用于指定数据库的连接信息。
-
语法:
{{<username>[/<password>]} | /}[@<connect_identifier>][<option>] [<os_auth>] <connect_identifier> ::=<svc_name> | {<host>[:<port>]} | <unixsocket_file> <option>::= #{ <extend_option>=<value>{,<extend_option>=<value>} } //此行外层{}为了封装参数之用,需要出现在语法中 <os_auth>::= AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
-
{{<username>[/<password>]} | /}
:<username>[/<password>]
为用户名和密码。普通登录方式时用户名必写,密码默认为 SYSDBA。/表示采用操作系统身份验证方式登录或利用 wallet 文件登录。 -
<svc_name>
:服务名。服务名在 dm_svc.conf 中配置。 -
<host>[:<port>]
:服务器 IP 地址和端口号。默认情况下默认为本地服务器和端口号 LOCALHOST:5236。 -
<unixsocket_file>
:专门用于在 LINUX 系统中,当服务器与客户端之间使用 UNIXSOCKET(UNIX DOMAIN SOCKET - IPC)协议通信时,指定客户端连接的 socket 文件路径。 -
<option>
: 为扩展选项,用法为 <extend_option>=<value>
。拓展选项如下:extend_option value mpp_type MPP 登录属性,此属性的设置对非 MPP 系统没有影响。取值 GLOBAL 和 LOCAL,默认为 GLOBAL。GLOBAL 表示 MPP 环境下建立的会话为全局会话,对数据库的导入导出操作在所有节点进行;LOCAL 表示 MPP 环境下建立的会话为本地会话,对数据库的导入导出操作只在本地节点进行 inet_type 网络通信协议类型。取值 TCP/UDP/IPC/UNIXSOCKET/RDMA,默认为 TCP。 使用 UDP 协议时,服务器需要设置 INI 参数 ENABLE_UDP 非 0;使用 IPC 协议时,会忽略 IP 地址和端口号,直接连接本机上 INI 参数 ENABLE_IPC=1 的服务器,一台机器上只能有一个服务器设置 ENABLE_IPC=1;使用 UNIXSOCKET 协议时,无需指定 IP 地址和端口号,但服务器需要配置 INI 参数 UNIX_SOCKET_PATHNAME 指定 socket 文件路径,客户端连接服务器时也需要指定 socket 文件路径,二者必须一致,仅 LINUX 环境下支持 UNIXSOCKET;使用 RDMA 协议时,需要安装并配置 RDMA 网卡,连接数据库时需要指定 RDMA 网卡配置的 IP 地址以及服务器的端口号 ssl_path 通信加密的 SSL 数字证书路径,默认为不使用加密。数字证书路径由用户自己创建,将相应的证书需放入该文件夹中。其中服务器证书必须与 dmserver 目录同级,客户端目录可以任意设置。和 ssl_pwd 一起使用。各用户只能使用自己的 SSL 数字证书,例如 SYSDBA 账户只能使用\bin\CLIENT_SSL\SYSDBA 下的证书和密码,如果证书没有密码可以用默认或任意数字代替。 例如:./dexp SYSDBA/SYSDBA@192.168.1.64:5236#“{ssl_path= /home/dmdbms/bin/client_ssl/SYSDBA,ssl_pwd=12345}” file=/home/dexp_test.dmp log=/home/log/ ssl_pwd 通信加密的 SSL 数字证书密码。和 ssl_path 一起使用。默认为不加密 -
SSLPATH@SSLPWD
:通信加密的 SSL 数字证书路径和密码,默认为不使用加密。 -
AS <SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO>
:操作系统身份验证。
-
-
-
FILE
-
FILE 用于明确指定导出的文件(可以包含路径),可以包含多个文件,用逗号分隔。
-
语法:
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
注意:
如果FILE指定的文件包含生成路径,则忽略DIRECTORY中的路径;
如果FILE没有指定路径时,使用DIRECTORY中指定的路径;
如果FILE和DIRECTORY都没有指定路径,则使用系统当前路径。
-
-
LOG
-
LOG 用于明确指定导出过程产生的日志文件名称(可以包含路径),可以包含多个文件,用逗号分隔。
-
语法:
LOG=<文件名>
-
例:指定日志文件名为 db_str.log
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp
注意:
如果LOG指定的文件包含生成路径,则忽略DIRECTORY中的路径;
如果LOG没有指定路径时,使用DIRECTORY中指定的路径;
如果LOG和DIRECTORY都没有指定路径,则使用系统当前路径。
-
-
DIRECTORY
-
DIRECTORY 用于指定导出文件及日志文件生成的路径。
- 使用 dexp 工具时,DIRECTORY 为可选参数,默认导出到 dexp 所在路径。
- 使用 dexpdp 工具时,DIRECTORY 必选,并且指定的路径必须是通过 CREATE DIRECTORY 定义的目录名
-
语法:
DIRECTORY=<path>
-
:导出文件和日志文件生成的路径。
-
-
例:指定路径/mnt/data/dexp。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/mnt/data/dexp
注意
FILE和LOG中指定的路径,优先级高于DIRECTORY中指定的路径。
当FILE和LOG不指定路径时,才使用DIRECTORY指定的路径。
如果都没有指定路径,则使用系统当前路径。
-
-
四种级别的导出方式
针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导出方式可供选择。
-
FULL:导出数据库的所有对象
-
语法:
FULL=Y/N
- 设置 FULL=Y 时指定以 FULL 方式导出数据库的所有对象;设置 FULL=N 相当于没有设置 FULL 参数,默认N。
-
-
OWNER:导出一个或多个用户拥有的所有对象。
-
语法:
OWNER=<用户名>{,<用户名>}
-
-
SCHEMAS:导出一个或多个模式下的所有对象。
-
语法:
SCHEMAS=<模式名>{,<模式名>}
-
-
TABLES:导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。
-
语法:
TABLES=[模式名.]表名[:表分区名] [, ...]
-
-
-
普通参数
-
FUZZY_MATCH
-
FUZZY_MATCH 用于指定 TABLES 选项是否支持模糊匹配。可选参数,默认为 N。
-
语法:
FUZZY_MATCH=N/Y
- N:TABLES 选项不支持模糊匹配,根据指定的表名来自动识别是否需要模糊匹配,默认值;
- Y:TABLES 选项支持模糊匹配,指定的表名与数据库中的表名采用 LIKE 模糊查询匹配。
-
-
QUERY
-
QUERY 用于指定过滤条件来对表数据进行导出。可选参数。
-
语法:
QUERY="<QUERY子句> {, <QUERY子句>}" <QUERY子句>::= [[schema.]table:]<where_condition>
- <where_condition>:过滤条件。
注意
1.QUERY中指定的表对象需要在数据库对象中存在,否则报错;
2.QUERY中对于同一个表对象不能重复指定过滤条件;
3.指定了表对象的过滤条件为特定过滤条件,未指定表对象的过滤条件为普通过滤条件,特定过滤条件的优先级高于普通过滤条件。如果QUERY中有普通过滤条件,某一表对象有特定过滤条件,对该表只执行特定过滤条件
-
-
PARALLEL
-
PARALLEL 用于指定导出的过程中所使用的线程数目。可选参数。
-
语法:
PARALLEL=<num>
- :线程数。整数类型,取值范围:1~100,默认为 16。
-
-
TABLE_PARALLEL
-
TABLE_PARALLEL 用于指定导出每张表所使用的线程数。可选参数。
-
语法:
TABLE_PARALLEL=<num>
- :线程数。整数类型,取值范围:1~100,默认为 16。
-
-
TABLE_POOL
-
TABLE_POOL 用于设置导出过程中存储表数据的缓冲区个数。可选参数。
-
语法:
TABLE_POOL=<num>
- :存储表数据的缓冲区个数。整数类型,取值范围:1~20,默认为 20。
注意
TABLE_PARALLEL 固定的情况下,导出时间随着TABLE_POOL个数的增加而减少。当TABLE_POOL稍大于TABLE_PARALLEL时结果为最优。
-
-
EXCLUDE
-
EXCLUDE 用来批量设置导出时忽略的对象。可选参数。
-
语法:
EXCLUDE=[(]<对象种类名>{,<对象种类名>}[)] 或 EXCLUDE=TYPE: name1,name2 或 EXCLUDE=TYPE:cond{,TYPE:cond}
- < 对象种类名 >:包括 CONSTRAINTS、INDEXES、ROWS、TRIGGERS、GRANTS 、VIEWS、PROCEDURE、PACKAGE、SEQUENCE、TABLES。例如:EXCLUDE=(CONSTRAINTS,INDEXES)。
- TYPE:包括 SCHEMAS、TABLES、VIEWS、PROCEDURE、PACKAGE、SEQUENCE。
- 当 TYPE 为 SCHEMAS 时,忽略指定的模式,使用 SCHEMAS:INFO 格式,如果使用表级、模式级导出方式导出,则使用 SCHEMAS:INFO 格式的 EXCLUDE 无效。例如:EXCLUDE=SCHEMAS:SCH1,SCH2。
- 当 TYPE 为 TABLES 时,忽略指定的表,使用 TABLES:INFO 格式。例如:EXCLUDE= TABLES:table1,table2。
- 当 TYPE 为 VIEWS 时,忽略指定的视图,使用 VIEWS:INFO 格式。例如:EXCLUDE= VIEWS:view1,view2。
- 当 TYPE 为 PROCEDURE 时,忽略指定的存储过程和存储函数。
- 当 TYPE 为 PACKAGE 时,忽略指定的包。
- 当 TYPE 为 SEQUENCE 时,忽略指定的序列。
- cond:过滤条件,包括 IN、LIKE、NOT IN、NOT LIKE、BETWEEN AND、>、<、=、>=、 <=、<>、!=。
注意
如果导出方式为TABLES表级或SCHEMAS模式级导出时,EXCLUDE=SCHEMAS:<模式名>{,<模式名>}排除模式不起作用。
-
-
INCLUDE
-
INCLUDE 用来批量设置导出时包含的对象。可选参数。
-
语法:
INCLUDE=[(]<对象种类名>{,<对象种类名>}[)] 或 INCLUDE=TYPE: name1,name2 或 INCLUDE=TYPE:cond{,TYPE:cond}
- < 对象种类名 >:包括 CONSTRAINTS、INDEXES、ROWS、TRIGGERS、GRANTS 、VIEWS、PROCEDURE、PACKAGE、SEQUENCE、TABLES。例如:INCLUDE=(CONSTRAINTS,INDEXES)。
- TYPE:包括 SCHEMAS、TABLES、VIEWS、PROCEDURE、PACKAGE、SEQUENCE。
- 当 TYPE 为 SCHEMAS 时,只导出指定的模式,使用 SCHEMAS:INFO 格式,如果使用表级、模式级导出方式导出,则使用 SCHEMAS:INFO 格式的 INCLUDE 无效。例如:INCLUDE=SCHEMAS:SCH1,SCH2。
- 当 TYPE 为 TABLES 时,只导出指定的表,使用 TABLES:INFO 格式。
- 当 TYPE 为 VIEWS 时,只导出指定的视图,使用 VIEWS:INFO 格式。例如:INCLUDE= VIEWS:view1,view2。
- 当 TYPE 为 PROCEDURE 时,只导出指定的存储过程和存储函数。
- 当 TYPE 为 PACKAGE 时,只导出指定的包。
- 当 TYPE 为 SEQUENCE 时,只导出指定的序列。
- cond:过滤条件,包括 IN、LIKE、NOT IN、NOT LIKE、BETWEEN AND、>、<、=、>=、 <=、<>、!=。
-
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:不导出数据。
-
-
NOLOGFILE
-
NOLOGFILE 用于设置是否使用日志文件。可选参数。
-
语法:
NOLOGFILE=Y/N
- Y:不使用。
- N:使用,默认值。
建议:一旦设置NOLOGFILE=Y不使用日志文件。此时即使存在LOG参数,LOG参数也为无效。
-
-
NOLOG
-
NOLOG 设置屏幕上是否显示日志信息。可选参数。
-
语法:
NOLOG=Y/N
-
-
LOG_WRITE
-
LOG_WRITE 用于日志信息实时写入日志文件。可选参数。
-
语法:
LOG_WRITE=Y/N
- Y:一边将日志内容打印到屏幕上,一边将日志内容写入日志文件。
- N:日志内容先在屏幕上全部打印完毕再写入日志文件,默认值。
-
-
DUMMY
-
DUMMY 用于设置交互信息处理。可选参数,默认使用 P 打印交互信息。
-
语法:
DUMMY=P/Y/N
- P:打印交互信息,默认方式。当导出文件已存在的时候,提供是否覆盖交互界面。
- Y:不打印交互信息,所有交互都按 YES 处理。
- N:不打印交互信息,所有交互都按 NO 处理。
-
-
PARFILE
-
PARFILE 用于将常用的参数设置保存到文件中,然后使用参数文件 PARFILE 进行导出、导入操作。可选参数。
-
语法:
PARFILE=<path>
-
:PARFILE 文件的绝对路径。
-
-
-
FEEDBACK
-
FEEDBACK 用来指明在导出数据的过程中每间隔多少行打印一次进度信息。可选参数。
-
当参数默认时,默认为 0,只打印导出表的总行数。
-
语法:
FEEDBACK=<num>
- :表间隔的行数。正整数。默认为 0,只打印导出表的总行数。
-
COMPRESS
-
COMPRESS 指定是否压缩导出文件。可选参数。默认为不压缩。
-
语法:
COMPRESS=Y/N
-
COMPRESS_LEVEL
-
COMPRESS_LEVEL 指定导出数据压缩等级。仅当 COMPRESS=Y 时有效。
-
语法:
COMPRESS_LEVEL=<num>
- :压缩等级,整数类型,取值范围 0~9,默认为 1。数值越大,压缩等级越高,压缩比例越高,0 表示不压缩。
-
-
ENCRYPT、ENCRYPT_PASSWORD、ENCRYPT_NAME
-
这三个参数用来设置导出文件加密。可选参数。
-
语法:
ENCRYPT=Y/N ENCRYPT_PASSWORD=<加密密钥> ENCRYPT_NAME=<加密算法>
- ENCRYPT:设置导出文件加密。N:不开启导出文件加密,默认值;Y:开启导出文件加密。如果设置
- ENCRYPT=Y,那么默认 COMPRESS=Y,先压缩后加密。
- ENCRYPT_PASSWORD=<加密密钥>:设置加密密钥。支持最大长度为 255。
- ENCRYPT_NAME=<加密算法>:设置加密算法。默认为 RC4。
-
-
FILESIZE
-
FILESIZE 用于指定单个导出文件(FILE)大小或日志文件(LOG)大小的上限。可以按字节[B]、K[B]、M[B]、G[B]的方式指定大小。可选参数。
-
使用 FILESIZE 参数时,FILE(或 LOG)必须使用 %U 对名称进行自动扩展,否则报错。如果不指定 FILE(或 LOG),那么即使设置了 FILESIZE 也不起作用。
-
语法:
FILESIZE=<num>
- :单个导出文件上限。整数类型,取值范围:128M~系统最大值。
-
-
FILENUM
- FILENUM 用于指定一个模板导出文件的个数。范围为 1~99,默认为 99。可选参数。
-
DROP
-
DROP 用于设置导出后是否删除原表。可选参数。
-
语法:
DROP=Y/N
-
-
DESCRIBE
-
DESCRIBE 用于设置导出数据文件的描述信息,记录在数据文件中。可选参数。
-
语法:
DESCRIBE=’字符串’
- 字符串:设置导出数据文件的描述信息,记录在数据文件中。
-
CTRL_INFO
-
CTRL_INFO 控制信息。可选参数,默认为 0。
-
语法:
CTRL_INFO=[n]
- n 取值为整型数值。
- 1:控制分区表约束在表定义导出。
- 0:分区表约束分开导出。
-
-
FLASHBACK_SCN
-
FLASHBACK_SCN 用于指定导出表数据的闪回 LSN。可选参数。
-
语法:
FLASHBACK_SCN=LSN
- LSN:可以通过查询动态视图 V$ R L O G 或 V RLOG 或 V RLOG或VLSN_TIME 来确定。
-
-
FLASHBACK_TIME
-
FLASHBACK_TIME 用于指定导出表数据的闪回时间。可选参数。
-
语法:
FLASHBACK_TIME="time_exp"
- time_exp:时间字符串。
-
-
COL_DEFAULT_SEPARATE
-
COL_DEFAULT_SEPARATE 用于设置是否单独导出列默认值。可选参数。
-
语法:
COL_DEFAULT_SEPARATE=Y/N
- Y:单独导出列默认值,默认值。
- N:列默认值和表定义一起导出。
-
-
WITH_UR
-
WITH_UR 用于设置导出数据是否允许脏读。可选参数。
-
语法:
WITH_UR=N/Y
- N:导出表数据不允许脏读,默认值。
- Y:导出表数据允许脏读。
-
-
SIMPLE_LOG
-
SIMPLE_LOG 用于设置导出日志是否只打印简要日志,简要日志只打印导出对象个数和导出表数据行数。可选参数。
-
语法:
SIMPLE_LOG=N/Y
- N:导出日志不使用简要日志,默认值。
- Y:导出日志使用简要日志。
-
CONFIG_FILE
-
CONFIG_FILE 用于指定局部配置文件路径,局部配置文件中可以配置导入导出默认连接串和默认密码。可选参数。
-
语法:
CONFIG_FILE=<path>
-
:局部配置文件路径。
-
-
-
HELP
-
输入 dexp HELP 即可查看帮助信息。
-
语法:
./dexp HELP
-
-
-
-
-
dimp逻辑导入
dimp 逻辑导入工具利用 dexp 工具生成的备份文件对本地或远程的数据库进行联机逻辑还原。
-
使用dimp工具
-
dimp 工具需要从命令行启动。在 cmd 命令行工具中找到 dimp 所在安装目录/dmdbms/bin,输入 dimp 和参数后回车。
-
语法如下:
dimp PARAMETER=value { PARAMETER=value } 或 dimpdp PARAMETER=value { PARAMETER=value }
- PARAMETER:dimp 参数。其中 USERID 必须为第一个参数,其余参数之间排列顺序无影响,参数之间使用空格间隔。
- value:参数取值。
-
例如:采用 FULL 方式完全导入到用户名和密码为 SYSDBA,IP 地址为 192.168.0.248,端口号为 8888 的数据库。
./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y
- 导入文件名为 db_str.dmp,导入的日志文件名为 db_str.log,路径为/mnt/data/dexp。
-
-
dimp参数
-
具体参数如表所示
-
-
dimp参数详解
这里就只写特殊参数,具体的可以去官网https://eco.dameng.com/看
-
USERID
- USERID 用于指定数据库的连接信息。
-
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中的路径;
如果FILE没有指定路径时,使用DIRECTORY中指定的路径;
如果FILE和DIRECTORY都没有指定路径,则使用系统当前路径。
-
-
LOG
-
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 为可选参数,默认导出到 dimp 所在路径。
-
使用 dimpdp 工具时,DIRECTORY 为必选参数,并且指定的路径必须是通过 CREATE DIRECTORY 定义的目录名。
-
语法:
DIRECTORY=<path>
-
:导入文件路径和日志文件生成的路径。
-
-
-
四种级别的导入方式
-
针对数据库对象,有 FULL、OWNER、SCHEMAS、TABLES 四种导入方式可供选择。
-
FULL
-
FULL 方式导入整个数据库。
-
语法:
FULL=Y/N
- 设置 FULL=Y 时指定以 FULL 方式导入整个数据库;设置 FULL=N 相当于没有设置 FULL 参数,默认为 N。
-
-
OWNER
-
OWNER 方式导入一个或多个用户拥有的所有对象。
-
语法:
OWNER=<用户名>{,<用户名>}
-
-
SCHEMAS
-
SCHEMAS 方式的导入一个或多个模式下的所有对象。
-
语法:
SCHEMAS=<模式名>{,<模式名>}
-
-
TABLES
-
TABLES 方式导入一个或多个指定的表或表分区。导入所有数据行、约束、索引等信息。
-
语法:
TABLES=[模式名.]表名[:表分区名] [, ...]
-
-
-
-
-
-
dexp和dimp应用实例
-
完整示例(当然用的是示例,本人没这个条件,也不想搞,懒~)
-
环境准备
- 导出库:环境为 linux,服务器为 192.168.0.248,用户名和密码均为 SYSDBA。导出的是 DM 数据库系统安装时自带的名为 BOOKSHOP 的示例库,端口号 5236。
- 导入库:环境为 linux,服务器为 192.168.0.248,用户名和密码均为 SYSDBA。准备一个空数据库作为导入库,端口号为 8888。
-
dexp导出
-
导出数据库的所有对象(FULL=Y),导出文件为 dexp01.dmp,导出日志为 dexp01.log,导出文件和日志文件都存放在/emc_2/data/dexp 目录中。
./dexp SYSDBA/SYSDBA\@192.168.0.248:5236 FILE=dexp01.dmp LOG=dexp01.log DIRECTORY=/emc_2/data/dexp FULL=Y
-
-
dimp导入
-
导入 SYSDBA、OTHER、PERSON 模式中的数据(SCHEMAS=SYSDBA,OTHER,PERSON),导入文件就是上一步导出的文件 dexp01.dmp,导入日志 dimp02.log 放入/emc_2/data/dimp 目录中。
./dimp SYSDBA/SYSDBA\@192.168.0.248:8888 FILE=/emc_2/data/dexp/dexp01.dmp LOG=dimp02.log DIRECTORY=/emc_2/data/dimp SCHEMAS=SYSDBA,OTHER,PERSON
-
-
查看LOG日志
- 详细的统计信息,可以查看日志dexp01.log和dimp02.log
-
-
总结
- 本章主要是讲的三个工具的使用。DM数据库提供上面三种工具,在进行数据导入导出和SQL脚本等应用上有了更方便地方式。
- 应该不会有很多人看上面那一大堆参数,其实我觉得不一定非要每个参数都知道都了解,只要在遇到相关问题时知道从哪里可以找到相关参数,找到解决方法就好。