Oracle数据库的备份与恢复(expdp与impdp)

2014-11-24 17:12:13 · 作者: · 浏览: 0

网上的资料都很零碎,而且大部分都不能完成要求的功能,所以做了些整理与完善


准备工作


1 在环境变量中队bin目录进行配置。默认情况下,安装Oracle数据库时,将自动配置相应的环境变量,


例如D:/oracle/product/10.2.0/db_1/BIN


2 在oracle安装路径的bin文件夹中,确定expdp.exe和impdp.exe文件的存在。


3 创建一个外部目录。


data pump要求为将要创建和读取的数据文件和日志文件创建目录,用来指向


使用的外部目录。在oracle中创建目录对象时,可以使用 create directory


语句。


【实例】


1,检查,高级环境变量-pathpath里面有无bin目录


2,检查expdp.exe、impdp.exe文件是否存在。


3,建立目录


c:/> sqlplus /nolog
sql> conn sys/sys as sysdba
sql> create directory mypump as 'd:/app/temp';
sql> grant read, write on directory mypump to scot


实现数据导出


【实例】


1,表模式导出


expdp scott/scott_2009 directory=mypumpdumpfile=expdptab.dmp tables=dept,emp


(select * from dba_tablespaces; altertablespace testspace online;)


2,schema模式导出


(ORA-39083 这个错误的原因是出在用户的权限上,而且是在导出的时候在expdp之前执行 grant EXP_FULL_DATABASE to scott;)


expdp system/system directory=mypumpdumpfile=expdp.dmp schemas=scott nologfile=y


3,表空间数据导出


expdp system/system directory=mypumpdumpfile=expdpspace.dmp tablespaces=EPISCMCC_DTS


4,全库模式导出


expdpsystem/system directory=mypump dumpfile=expdp.dmp full=y


实现数据导入


1,表模式导入


impdpscott/scott_2009 directory=mypump dumpfile=expdptab.dmp tables=dept,emp


2,schema模式导入


impdpsystem/system directory=mypump dumpfile=expdp.dmp schemas=scott


3,表空间数据导入


impdp system/tiger directory=mypump dumpfile=expdspaces.dmp remap_tablespace=EPISCMCC_DTS:EPISCMCC_DTS table_exists_action=replace


4,全库模式导入


impdpsystem/system directory=mypump dumpfile=expdp.dmp full=y table_exists_action=replace


其中:在表空间导入与全库导入的时候要事先创建表空间与相应的表空间下的用户具体步骤如下:


导入到数据库之前,要在新数据库创建相应的表空间及用户


其中源数据库中的表空间为EPICMCC_DTS,该表空间下的用户为EPICMCC


/*创建临时表空间*/
create temporary tablespace EPISCMCC_TEMP
tempfile 'C:\app\z002w00r-e01\oradata\orcl\EPISCMCC_TEMP.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local


/*创建表空间*/
create tablespace EPISCMCC_DTS
logging
datafile 'C:\app\z002w00r-e01\oradata\orcl\EPISCMCC_DTS.dbf'
size 50m
autoextend on
next 50m maxsize 20480m
extent management local


/*创建用户指定表空间*/
create user EPISCMCC identified by tiger
default tablespace EPISCMCC_DTS
temporary tablespace EPISCMCC_TEMP


/*给用户授权*/
grant connect,resource,dba to EPISCMCC


----------------------------华丽丽的分割线----------------------------