dexp/dimp 工具名称有两种写法 dexp/dimp 和 dexpdp/dimpdp,两者语法完全相同。
唯一的区别在于,dexp/dimp 导出/导入的文件必须存放在客户端,dexpdp/dimpdp 导出/导入的文件必须存放在服务器端。
为了避免字符集焦虑,建议将操作终端(xshell)和操作系统($LANG)的字符集均设置成数据库的字符集(通常为UTF8)。
逻辑导出和逻辑导入数据库对象分为四种级别:数据库级、用户级、模式级和表级。四种级别独立互斥,不能同时存在。
- 数据库级(full=y):导出或导入整个数据库中的所有对象。
- 用户级(owner=XXX):导出或导入一个或多个用户所拥有的所有对象。
- 模式级(schemas=XXX):导出或导入一个或多个模式下的所有对象。
- 表级(tables=XX):导出或导入一个或多个指定的表或表分区。
$ dexp userid=sysdba/Dameng123:5236 directory=/dmdb/expimp file=full.dmp full=y log=dexp_`date +"%F-%H-%M"`.log
$ dimp userid=sysdba/Dameng123:5238 directory=expimp file=full.dmp full=y log=dimp_`date +"%F-%H-%M"`.log
老版本使用直接路径,新版已经不支持直接路径了,需要使用目录对象。
SQL> create directory expimp as '/orabak';
如果密码有特殊字符,可以用如下的写法:
userid='sysdba/"特殊密码"':25236
也支持 REMAP,示例如下:
REMAP_SCHEMA=DMHR:DMTEST
remap_tablespace=DEMOTBS:DEMO_TBS
也可以使用 manager 来操作,要操作某个对象,就在某个对象上右击即可。