由于测试机子上的数据有点老,金东东同事,让我从新把生产库里面的数据导入到测试库
由于pdatest 这个用户下面的数库比较大,大约有16G左右,当时怕万一误删,同时也是为了学习rman ,就执行了一下 rman level0 级备份的脚本。再执行drop user pdatest cascade,把pdatest 用户的数据全删了。
再重新导入从生关库下载下来的数据,当我还没导完时,王工就来找我,好象测试库里面的数据不对,我一下子就知道什么问题,问一下他数据多不多,他说。“一个星期的功劳都在那里,最好能帮他找回来,感激不尽、、、、、” 他可能还不知道问题出在那、、、、、
只好重新把数据导回来,我本来想把这个表空间的数据文件删了(还有其他表空间,都是测试的),再从rman 中恢复,不应用archlog,但不成功,数据库起不来,不知什么原因?
后来只能全部恢复到删除的那个时间点,才成功!
RMAN> run{
2> allocate channel ch1 type disk;
3> set until time "to_date('2010-06-13 15:44:00','YYYY-MM-DD hh24:mi:ss')";
4> restore database;
5> recover database;
6> release channel ch1;
7> }
SQL> startup open;
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
SQL> starup mount;
SQL> alter database open resetlogs;
这一次给了我一个教训,就是在删除oracle里面的数据前,一定在找人确定,还有做好备份,幸好不是生产库,否则就死定了!!!
转载于:https://blog.51cto.com/comtv/336390