DM8 DIMP和DEXP(逻辑导入导出)

1、DM数据库备份类型:
DM 数据库的备份还原包括两种类型:物理备份还原和逻辑备份还原。物理备份还原是
对数据库的操作系统物理文件(如数据文件、控制文件和日志文件等)的备份还原。例如使
RMAN 工具进行的备份还原。 逻辑备份还原是对数据库逻辑组件(如表、视图和存储过程等数据库对象)的备份还原。例如使用 dexp 和 dimp 进行的备份还原。
2、逻辑导入导出工具介绍:
逻辑导出( dexp )和逻辑导入( dimp )是 DM 数据库的两个命令行工具,分别用来实现对 DM 数据库的逻辑备份和逻辑还原。逻辑备份和逻辑还原都是在联机方式下完成,联机方式是指数据库服务器正常运行过程中进行的备份和还原。dexp 和 dimp 是 DM 数据库自带的工具,只要安装了 DM 数据库,就可以在安装目录/dmdbms/bin 中找到。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。四种级别所提供的功能:
数据库级( FULL ):导出或导入整个数据库中的所有对象。
用户级( OWNER ):导出或导入一个或多个用户所拥有的所有对象。
模式级( SCHEMAS ):导出或导入一个或多个模式下的所有对象。
表级( TABLES ):导出或导入一个或多个指定的表或表分区。
3、使用dexp工具
./dexp USERID=SYSDBA/738918dhx@192.168.1.15:5236 FILE=db_data.dmp DIRECTORY=/data/dexp/ LOG=DmServiceDMSERVER.log FULL=Y
①密码为 SYSDBA/,@.: ,端口号为 5236 的本地服务器, USERID 可写成如下所示:
./dexp USERID=SYSDBA/"""SYSDBA/,@.:"""@LOCALHOST:5236
②设置 FILE=db_str.dmp ,导出文件名为 db_str.dmp
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y DIRECTORY=/data/dexp
🔺   如果 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/738918dhx FILE=db_str%U.dmp LOG=db_str%U.log FULL=Y DIRECTORY=/data/dexp/ FILESIZE=128m
🔺  如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
      如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径;
      如果 LOG DIRECTORY 都没有指定路径,则使用系统当前路径。
