注册
dexp 和 dimp逻辑导入导出常用语句总结
技术分享/ 文章详情 /

dexp 和 dimp逻辑导入导出常用语句总结

奥特曼打小怪兽 2024/08/02 604 0 0

dexp 和 dimp逻辑导入导出常用语句总结

说明:
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。

1密码中的特殊字符

1.1WINDOWS 系统

关键字符,dexp 和 dimp 要求对连接串的特殊字符需要使用双引号括起来"aaaa/aaaa",操作系统的要求需要再在最外加双引号和转义""“aaaa/aaaa”""。例如:用户名为 user01,密码为 aaaa/aaaa,那么连接串要写成:dexp user01/""“aaaa/aaaa”""
空格,需要使用双引号括起来作为一个整体(这是操作系统的要求)。例如:用户名为 user01,密码为 aaaa aaaa ,那么连接串要写成:dexp user01/“aaaa aaaa”
双引号,dexp 和 dimp 要求对双引号需要使用双引号括起来,同时双引号需要转义"aaaa"“aaaa”;操作系统要求再对双引号转义和最外层加双引号""“aaaa”""“aaaa”""。例如:用户名为 user01,密码为 aaaa"aaaa ,那么连接串要写成:dexp user01/""“aaaa”""“aaaa”""。

1.2LINUX 系统

LINUX 环境下,密码中的特殊字符处理过程既要考虑操作系统的要求,又要考虑 dexp 和 dimp 的要求。

1.2.1操作系统的要求

bash 的引号设计为:在单引号中,所有的特殊字符都失去其特殊含义;在双引号中,特殊字符包括:美元符()、反引号(`)、转义符()、感叹号(!)。 如果密码中没有单引号的,应该都只有外面加单引号就可以解决了;如果密码只有单引号,那么可以将单引号用双引号括起来;如果既有单引号又有美元符()、反引号(`)、转义符()、感叹号(!)四个特殊字符,那么在特殊字符之前全部加\转义就好了。例如:
‘aaaa\aaaa’ 传给 dexp 和 dimp 为 aaaa\aaaa。
“aaaa’aaaa” 传给 dexp 和 dimp 为 aaaa’aaaa。
“aaa’$aaaa” 传给 dexp 和 dimp 为 aaa’$aaaa。

1.2.2 dexp和dimp 对关键字和双引号的要求

关键字符,dexp 和 dimp 要求对连接串的特殊字符需要使用双引号括起来。例如:密码为 aaaa\aaaa,使用双引号括起来"aaaa\aaaa",因为此密码中不含有单引号,根据操作系统的要求直接在最外面加单引号。例如:用户名为 user01,密码为 aaaa/aaaa,那么连接串要写成:./dexp user01/’“aaaa/aaaa”’。

双引号,dexp 和 dimp 要求对双引号需要使用双引号括起来,同时双引号需要转义。例如:密码为 aaa"\aaaa,那么根据 dexp 和 dimp 的要求加双引号同时转义为"aaa""\aaaa",因为没有单引号,根据操作系统的要求直接加单引号。例如:用户名为 user01,密码为 aaa"\aaaa,那么连接串要写成:./dexp user01/’“aaa”"\aaaa"’。
单引号,根据操作系统的要求,只能将单引号放入双引号中。例如:用户名为 user01,密码为 aaaa’aaaa,那么连接串要写成:./dexp user01/“aaaa’aaaa”。

