场景需求:新上线的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