④四种级别的导出方式:
FULL 方式导出数据库的所有对象。
OWNER 方式导出一个或多个用户拥有的所有对象。
SCHEMAS 方式的导出一个或多个模式下的所有对象。
TABLES 方式导出和导入一个或多个指定的表或表分区。导出所有数据行、约束、索引等信息。
⑤用户名、模式名和表名书写规定
  • 对于输入的用户名、模式名和表名,工具都会自动转换为大写。
  • 对于小写的用户名、模式名和表名,为了不转换为大写,需要转义: 第一步,如果想输入小写的名字不被转成大写, dexp 要求将名称使用双引号扩起来。例如:名称为 tab1,要写成"tab1"。第二步,另外,操作系统要求将传入的名称使用双引号括起来作为一个整体,同时要求内层的双引号还需要被转义。所以最终写成"\"tab1\""。
  • 如果含有特殊字符 ( 双引号、单引号、空格、逗号等 ) 的用户名、模式名和表名需要转义: 第一步, dexp 要求对含有特殊字符的对象名称需要使用双引号括起来,同时特殊字符需要被转义(使用双引号")。例如:表名为 tab1",需写成"tab1""";第二步,另外,操作系统要求将传入的名称使用双引号括起来作为一个整体,同时要求内层的双引号和特殊字符还需要被转义。所以最终成:"\"tab1\"\"\""。
FUZZY_MATCH 用于指定 TABLES 选项是否支持模糊匹配。可选参数,缺省为 N
N: TABLES 选项不支持模糊匹配,指定的表名与数据库中的表名必须精确匹配;
Y TABLES 选项支持模糊匹配,指定的表名与数据库中的表名采用 LIKE 模糊查询匹配。
导出 OTHER 模式下以 "R" 开头的表:
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.R%
FUZZY_MATCH=Y
QUERY 用于指定过滤条件来对表数据进行导出。
导出 OTHER.READER 表中满足 "WHERE AGE=19" 条件的数据。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=OTHER.READER
QUERY="WHERE AGE=19"
PARALLEL 用于指定导出的过程中所使用的线程数目。 可选参数,缺省为单线程。如果CPU 核心数为 N 的话,那一般来说 PARALLEL 为 N 或者 N+1 最合适。
⑨TABLE_PARALLEL用于指定导出每张表所使用的线程数。
TABLE_POOL 用于设置导出过程中存储表数据的缓冲区个数。
TABLE_PARALLEL 固定的情况下,导出时间随着 TABLE_POOL 个数的增加而减少。当 TABLE_POOL 稍大于 TABLE_PARALLEL 时结果为最优。
EXCLUDE 用来批量设置导出时忽略的对象种类。
设置 EXCLUDE=(CONSTRAINTS) ,将当前用户下的 table1 table2 的对象信息导出时不导出约束。
./dexp SYSDBA/SYSDBA FILE=/mnt/data/db_str.dmp LOG=db_str.log TABLES=table1,table2 EXCLUDE=/(CONSTRAINTS/)
INCLUDE 用来批量设置导出时包含的对象种类。
设置 INCLUDE=( CONSTRAINTS,INDEXES ) ,指明将当前用户下的 table1 的对象约束和索引信息导出。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log TABLES=table1
DIRECTORY=/mnt/data/dexp INCLUDE=/(CONSTRAINTS,INDEXES/)
CONSTRAINTS TABLESPACE GRANTS INDEXES TRIGGERS ROWS
设置 ROWS=N 不导出表中的数据。
./dexp USERID=SYSDBA/SYSDBA FILE=db_str.dmp NOLOGFILE=Y FULL=Y DIRECTORY=/mnt/data/dexp ROWS=N
NOLOGFILE 用于设置是否使用日志文件。
🔺 一旦设置 NOLOGFILE=Y 不使用日志文件。此时即使存在 LOG 参数, LOG参数也为无效。
⑤NOLOG设置屏幕上是否显示日志信息,缺省为N。
⑥LOG_WRITE用于日志信息实时写入日志文件,缺省为N。
⑦DUMMY用于设置交互信息处理。
     P :提供交互界面,默认方式。当导出文件已存在的时候,提供是否覆盖交互界面。
    Y :不提供交互界面,所有交互都按 YES 处理。
    N :不提供交互界面,所有交互都按 NO 处理。
⑧PARFILE用于将常用的参数设置保存到文件中,然后使用参数文件PARFILE进行导入、导出操作。
设置 PARFILE =/mnt/data/dexp/para.txt
./dexp USERID=SYSDBA/SYSDBA PARFILE=/mnt/data/dexp/para.txt
FEEDBACK 用来指明在导出数据的过程中每间隔多少行打印一次进度信息, 当参数缺省时,默认为 0 ,只打印导出表的总行数。
COMPRESS 指定是否压缩导出文件。可选参数。缺省为不压缩。
ENCRYPT ENCRYPT_PASSWORD ENCRYPT_NAME 分别为是否加密、加密密钥、加密算法。
🔺 加密算法: DES_ECB DES_CBC DES_CFB DES_OFB DESEDE_ECB DESEDE_CBC 、DESEDE_CFB、DESEDE_OFB 、AES128_ECB 、AES128_CBC 、AES128_CFB 、AES128_OFB 、AES192_ECB 、AES192_CBC 、AES192_CFB 、AES192_OFB 、AES256_ECB 、AES256_CBC 、AES256_CFB 、AES256_OFB 、RC4
②FILESIZE用于指定单个导出文件大小或日志文件大小的上限。
③FILENUM用于指定一个模板导出文件的个数。范围1~99,默认99, FILENUM 需要和 FILESIZE 搭配使用, FILENUM*FILESIZE 要大于等于导出的文件总大 小,否则会报错空间不足。
④DROP用于设置导出后是否删除原表。
Y: 导出后删除原表,但不级联删除。
N 或缺省参数 : 导出后不删除原表。
⑤DESCRIBE用于设置导出数据文件的描述信息。
⑥LOCAL只用于MPP环境下,缺省为不使用。
⑦HELP查看帮助信息。
./dexp HELP
4、使用dimp工具
./dimp USERID=SYSDBA/SYSDBA@192.168.0.248:8888 FILE=db_str.dmp DIRECTORY=/mnt/data/dexp LOG=db_str.log FULL=Y
①USERID 用于指定数据库的连接信息,必选参数。
②FILE只当导入dexp导出的文件(可跟路径),必选参数。
🔺 如果 FILE 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
    如果 FILE 没有指定路径时,使用 DIRECTORY 中指定的路径;
    如果 FILE DIRECTORY 都没有指定路径,则使用系统当前路径。
③LOG用于明确指定导入的日志文件名称(可跟路径),可以包含多个文件,用逗号分隔。
🔺 如果 LOG 指定的文件包含生成路径,则忽略 DIRECTORY 中的路径;
    如果 LOG 没有指定路径时,使用 DIRECTORY 中指定的路径;
    如果 LOG DIRECTORY 都没有指定路径,则使用 FILE 指定的路径。
④DIRECTORY用于指定导入文件及日志文件生成的路径,缺省为dimp所在路径。
没有指定路径,使用当前路径:
./dimp USERID=SYSDBA/SYSDBA FILE=db_str.dmp LOG=db_str.log FULL=Y
指定FILE使用/mnt/dtat/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
⑤PARALLEL用于指定导入的过程中所使用的线程数目,缺省为单线程,如果CPU的核数为N的话,一般设置PARALLEL为N或N+1。
设置 PARALLELl=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
⑥ RABLE_PARALLEL在FAST_LOAD为Y时有效,缺省为单线程。 如果CPU的核数为N的话,一般设置PARALLEL为N或N+1。
⑦IGNORE指定忽略创建数据库对象,缺省为N。
⑧ TLBLE_EXITSTS_ACTION用于导入的表已经存在时的处理方式;
🔺 SKIP :跳过此表。
    APPEND :直接向现有表中导入数据
    TRUNCATE :先删除现有表中的数据,再向表中导入数据
    REPLACE :先删除现有表,再导数据
⑨FAST_LOAD用于设置是否使用dmfldr进行属于导入,默认为N。
⑩FLDR_ORDER用户设置使用dmfldr时,是否严格按照导出顺序来导入数据。
①COMMIT_ROWS用于设置批量提交的行数,默认为5000行。
②EXCLUDE用来批量设置导入时忽略的对象种类
GRANTS CONSTRAINTS INDEXES TRIGGERS ROWS( 类别分别为 权限、 约束、索引、触发器和数据。
④NOLOGFILE用于设置是否使用日志文件,缺省使用。
⑤NOLOG设置屏幕上是否显示日志信息,缺省为N。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log
NOLOG=Y FULL=Y DIRECTORY=/mnt/data/dimp
⑥LOG_WRITE用于日志信息实时写入日志文件,缺省为N。
⑦DUMMY用于设置交互信息处理。
     P :提供交互界面,默认方式。当导出文件已存在的时候,提供是否覆盖交互界面。
     Y :不提供交互界面,所有交互都按 YES 处理。
     N :不提供交互界面,所有交互都按 NO 处理。
PARFILE 用于将常用的参数设置保存到文件中,然后使用参数文件 PARFILE 进行导出、 导入操作。
dimp 中使用 PARFILE ,设置路径 PARFILE=/mnt/data/dimp/para.txt
./dimp USERID=SYSDBA/SYSDBA PARFILE=/mnt/data/dimp/para.txt
FEEDBACK 用来指明在导入数据的过程中每间隔多少行打印一次进度信息,默认为0。
⑩COMPILE  如果导出时包含过程 / 函数、视图、物化视图、触发器、类和包,那么导入时会执行一 个编译语句(alter ...compile)。COMPILE 用于设置是否在导入时,对过程或函数执 行编译。
编译相当于执行重建操作,用于检查过程或函数是否还有效。编译成功,说明对象是有 效的;编译失败,说明对象不存在或发生改变,导致重建操作失败。编译失败,导入停止。 不编译就不检查有效性,直接导入。
导入的过程中含有函数 FUN_01,那么导出过程中会自动执行如下语句:
alter function "SYSDBA"."FUN_01" compile;
①INDEXFILE 用于将表的索引/约束创建信息写入指定的文件。
设置 INDEXFILE=f:\data\dimp.log
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp LOG=db_str.log FULL=Y
INDEXFILE=/mnt/data/dimp/dimp.log
INDEXFIRST 用于设置导入时是否先建索引。 创 建 索 引 的 过 程 是 先 遍 历 数 据 再 创 建 索 引 树 。 数 据 量 比 较 大 时 , 应 该 选 择 INDEXFIRST=Y ,先创建索引再导入数据,这样就避免创建索引之前遍历大量数据而耗费时 间;数据量小时,可任意选择。
③REMP_SCHEMA将源模式中的数据导入到目标模式中。
./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/imp_exp.dmp DIRECTORY=/mnt/data/dimp
FULL=Y REMAP_SCHEMA=SYSDBA:PERSON
ENCRYPT_PASSWORD ENCRYPT_NAME(解密密钥、算法名)
./dimp SYSDBA/SYSDBA FILE=/mnt/data/dexp/dk15.dmp LOG=db_str19.log
FULL=Y DIRECTORY=/mnt/data/dimp ENCRYPT_PASSWORD=abcdefg ENCRYPT_NAME=DES_CBC
SHOW/DESCRIBE
SHOW/DESCRIBE 用于设置是否打印 dexp 导出的数据文件的内容列表。
./dimp USERID=SYSDBA/SYSDBA FILE=/mnt/data/dexp/db_str.dmp SHOW=Y
⑥LOCAL 只用在MPP环境中,默认不使用。
TASK_THEAD_NUMBER 用于设置 dmfldr 处理用户数据的线程数目。可选参数,缺省 值为 CPU 个数。但当 CPU 个数大于 8 时,默认值都被置为 8。
BUFFER_NODE_SIZE 用于设置 dmfldr 指定读取文件缓冲区页大小。可选参数,默认 为 10。值越大,缓冲区的页数越多,每次可以读取的数据就越多,每次发送到服务器的数据也就越多,效率越高。但其大小受dmfldr客户端内存大小限制。取值(1-2048M)
TASK_SEND_NODE_NUMBER 用于设置 dmfldr 发送节点个数。 取值范围: 16-65535 。在系统内存够的情况下可以适当 的设大数值以提升效率。缺省情况下,由程序自动计算。
LOB_NOT_FAST_LOAD 用于设置当表中含有大字段时不使用 dmfldr ,而使用普通的 INSERT 进行插入,根据 COMMIT_ROWS 参数决定提交的行数。因为当表中有大字段的时候,dmfldr 是一行一行提交表数据。
PPIMARY_CONFLICT 用于设置主键冲突的处理方式。可选参数,不设置此参数时主键 冲突报错,设置时不报错,可指定对主键冲突的数据进行不同的处理。
    IGNORE :不覆盖主键冲突行数据。
    OVERWRITE :覆盖主键冲突行数据,删除原表有冲突的行。
    OVERWRITE2 :覆盖主键冲突行数据,更新原表有冲突的行。
TABLE_FIRST 用于控制是否强制先导入表对象。
N :正常导入。顺序为: 1. 没有依赖的对象(除了表之外的数据库对象); 2. 有依赖的class;3.表;4.依赖对象。
Y :强制先导入表。顺序为: 1. 表; 2. 没有依赖的对象(除了表之外的数据库对象);3.有依赖的 class;4.依赖对象。
SHOW_SERVER_INFO 用于控制是否显示服务器信息,缺省N。
HELP 即可查看帮助信息。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值