单引号 + 操作系统下的特殊字符,根据操作系统的要求,因为单引号只能放在双引号内,同时双引号中还有一些特殊字符不能被识别需要加反斜杠转义。例如: 用户名为 user01,密码为 aaa’aaaa,使用双引号括起来,同时对 加反斜杠转义。那么连接串要写成:./dexp user01/“aaa’$aaaa”。
单引号 + 双引号,根据操作系统的要求,单引号需要放在双引号中,在双引号中表示双引号则使用反斜杠转义双引号。例如: 用户名为 user01,密码为 aaa"'aaaa,根据 dexp 和 dimp 的要求双引号作为特殊字符,需要使用双引号再括起来,同时使用双引号对双引号转义"aaa""'aaaa";同时考虑操作系统的要求,因为含有单引号,只能将整个密码放入双引号中,同时对双引号使用反斜杠转义,那么连接串要写成:./dexp user01/"“aaa”"'aaaa""。
2.如何转义双引号
1.dexp 和 dimp 要求使用双引号对双引号内的双引号转义。
2.WINDOWS 命令行,使用双引号或者反斜杠对双引号内的双引号转义。
3.LINUX 命令行,使用反斜杠对双引号内的双引号转义。

2OWNER、SCHEMAS、TABLES 的书写规定

对于输入的用户名、模式名和表名,工具都会自动转换为大写。例如:输入的命令 TABLES=t1,那么实际处理的表是 T1。
对于小写的用户名、模式名和表名,为了不转换为大写,需要转义。如果用户名、模式名和表名中含有特殊字符(双引号、单引号、空格、逗号等),则也需要进行转义。具体的转义规则请参考 对于密码中特殊字符书写规范的介绍。

3Dm示例数据库

查看附件

4导出

4.1命令帮助

PS D:\dmdbms\bin> .\dexp.exe help
dexp V8
version: 03134284132-20231226-213242-20081
格式: dexp.exe  KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)

例程: dexp.exe  SYSDBA/SYSDBA GRANTS=Y TABLES=(SYSDBA.TAB1,SYSDBA.TAB2,SYSDBA.TAB3)

USERID 必须是命令行中的第一个参数

关键字              说明(默认值)
--------------------------------------------------------------------------------
USERID               用户名/口令 格式:{<username>[/<password>] | /}[@<connect_identifier>][<option>] [<os_auth>]
                     <connect_identifier> : [<svc_name> | host[:port] | <unixsocket_file>]
                     <option> : #{<exetend_option>=<value>[,<extend_option>=<value>]...}
                               --此行外层{}是为了封装参数之用,书写时需要保留
                     <os_auth> : AS {SYSDBA|SYSSSO|SYSAUDITOR|USERS|AUTO}
FILE                 导出文件 (dexp.dmp)
DIRECTORY            导出文件所在目录
FULL                 整库导出 (N)
OWNER                以用户方式导出 格式 (user1,user2,...)
SCHEMAS              以模式方式导出 格式 (schema1,schema2,...)
TABLES               以表方式导出 格式 (table1,table2,...)
FUZZY_MATCH          TABLES选项是否支持模糊匹配 (N)
QUERY                用于导出表的子集的select 子句
PARALLEL             用于指定导出的过程中所使用的线程数目(1-100, 默认16)
TABLE_PARALLEL       用于指定导出的过程中表内的并发线程数目,MPP模式下会转换成单线程(1-50, 默认16)
TABLE_POOL           用于指定表的缓冲区个数(1-20, 默认20)
EXCLUDE              忽略指定的对象
                       格式 EXCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS,VIEWS,PROCEDURE,PACKAGE,SEQUENCE) or
                            EXCLUDE=TYPE:name1,name2 or
                            EXCLUDE=TYPE:cond,TYPE:cond
                             TYPE:SCHEMAS,TABLES,VIEWS,PROCEDURE,PACKAGE,SEQUENCE
INCLUDE              包含指定的对象
                       格式 INCLUDE=(CONSTRAINTS,INDEXES,ROWS,TRIGGERS,GRANTS,VIEWS,PROCEDURE,PACKAGE,SEQUENCE) or
                            INCLUDE=TYPE:name1,name2 or
                            INCLUDE=TYPE:cond,TYPE:cond
                             TYPE:SCHEMAS,TABLES,VIEWS,PROCEDURE,PACKAGE,SEQUENCE
