今天来了个Job。应用系统要升级,如果升级失败,要能够切换回去。
这个任务的实质是基于时间点的恢复问题:
前期准备:停库、备份(略)
停库的本质是怕有应用连进来,备份是为了基于时间点做最新的恢复。
开始升级:(略)
恢复过程:(重点)
(1)、数据库启动到mount状态,如果是集群环境,要全部这样操作,或者确认没有数据库状态为Open的节点。
(2)恢复代码如下:
RMAN> run {
2> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
3> set until time ='2020-05-12 14:49:19';
4> restore database;
5> recover database;
6> }
这里是基于时间点的恢复,如果不知道时间点,可在停库前查一下当前scn号。
(3)不完全恢复打开数据库:alter database open resetlogs;