oracle数据泵数据备份与恢复

第一部分:导出工作

第一步:登录数据库服务 sqlplus username/password@实例名称

第二步:选择一个目录或者创建一个目录,命令是create or replace directory ××× as '新建的真实目录名称(只需写到你想创建的这个目录的上级目录即可)';

a.选择一个目录:select * from dba_directories;

OWNER			       DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS			       ORACLE_OCM_CONFIG_DIR
/opt/oracle/app/product/11.2.0/dbhome_1/ccr/state

SYS			       DATA_PUMP_DIR
/opt/oracle/app/admin/orcl/dpdump/

SYS			       EXPDP_DIR
/expdp


OWNER			       DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS			       XMLDIR
/ade/b/2125410156/oracle/rdbms/xml

SYS			       TEST_DIR
/opt/oracle/app/admin/orcl/dpdump/

SYS			       DATA
/expdp


6 rows selected.

我选择用TEST_DIR作为我们备份目录,其实际地址为/opt/oracle/app/admin/orcl/dpdump/

第三步:将读写权限授权给数据库其他的用户,例如test用户
grant read,write on directory TEST_DIR to test;

第四步:退出sqlplus,执行导出命令:

expdp username/password@实例名称 directory=TEST_DIR dumpfile=×××.DMP logfile=test.log schemas=test

其中username/password@实例名称是用户信息和数据库名称,×××.dmp是存放在TEST_DIR目录下的备份文件名称,可以自己取名,schames则是代表用户名称,这条语句就是讲test这个用户下数据库进行导出.

 

第二部分:导入工作

首先我们要确定是因为什么而导入。①创建了一个新用户,需要将原来的用户的数据导入到这个用户中。②某一个用户的数据收到了损坏,需要恢复到之前的状态。

对于①:

第一步:创建一个新用户

第二步:创建一个虚拟目录,步骤参考第一部分的第一步.

第三步:将这个目录的读写权限赋给这个新用户,并退出sqlplus

第四步:将原来备份好的文件,放到这个新创建的虚拟目录中(移动时使用cp或者mv命令,此时需要用到这个虚拟目录对应的实际目录,实际目录怎么找,参考第一部分的第二步的a步骤)

第五步:执行命令 impdp 新用户名/密码@orcl directory=××× dumpfile=×××.DMP logfile=test_11 remap_schema=原来的用户:新用户

注解:这里的ditrectory是指你新建的虚拟目录,dumpfile则是你cp或者mv过来的备份文件,remap_schema后面则是将原来的用户映射到新用户上。

对于②:

由于目录不需要创建,也不需要重新授权,直接执行命令

impdp 新用户名/密码@orcl directory=××× dumpfile=×××.DMP logfile=test_11 remap_schema=原来的用户:原来的用户

 

你可能感兴趣的:(Oracle)