天天看點

無備份恢複各種場景的處理

1.恢複密碼檔案

orapwd file=$ORACLE_HOME/dbs/orapwocp password=oracle force=y ignorecase=y;

--注:普通使用者的密碼大小寫是否區分由初始參數sec_case_sensitive_logon,不歸密碼檔案處理

2.恢複參數檔案

找alert_sid.log日志

3.無備份的控制檔案

*場景1:線上日志無損的情況下的重建

rm -rf control*           

shutdown abort;

startup nomount;           

CREATE CONTROLFILE REUSE DATABASE "BXDB" NORESETLOGS...

reocver database;

alter database open;

ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/bxdb/temp01.dbf' reuse;

*場景2:線上日志損壞的情況下的重建

shutdown immediate;       --注這裡要正常關閉資料庫,否則會要求system做恢複???
   rm -rf control*
   rm -rf  redo*
   startup nomount;
   CREATE CONTROLFILE REUSE DATABASE "BXDB" RESETLOGS...
   recover database until cancel using  BACKUP CONTROLFILE;--RMAN>recover database until sequence 2;
   alter database open resetlogs;
   ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/bxdb/temp01.dbf' reuse;           

*場景3:具有隻讀資料檔案情況下的重建

startup nomount;
   CREATE CONTROLFILE REUSE DATABASE "BXDB" NORESETLOGS...
   recover database;    --recover database using backup controlfile;
   alter database open; --alter database open resetlogs;
   alter database rename file '/u01/app/oracle/product/11g/dbs/MISSING00005' to '/u01/app/oracle/oradata/bxdb/tp2.dbf';
   alter tablespace tp12 online; --不能設資料檔案線上(alter database datafile 7;)
   ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/app/oracle/oradata/ocp/temp01.dbf' reuse;           

*場景4:使用控制檔案快照恢複

cp /u01/app/oracle/product/11g/dbs/snapcf_ocp.f /u01/app/oracle/oradata/ocp/control01.ctl
  cp /u01/app/oracle/product/11g/dbs/snapcf_ocp.f /u01/app/oracle/oradata/ocp/control02.ctl
  cp /u01/app/oracle/product/11g/dbs/snapcf_ocp.f /u01/app/oracle/oradata/ocp/control03.ctl
  startup mount;
  recover database using backup controlfile; --RMAN>recover database;
  alter database open resetlogs;


           

4.恢複資料檔案

rm -rf tp5.dbf;

alter database datafile 8 offline;

alter database create datafile '/u01/app/oracle/oradata/ocp/tp12.dbf';

select * from t20; ---報錯沒找到檔案

recover datafile 8;

alter database datafile 8 online;

5.恢複臨時檔案

alter tablesapce temp add tempfile '/u01/app/oracle/oradata/oca/temp02.dbf' size 20M autoextend on;

alter tablesapce temp drop tempfile '/u01/app/oracle/oradata/oca/temp01.dbf';

6.恢複線上重做日志

*場景1:每個日志組有兩個線上日志成員,1号組是其中一個redo01B.log損壞了

alter database drop logfile member '/u01/app/oracle/oradata/oca/redo01B.log';
alter database add  logfile member '/u01/app/oracle/oradata/oca/redo01B.log' to group 1;           

*場景2:每個日志組有兩個線上日志成員,1号組的所有日志(redo01A.log和redo01B.log)損壞了

alter database clear logfile group 1;
 alter database clear unarchived logfile group 1;           

*場景3:所有日志組全部損壞了

rm -rf redo*
 shutdown immediate;
 startup mount;
 recover database until cancel;
 alter database open resetlogs;