环境:window 2003;
一、ORACLE 数据库导出-EXPDP
1、运行--CMD进入dos模式
2、C:\>set
ORACLE_SID=kingdee
3、C:\>Set
NLS_LANG=american_america.utf8 (WINDOWS)
export
NLS_LANG=american_america.utf8(Linux/Unix)
注释:如果没有第三步,则导入/导出的日志查看显示不全,这是当前环境字符集的问题。不过设置后日志全部显示为英文。
4、C:\>sqlplus
5、SQL>Create or replace directory easbak as
‘d:\zxc’;
6、SQL>Grant read,write on directory easbak to
oadb; 备注:提示需要更换用户后才可授权。
7、exit
8、C:\>expdped oadb/oadb
directory=easbak dumpfile=oa.dmp SCHEMAS=oadb PARALLEL=30
logfile=oa.log
注释:Expdp 导出用户名/密码
directory=备份目录名 dumpfile=备份文件名.dmp SCHEMAS(schema
为数据库对象的集合,schema里面包含了各种对象如:tables,views,sequences,stored
procedures,synonyms,indexes,clusters,and database
links)=导出的用户名 PARALLEL=N(任意数字,越大速度越快,太大会报错,所以适当最好)
logfile(日志文件)=符合操作系统文件名规范的任意名称.log
备注:Schema与Tablespace的区别schema
是数据库对象的逻辑归属和分类,而 tablespace
是数据库对象的物理和实际存放位置。在导出的时候建议导出schemas,否则按照表空间导出方式只有数据,而相应的视图,自定义函数等都没有,影响导入的数据。
看到上图界面后:恭喜导出成功!
环境:window 2003;所使用的表空间已经建好,但未创建用户和角色
二、ORACLE 数据库导入-IMPDP
1、运行--CMD进入dos模式
2、C:\>set
ORACLE_SID=kingdee
3、C:\>Set
NLS_LANG=american_america.utf8 (WINDOWS)
export
NLS_LANG=american_america.utf8(Linux/Unix)
4、c:\>sqlplus system/密码@实例名
5、SQL>Create or replace directory easbak as
‘e:\zxc’;
6、SQL>Grant read,write on directory easbak to
system; 备注:提示需要更换用户后才可授权。
7、exit
8、Impdp system/passwd schemas=oadb directory=easbak
dumpfile=oa.dmp logfile=oa.log parallel=4
备注:parallel=4数值越大导入速度越快,但太大,会在导入将要结束的时候出现如下错误:
出现上面这种报错后,去掉parallel=4后系统会默认parallel=1,重复导入后,就一切正常了。
环境:window
2003、如果所使用的表空间已经建好,用户所对应的表空间、临时表空间和角色已经创建完毕。第8步也可以这样写:
impdp 用户名/密码
directory=easbak dumpfile=oa.DMP
REMAP_SCHEMA=oadb:oadb
REMAP_DATAFILE=EASOA_DATA:EASOA_DATA table_exists_action=replace parallel=4
注释:impdp 新建表空间访问 用户名/新建表空间访问用户密码
directory=备份目录名
dumpfile=备份完成的备份文件名REMAP_SCHEMA=导出的用户名:导入的用户名
REMAP_DATAFILE=导出的表空间名称:导入的表空间名称
table_exists_action=replace表示若是有存在表,采取的策略是删除重建后在导入数据
parallel=30
使用REMAP_DATAFILE的目的是解决在第一次创建完成表空间导入时提示表空间不存在的问题。
新春
2011年9月21日