记一次rman恢复:ORA-03002,ORA-06026
1.拷贝数据到测试恢复环境:
2.rman下恢复:
set ORACLE_SID EASDBA2
rman target /
startup nomount force; (可在sqlplus下;也可以在rman 下执行)
restore controlfile from 'E:\backup\rman22\DBA_CON_C-1326376453-20200922-01.BAK';
alter database mount;
restore spfile to 'E:\orawlp\0922.ora' from 'E:\backup\rman22\20200922_EASDBA2_9489_1.ORA';
spfile恢复后,不要急着先catalog start with;改名备份文件夹,然后清理此恢复环境上所有与备份相关问题,以防之前有做过数据恢复,造成ORA-06026错误,如下图所示:
06026错误如下:
同时,警告日志显示错误如上所示。
改名文件夹为rman23;然后清理备份及归档并检查OS上归档下日志,全部清理:
crosscheck archivelog all;
crosscheck backup;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
再执行:catalog start with 'E:\backup\rman23';
然后检查还原点:
list incarnation;
reset database to incarnation 1; 确保恢复数据库为1:
crosscheck backup;
crosscheck copy;
3.执行如下(先执行):
crosscheck archivelog all;
crosscheck backup;
delete noprompt obsolete;
delete noprompt expired backup;
delete noprompt expired archivelog all;
catalog start with 'E:\backup\rman23';
list incarnation;
最后指定位置恢复:
run{
set newname for datafile 1 to 'E:\orawlp\SYSTEM01.DBF';
set newname for datafile 2 to 'E:\orawlp\SYSAUX01.DBF';
set newname for datafile 3 to 'E:\orawlp\UNDOTBS01.DBF';
set newname for datafile 4 to 'E:\orawlp\USERS01.DBF';
set newname for datafile 5 to 'E:\orawlp\DBA2_01.DBF';
set newname for datafile 6 to 'E:\orawlp\DBA2_02.DBF';
set newname for datafile 7 to 'E:\orawlp\DBA2_03.DBF';
set newname for datafile 8 to 'E:\orawlp\DBA2_04.DBF';
set newname for datafile 9 to 'E:\orawlp\DBA2_05.DBF';
set newname for datafile 10 to 'E:\orawlp\DBA2_06.DBF';
set newname for datafile 11 to 'E:\orawlp\_D_KINGDEE_STANDARD01.DBF';
set newname for datafile 12 to 'E:\orawlp\_D_BDH_STANDARD.DBF';
set newname for datafile 13 to 'E:\orawlp\_D_TEST_STANDARD';
set newname for datafile 14 to 'E:\orawlp\_D_TEST_STANDARD2';
set newname for datafile 15 to 'E:\orawlp\_D_DEMO_STANDARD.DBF';
set newname for datafile 16 to 'E:\orawlp\_D_DEMO_STANDARD02.DBF';
set newname for datafile 17 to 'E:\orawlp\_D_BDH_STANDARD02.DBF';
set newname for datafile 18 to 'E:\orawlp\_D_BDH_STANDARD03.DBF';
set newname for datafile 19 to 'E:\orawlp\_D_BDH_STANDARD04.DBF';
set newname for datafile 20 to 'E:\orawlp\_D_BDH_STANDARD05.DBF';
set newname for datafile 21 to 'E:\orawlp\_D_BDH_STANDARD06.DBF';
restore database;
switch datafile all;
}
recover database;
Report schema:
此时不要打开数据库,检查redolog文件位置(mount模式):
sqlplus / as sysdba
SQL> select
'alter database rename file ' || chr(10)
|| '''' || member || '''' || ' to ' || chr(10) || '''' || member || '''' ||';'
from v$logfile;
alter database rename file 'Y:\DATA2\REDO04.LOG' to 'E:\ORAWLP\REDO04.LOG';
alter database rename file 'Y:\DATA2\REDO01.LOG' to 'E:\ORAWLP\REDO01.LOG';
alter database rename file 'Y:\DATA2\REDO03.LOG' to 'E:\ORAWLP\REDO03.LOG';
alter database rename file 'Y:\DATA2\REDO02.LOG' to 'E:\ORAWLP\REDO02.LOG';
4.再打开数据库:
alter database open resetlogs;
按report schema进行调整temp tablespace;
alter tablespace temp add tempfile 'E:\orawlp\temp00.dbf' size 100M autoextend on maxsize 10G;
alter tablespace temp drop tempfile 'Y:\DATA2\DBA2\TEMP01.DBF';
alter tablespace _T_TEST_STANDARD drop tempfile 'Y:\TESTDATA\_T_TEST_STANDARD';
alter tablespace _T_DEMO_STANDARD add tempfile 'E:\orawlp\_T_DEMO_STANDARD.dbf' size 100M autoextend on maxsize 10G;
alter tablespace _T_DEMO_STANDARD drop tempfile 'Y:\TESTDATA\_T_DEMO_STANDARD.DBF';
已经恢复完成,参数调整,并测试开/关DB如下::
alter system set undo_retention=28800 scope=both;
到此,恢复完成。