一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

Oracle 不同故障的恢復方案

 憂郁_小剛 2011-05-20
  之前在Blog中對RMAN 的備份和恢復做了說明,剛看了下,在恢復這塊還有知識點遺漏了。 而且恢復這塊很重要,如果DB 真要出了什么問題,就要掌握對應(yīng)的恢復方法。 所以把DB的恢復這塊單獨拿出來說明一下。
 
RMAN 備份與恢復 實例
 
如何搭建一個數(shù)據(jù)庫服務(wù)器平臺
 
如何 搭建 RMAN 備份平臺
 
 
 
在非Catalog模式下, 備份的信息存儲在controlfile中。 所以在RMAN 備份的時候,別忘了備份控制文件。
 
1.  SPFILE丟失
startup nomount;
set dbid 3988862108;
restore spfile from autobackup;
或者通過某個文件
restore spfile from 'path/file_name'
shutdown immediate;
set dbid 3988862108;
startup;
 
2. Controlfile全部丟失
 
       控制文件做了3個冗余,很少會發(fā)生全部丟失的情況,當遇到控制文件所有都丟失,恢復需要以下步驟:
 
RMAN>set dbid 3988862108;
RMAN>startup nomount;
RMAN>restore controlfile from autobackup;
或者從文件恢復
RMAN>restore controlfile from 'file_name';
RMAN>alter database mount;
RMAN>recover database; (保證數(shù)據(jù)一致,因為控制文件里scn發(fā)生改變)
RMAN>alter database open resetlogs;
 
resetlogs命令表示一個數(shù)據(jù)庫邏輯生存期的結(jié)束和另一個數(shù)據(jù)庫邏輯生存期的開始,每次使用resetlogs命令的時候,SCN不會被重置,不過oracle會重置日志序列號,而且會重置聯(lián)機重做日志內(nèi)容. 這樣做是為了防止不完全恢復后日志序列會發(fā)生沖突(因為現(xiàn)有日志和數(shù)據(jù)文件間有了時間差)。
 
 
3.  Redo Log File損壞
       重做日志文件在數(shù)據(jù)庫中是要求最高的組件,首先其對磁盤的IO要求極高,其次一旦CURRENT組發(fā)生故障,數(shù)據(jù)庫會立即崩潰,并且100%會發(fā)生數(shù)據(jù)丟失,所以O(shè)RACLE建議至少每個組需要兩個成員,并且在數(shù)據(jù)庫運行過程中日志文件會一直被鎖定,以防不測。
 
Redo log的恢復分為兩種:CURRENT 和 非CURRENT
 
3.1  CURRENT 情況
造成redo 損壞,很多情況是與突然斷電有關(guān)。這種情況下是比較麻煩的。
 
(1)如果有歸檔和備份,可以用不完全恢復。
SQL>startup mount;
SQL>recover database until cancel; 先選擇auto,盡量恢復可以利用的歸檔日志,然后重新執(zhí)行:
SQL>recover database until cancel; 這次輸入cancel,完成不完全恢復,
用resetlogs打開數(shù)據(jù):
SQL>alter database open resetlogs; 打開數(shù)據(jù)庫
 
(2)強制恢復, 這種方法可能會導致數(shù)據(jù)不一致
sql>startup mount;
sql>alter system set "_allow_resetlogs_corruption"=true scope=spfile;
sql>recover database until cancel;
sql>alter database open resetlogs;
 
       運氣好的話,數(shù)據(jù)庫能正常打開,但是由于使用_allow_resetlogs_corruption方式打開,會造成數(shù)據(jù)的丟失,且數(shù)據(jù)庫的狀態(tài)不一致。因此,這種情況下Oracle建議通過EXP方式導出數(shù)據(jù)庫。重建新數(shù)據(jù)庫后,再導入。
 
redo 的損壞,一般還容易伴隨以下2種錯誤:ORA-600[2662](SCN有關(guān))和 ORA-600[4000](回滾段有關(guān))。
 
metalink上的兩篇文章介紹了兩種情況的處理方法:
TECH: Summary For Forcing The Database Open With `_ALLOW_RESETLOGS_CORRUPTION` with Automatic Undo Management [ID 283945.1]
 
ORA-600 [2662] Block SCN is ahead of Current SCN [ID 28929.1]
 
這兩種情況下的恢復有點復雜,回頭單獨做個測試,在補充進來。
 
 
3.2  非CURRENT 情況
       這種情況下的恢復比較簡單,因為redo log 是已經(jīng)完成歸檔或者正在歸檔。 沒有正在使用??梢酝ㄟ^v$log 查看redo log 的狀態(tài)。
 
(1)如果STATUS是INACTIVE,則表示已經(jīng)完成了歸檔,直接清除掉這個redo log即可。
 
SQL>startup mount;
SQL> alter database clear logfile group 3 ;
SQL>alter database open;
 
(2)如果STATUS 是ACTIVE ,表示正在歸檔, 此時需要使用如下語句:
SQL>startup mount;
SQL> alter database clear unarchived logfile group 3 ;
SQL>alter database open;
 
 
4. 非系統(tǒng)表空間損壞
      若出現(xiàn)介質(zhì)故障導致某表空間不可用,恢復可以在數(shù)據(jù)庫處于 open 或 mount 狀態(tài)下進行,步驟如下:
1.        將該表空間置于offline狀態(tài)
2.        修復表空間數(shù)據(jù)
3.        恢復表空間并處于一致性
4.        將表空間online
 
