吾生有涯,而知无涯,适当止学.循序渐进,步步提升 talk is cheap, show me the code.
分类: oracle
2018-12-11 22:35:34
场景需求:新上线的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