场景需求:新上线的HR模块,由于程序原因,数据需要回滚至2018年11月19日凌晨。

思路:

1)克隆数据库的虚拟化环境(VMware云环境,使用vmware的克隆技术)

2)RMAN:基于时间点的恢复

3)导出hr模块的数据。

4)导入数据至原始数据库中。


------------------------------------环境的pfile创建---------------------------

create pfile='/home/oracle/temp_init.ora' from spfile='/u01/app/product/11.2.0/db_1/dbs/initoradb.ora';//原始数据库的pfile文件

startup mount pfile='/home/oracle/temp_init.ora'//目标数据库的pfile文件(来源为原始数据库),以mount方式启动数据库。

startup pfile='/home/oracle/temp_init.ora'//正常启动数据库

--------------------------------------------------------------------------------------

create pfile='/home/oracle/temp_init.ora' from spfile;  //spfile写入pfile

create spfile from pfile='/home/oracle/temp_init.ora'   //pfile写入spfile


*.RMAN基于时间点的恢复


RMAN> run{
2> shutdown immediate;
3> startup mount;
4> set until time "to_date('20181119 05:09:53','yyyymmdd hh24:mi:ss')";
5> restore database;
6> recover database;
7> }

RMAN> ALTER DATABASE OPEN RESETLOGS;


*.expdp hr用户导出

grant read,write on directory DMPPATH to hr;

expdp hr/hr173211  dumpfile=hr_20181121.dmp logfile=hr_20181121.log directory=dmppath   schemas=hr


*.impdp hr用户导入

impdp hr/hr173211  directory=dmppath dumpfile=hr_20181121.dmp TABLE_EXISTS_ACTION=REPLACE logfile=hr_20181121_2131.log

12-23 10:01