Oracle Database 11g 的 exp 与 imp 命令的用法
Oracle 数据库导入与导出命令的简单使用
简介
exp
即 export,导出。
imp
即 import,导入。
简单使用
命令与参数简析
imp
orexp
导入导出命令
test/test
导出使用的用户/密码
@orcl
需要导出的库
buffer=64000
数据缓存区,默认 4096。越大导出速度越快,具体视计算机物理内存大小而定,据网上看到的资料,exp
>64000,imp
>102400,单位 Byte(字节)
FILE=C:\test\test.dmp
导入导出的路径及文件名
imp
命令的使用完全导入
IMP test/test@orcl BUFFER=64000 FILE=C:\test\test.dmp FULL=Y
使用该方式,会完全导入包含在.dmp
文件的数据,若是多用户的,那么将导入所有的用户。若是只需要其中一个用户的数据,使用下面的语句。限定用户
IMP test/test@orcl BUFFER=64000 FILE=C:\test\test.dmp FROMUSER=test TOUSER=test
使用该方式,需要导出的用户FROMUSER
和被导入的用户TOUSER
。如果导入文件是多用户的,就可以只导入一个用户的数据。限定用户和表
IMP test/test@orcl BUFFER=64000 FILE=C:\test\test.dmp FROMUSER=test TABLES=(test_table)
使用该方式,将会只导入所属用户的某一表,比如该例子中,就是属于test
用户的test_table
表。括号内可以写入多个表名,
分割。
exp
命令的使用- 完全导出
EXP sys/sys@orcl BUFFER=64000 FILE=C:\test\test.dmp FULL=Y
导出整个orcl
库,需要特殊权限 - 限定用户
EXP test/test@orcl BUFFER=64000 FILE=C:\test\test.dmp FROMUSER=test
只导出属于test
用户的数据 - 限定用户和表
EXP test/test@orcl BUFFER=64000 FILE=C:\test\test.dmp FROMUSER=test TABLES=(test_table)
只导出属于test
用户的test_table
表。括号内可以写入多个表名,
分割
- 完全导出
Tips
导出时会报
EXP-00091
的错误信息,该错误的原因是因为客户端字符集或 NCHARSET 参数和服务器端不一致导致一些统计信息不可用。无特殊需要,可以不用在意,确保导入和导出的服务器端的字符集一致即可。如果需要完整信息,使用以下方式修改字符集:select userenv('language') from dual;
查询服务器的字符集AMERICAN_AMERICA.AL32UTF8
为服务器的字符集export NLS_LANG = AMERICAN_AMERICA.AL32UTF8
设置导出客户端的字符集- 设置完成后再执行导出命令即可。
1
2
3
4
5
6
7SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
-------------------------------------------------------
AMERICAN_AMERICA.AL32UTF8
$ export NLS_LANG = AMERICAN_AMERICA.AL32UTF8