Oracle 导入导出工具


Oracle 11g R2明确声明不再支持export和import
淘汰的原因:导入导出速度慢
替代品:数据泵,速度提升5倍,但是不能远程导入导出,只能在服务端
数据泵工具expdp和impdp

exp工具导出数据库文件成.DMP后缀的二进制文件

.dmp文件平台无关性

exp导出前
1.运行catexp.sql或者catalog.sql脚本(只要求手工创建实例,用dbca创建的数据库实例不需要)
2.确保有充足的磁盘空间
3.确认有所需的权限:导本用户需要create session权限,导其他用户需要EXP_FULL_DATABASE角色

exp xxwz/xxwz@XXWZ file=xxwz.dmp owner=xxwz log=xxwz.log

调用方式
命令行方式
交互式方式
参数文件方式
OEM

命令行方式:
导出模式:
表模式:
exp hr/hr tables=employees,departments,%A%,emp:emp1 rows=yes file=exp1.dmp //%A%通配符,导出所有含A的表;emp:emp1导出分区表emp的分区emp.

用户模式:
exp sys/sys owner=hr direct=y file=expdat.dmp//用直接模式导出hr用户的数据

表空间模式:
exp \'sys/sys as sysdba\' transport_tablespace=y tablespaces=xxwz_data log=xxwz.log
//导出xxwz表空间的数据字典信息,不导数据

全数据库模式
exp sys/sys FULL=y file=d:\xxwz.dmp grants=y rows=y //GRANTS为导出权限,rows为导出数据


交互式
exp hr/hr

参数文件方式
写一个参数文件exp.txt
file=xxwz.dmp
log=xxwz.log
owner=xxwz
rows=y
然后执行exp命令
exp xxwz/xxwz@XXWZ parfile=d:\exp.txt

导入导出字符集转换
源数据库与exp字符集转换、exp字符集与imp字符集转换、imp字符集与目标数据库字符集转换
如果事先设置好这么字符集就可以避免转换

查看数据库字符集信息
select * from nls_database_parameters;
查询到的参数组合成字符集:NLS_LANGUAGE.NLS_TERRITORY.NLS_CHARACTERSET
查看exp和imp的字符集可以查看注册表的本地机器-软件-oracle-nls_lang或者cmd>chcp再查询代码对应的字符集。

设置exp和imp的字符集
cmd>set NLS_LANG=American_America.AL32UTF8


查看dmp文件的字符集
它的第二字节和第三字节为字符集
或者
imp xxwz/xxwz@XXWZ show=y file=d:\xxwz.dmp //不导入只是看看

导出方式:常规路径模式和直接路径模式(避开检查,速度提高一倍)
特点:
直接模式不能交互式
客户端和服务端字符集设置一样(不设置一样会有warning)
buffer参数没作用。
命令格式:在命令行加上 direct=y

imp命令
imp sys/sys file=d:\xxwz.dmp fromuser=xxwz touser=xxwz1 table=*;

导入数据顺序
创建表
导入数据
创建B树索引
导入触发器
完整性约束
bitmap、函数、domain索引

相关内容