最近有很多人遇到关于ORACLE数据库,dmp文件恢复的问题。
首先我先说一下导入导出:
1、强调一下目标库,首先目标库设置成为非归档模式,nologgong模式更好。(这个操作需要停库)
2、导入的时候可以先将索引和约束去掉(disable)(index , constraint , trigger 等, drop或者disable掉所有的index以及相关的pk)如何去掉这个我就不具体说了
http://www.cnblogs.com/chinhr/archive/2012/11/26/2788748.html
3、imp命令参数 :
(1) 、commit=y 这个是插入并提交,频繁提交会影响数据库效率,在回滚足够大的情况下可以不加
(2)、ignore=y/n 该参数表示忽略创建错误,并继续执行
(3)、full 是否完全导入
4、导入时候很多人遇到问题就是,用户下的表存在关系,索引,约束等原因导致Imp失败。不妨试一试expdp/impdp
使用场景:
1 跨系统的数据库
2 跨版本的数据库之间
1.创建用户
Create user xxx identified by xxxxx
Grant dba to xxx
Conn xxx/xxxxx
2为用户创建表空间/将用户指定到现有表空间
sql>create tablespace xxxs logging datafile ‘E:/app/Administrator/oradata/orcl/xxxs.dbf’ size 500M autoextend on next 50M maxsize 2048M extent management local;
Sql>alter user xxx default tablespace xxxs
3创建目录
Create directory MY_DIR as ‘绝对路径’;
该路径用来存放dmp文件
4、授权
Grant read,write on directory MY_DIR to xxx;
5数据泵导出
Sql>expdp username/passwd@orcl directory=MY_DIR dumpfile=exp.dmp schemas=username
[full=n]
6.sql>impdp xxx/xxxx@orcl directory=MY_DIR dumpfile=exp.dmp remap_schema=username:xxx remap_tablespace=xxx:xxx full=y
注释:remap_schema=原数据库用户名:导入的用户名
remap_tablespace同上