CONSTRAINTS          导出约束 (Y)
TABLESPACE           导出对象带有表空间 (N)
GRANTS               导出权限 (Y)
INDEXES              导出索引 (Y)
TRIGGERS             导出触发器 (Y)
ROWS                 导出数据行 (Y)
LOG                  屏幕输出的日志文件
NOLOGFILE            不使用日志文件(N)
NOLOG                屏幕上不显示日志信息(N)
LOG_WRITE            日志信息实时写入文件: 是(Y),否(N)
DUMMY                交互信息处理: 打印(P), 所有交互都按YES处理(Y),NO(N)
PARFILE              参数文件名
FEEDBACK             每 x 行显示进度 (0)
COMPRESS             导出数据是否压缩 (N)
COMPRESS_LEVEL       导出数据压缩等级 (0-9 默认1)
ENCRYPT              导出数据是否加密 (N)
ENCRYPT_PASSWORD     导出数据的加密密钥
ENCRYPT_NAME         加密算法的名称
FILESIZE             每个转储文件的最大大小
FILENUM              一个模板可以生成的文件数
DROP                 导出后删除原表,但不级联删除 (N)
DESCRIBE             导出数据文件的描述信息,记录在数据文件中
COL_DEFAULT_SEPARATE 是否单独导出列默认值 (Y)
WITH_UR              是否允许脏读 (N)
SIMPLE_LOG           是否使用简要日志 (N)
FLASHBACK_SCN        用于重置会话快照的LSN
FLASHBACK_TIME       用于查找最接近的相应LSN值的时间
CTRL_INFO            控制信息(1:控制分区表约束在表定义导出,默认0)
HELP                 打印帮助信息

4.2数据库级

 .\dexp.exe userid=SYSDBA/shuangshuang file=db_all_%U.dmp log=db_all.log directory=D:\linshi full=y PARALLEL=2 TABLE_PARALLEL=2 COMPRESS=Y COMPRESS_LEVEL=2

4.3用户级

.\dexp.exe userid=SYSDBA/shuangshuang file=db_all_%U.dmp log=db_all.log directory=D:\linshi owner=SYSDBA PARALLEL=2 TABLE_PARALLEL=2 COMPRESS=Y COMPRESS_LEVEL=2

4.4模式级

.\dexp.exe userid=SYSDBA/shuangshuang file=db_all_%U.dmp log=db_all.log directory=D:\linshi schemas=dmhr PARALLEL=2 TABLE_PARALLEL=2 COMPRESS=Y COMPRESS_LEVEL=2

4.5表级

TABLES=[模式名.]表名[:表分区名] [, ...]
.\dexp.exe userid=SYSDBA/shuangshuang file=db_all_%U.dmp log=db_all.log directory=D:\linshi tables=dmhr.city  PARALLEL=2 TABLE_PARALLEL=2 COMPRESS=Y COMPRESS_LEVEL=2

5导入

1.1.数据库级

.\dimp.exe userid=SYSDBA/shuangshuang@127.0.0.1:5237 full=y file=db_all_01.dmp directory=D:\linshi log=log.log parallel=2
.\dimp.exe userid=SYSDBA/shuangshuang@test full=y file=db_all_01.dmp directory=D:\linshi log=log.log parallel=2

1.2.用户级

.\dimp.exe userid=SYSDBA/shuangshuang@test owner=SCOTT_NEW file=db_all_01.dmp directory=D:\linshi log=log.log parallel=2

1.3.模式级

.\dimp.exe userid=SYSDBA/shuangshuang@test SCHEMAS=SCOTT2 file=db_all_01.dmp directory=D:\linshi log=log.log parallel=2

1.4.表级

 .\dimp.exe userid=SYSDBA/shuangshuang@test tables=SCOTT2.emp file=db_all_01.dmp directory=D:\linshi log=log.log parallel=2

附件:

SAMPLES.sql

https://eco.dameng.com/

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服