这篇文章主要为大家展示了“如何使用RMAN对CDB执行闪回数据库操作”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何使用RMAN对CDB执行闪回数据库操作”这篇文章吧。

对CDB执行闪回数据库与对non-CDB执行闪回数据库操作是类似的,具体操作步骤如下:
1.使用SQL*Plus连接到目标数据库来判断闪回操作的的目标SCN,还原点或时间点

SQL>SELECTOLDEST_FLASHBACK_SCN,OLDEST_FLASHBACK_TIMEFROMV$FLASHBACK_DATABASE_LOG;OLDEST_FLASHBACK_SCNOLDEST_FLASH--------------------------------509011317-DEC-17SQL>SELECTCURRENT_SCNFROMV$DATABASE;CURRENT_SCN-----------6003920

2.删除表t1中的数据

SQL>selectcount(*)fromt1;COUNT(*)----------39SQL>deletefromt1;39rowsdeleted.SQL>commit;Commitcomplete.

3.关闭数据库,并确保没有任何实例打开数据库,然后启动到mount状态

SQL>shutdownimmediateDatabaseclosed.Databasedismounted.ORACLEinstanceshutdown.SQL>startupmountORACLEinstancestarted.TotalSystemGlobalArea6442450944bytesFixedSize8807168bytesVariableSize1895828736bytesDatabaseBuffers4529848320bytesRedoBuffers7966720bytesDatabasemounted.

4.运行flashback database命令将整个CDB闪回到指定的时间点

SQL>flashbackdatabasetoscn6003920;Flashbackcomplete.

5.在SQL*Plus命令窗口中将CDB设置为只读状态

SQL>alterdatabaseopenreadonly;Databasealtered.

6.如果闪回操作后满足你所要求的结果,那么可以执行以下两个相互排斥的选项:
.使用resetlogs选项将数据库打开。如果当前数据库为只读状态,那么使用SQL*Plus执行以下命令:

shutdownimmediatestartupmountalterdatabaseopenresetlogs

.使用Oracle Data Pump导出你所需要的对象,然后使用RMAN来恢复数据库到当前时间,通过对数据库重新应用重做日志中的所有改变来将
数据库恢复到当前时间点从而撤消闪回数据库所做的改变。

RMAN>recoverdatabase;Startingrecoverat18-DEC-17allocatedchannel:ORA_DISK_1channelORA_DISK_1:SID=11instance=jy1devicetype=DISKstartingmediarecoverymediarecoverycomplete,elapsedtime:00:00:02Finishedrecoverat18-DEC-17Mediarecoverycomplete.SQL>alterdatabaseopen;Databasealtered.SQL>alterpluggabledatabaseallopenreadwrite;Pluggabledatabasealtered.

以上是“如何使用RMAN对CDB执行闪回数据库操作”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!