rman> sql 'alter tablespace dave offline';
如果文件不存在,就加immediate參數(shù)
rman> sql 'alter tablespace dave offline immediate';
rman>restore tablespace dave;
rman>recovery tablespace dave;
rman>sql 'alter tablespace dave online';
 
 
5. 數(shù)據(jù)文件損壞
       如果出現(xiàn)介質(zhì)故障導致某表空間數(shù)據(jù)文件丟失(這種情況也可以參照表空間損壞的恢復)。
恢復可以在 數(shù)據(jù)庫處于 open 或 mount 狀態(tài)下進行,只需4個步驟
1.        將該數(shù)據(jù)文件置于 offline 狀態(tài)
2.        修復數(shù)據(jù)文件(指定數(shù)據(jù)文件編號)
3.        恢復數(shù)據(jù)文件
4.        將數(shù)據(jù)文件 online
 
rman> sql 'alter datafile 8 offline ';
rman>restore datafile 8;
rman>recovery datafile 8;
rman>sql 'alter datafile 8 online';
 
 
6. 基于時間點/SCN/日志序列的不完全恢復 
       基于時間點/SCN/日志序列的不完全恢復,可以將數(shù)據(jù)庫、表空間、數(shù)據(jù)文件等恢復至恢復備份集保存時間中的任何一個時間點/SCN/日志序列,但須謹慎,操作前一定需要做好備份,具備條件的情況下最好先恢復到異機。
 
6.1 基于時間點
run{
  set until time "to_date(12/29/10 23:00:00','mm/dd/yy hh24:mi:ss')";
  restore database;
  recover database;
  alter database open resetlogs;
}
 
SQL>STARTUP NOMOUNT;
SQL>alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';
SQL> recover database until time '2010-12-29 23:19:00';
SQL>ALTER DATABASE OPEN RESETLOGS;
 
ALTER SESSION SET NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS';
SQL>startup mount;
SQL>restore database until time "to_date('2010-12-29 23:19:00','YYYY-MM-DD HH24:MI:SS')";
SQL>recover database until time "to_date('2010-12-29 23:19:00','YYYY-MM-DD HH24:MI:SS')";
SQL>alter database open resetlogs;
 
 
6.2 基于 SCN:
SQL>startup mount;
SQL>restore database until scn 10000;
SQL>recover database until scn 10000;
SQL>alter database open resetlogs;
 
6.3 基于日志序列
SQL>startup mount;
SQL>restore database until SEQUENCE 100 thread 1; //100是日志序列
SQL>recover database until SEQUENCE 100 thread 1;
SQL>alter database open resetlogs;
 
日志序列查看命令:
SQL>select sequence from v$log;
resetlogs就會把sequence 置為1
 
 
7. 非catalog下完全恢復
SQL>startup nomount;
SQL>restore controlfile from autobackup;
SQL>alter database mount;
SQL>restore database;
SQL>recover database;
SQL>alter database open resetlogs;
 
示例:
oracle ora10g> rm *;
oracle ora10g> ls;
oracle ora10g>  //數(shù)據(jù)文件,控制文件全部刪除
 
oracle ora10g> rman target /; //因為controlfile 丟失,不能夠連接到rman
oracle ora10g> sqlplus /nolog;
oracle ora10g> connect / as sysdba;
oracle ora10g> shutdown abort;
oracle ora10g> rman target /
 
rman> startup nomount;
rman> restore controlfile from autabackup;
rman> alter database mount;
rman> restore database;
rman> recover database; //online redolog 不存在
 
SQL>recover database until cancel; //當redo log丟失,數(shù)據(jù)庫在缺省的方式下,是不容許進行recover操作的,那么如何在這種情況下操作呢
SQL>create pfile from spfile;
 
vi /u01/product/10.20/dbs/initora10g.ora,在這個文件的最后一行添加
*.allow_resetlogs_corruption='TRUE'; //容許resetlog corruption
 
SQL>shutdown immediate;
SQL>startup pfile='/u01/product/10.20/dbs/initora10g.ora' mount;
SQL>alter database open resetlogs;
 
本文來自CSDN博客,轉(zhuǎn)載請標明出處:http://blog.csdn.net/tianlesoftware/archive/2010/12/30/6106178.aspx

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    国产传媒精品视频一区| 国产亚洲精品俞拍视频福利区| 国产欧美一区二区色综合| 激情五月天免费在线观看| 精品国产成人av一区二区三区| 国产又粗又猛又爽色噜噜| 手机在线不卡国产视频| 夫妻性生活真人动作视频 | 精品偷拍一区二区三区| 国产精品一区二区高潮| 日韩精品视频免费观看| 国产精品久久久久久久久久久痴汉| 日木乱偷人妻中文字幕在线 | 久久这里只精品免费福利| 人妻久久这里只有精品| 精品亚洲一区二区三区w竹菊| 欧美人妻少妇精品久久性色 | 最新国产欧美精品91| 亚洲中文在线中文字幕91| 真实偷拍一区二区免费视频| 久七久精品视频黄色的| 亚洲熟女一区二区三四区| 日韩国产中文在线视频| 九九热在线免费在线观看| 日韩特级黄片免费在线观看| 99久久免费中文字幕| 久久精品亚洲情色欧美| 欧美日韩高清不卡在线播放| 人妻熟女中文字幕在线| 国产在线日韩精品欧美| 亚洲精品黄色片中文字幕| 欧美日本亚欧在线观看| 国产成人精品视频一二区| 亚洲人午夜精品射精日韩| 精品久久少妇激情视频| 国产免费操美女逼视频| 欧美极品欧美精品欧美| 亚洲免费视频中文字幕在线观看| 91欧美一区二区三区| 精品少妇人妻av一区二区蜜桃 | 91在线播放在线播放观看|