Oracle10g 10.2.0.5 RAC一次恢復ORC、votedisk實戰

season0891發表於2014-09-15
在上次安裝Oracle10g 10.2.0.5後發現在節點2主機重啟HACMP後datavg的vg permission會被製成passive-only。
詳細處理過程請參看我之前的部落格http://blog.itpub.net/29047826/viewspace-1265183/

主機工程師給出的解決方案是重做datavg,不能透過程式或是指令碼來修復該問題。看來之前建立的ASM和database要犧牲了,為了減少重建的時間,腦海裡快速的計劃著需要備份的步驟:
匯出ocr
匯出votedisk
匯出asm的pfile
匯出資料庫的spfile
備份rman備份資料庫
不幸的是我們沒來得及做完以上所有的步驟,就不允許再操作了。在有限的時間內只完成了ocr的匯出,votedisk的匯出,其它重要檔案都沒有備份。

1, 匯出ocr到本地/home目錄下
# /u01/app/oracle/product/10.2.0/crs_1/bin/ocrconfig -export /home/ocr.dmp

2,匯出votedisk到/home目錄下。votedisk的冗餘策略是3,只對其中的一個裸裝置進行dd就可以了。
# ./crsctl query css votedisk
 0.     0    /dev/rora_raw8_1gb
 1.     0    /dev/rora_raw9_1gb
 2.     0    /dev/rora_raw10_1gb

located 3 votedisk(s).

# dd if=/dev/rora_raw8_1gb of=/home/rora_raw8_1gb.dd


下面開始進入重建環節:

3,確認hacmp狀態,datavg已經是concurrent
# lspv
hdisk0          00f7639d21b0aa23                    rootvg          active
hdisk1          00f7639d2c96d3d8                    rootvg          active
hdisk2          00f7639d2d5c93ec                    datavg          concurrent
hdisk3          00f7639d2d5c94b3                    datavg          concurrent
hdisk4          00f7639d2d5c9590                    datavg          concurrent
hdisk5          00f7639d2d5c9657                    datavg          concurrent
hdisk6          00f763952d23f51e                    hbvg
hdisk7          00f7639d2d6b75a3                    backupvg        active

4,確認所有的裸裝置
# ls -l /dev/ora*
brw-rw----    1 root     system       41, 10 Sep 12 11:47 ora_raw10_1gb
brw-rw----    1 root     system       41,  1 Sep 11 21:44 ora_raw1_100gb
brw-rw----    1 root     system       41,  2 Sep 11 21:44 ora_raw2_100gb
brw-rw----    1 root     system       41,  3 Sep 11 21:44 ora_raw3_100gb
brw-rw----    1 root     system       41,  4 Sep 11 21:44 ora_raw4_100gb
brw-rw----    1 root     system       41,  5 Sep 11 21:44 ora_raw5_100gb
brw-rw----    1 root     system       41,  6 Sep 12 11:58 ora_raw6_1gb
brw-rw----    1 root     system       41,  7 Sep 12 11:46 ora_raw7_1gb
brw-rw----    1 root     system       41,  8 Sep 12 11:47 ora_raw8_1gb
brw-rw----    1 root     system       41,  9 Sep 12 11:47 ora_raw9_1gb

ASM磁碟組—DATA   :ora_raw1_100gb、ora_raw2_100gb、ora_raw3_100gb、ora_raw4_100gb
ASM磁碟組—ARCH   :ora_raw5_100gb
用於儲存OCR       :ora_raw6_1gb、ora_raw7_1gb
用於儲存VOTE DISK :ora_raw8_1gb、ora_raw9_1gb、ora_raw10_1gb


5,匯入ocr
ocr.dmp為ocr的備份
# /u01/app/oracle/product/10.2.0/crs_1/bin/ocrconfig -import /home/ocr.dmp


6,匯入votedisk
root使用者下執行,rora_raw8_1gb.dd為VOTE DISK的備份
dd if=/home/rora_raw8_1gb.dd of=/dev/ora_raw8_1gb bs=1M count=1024
dd if=/home/rora_raw8_1gb.dd of=/dev/ora_raw9_1gb bs=1M count=1024
dd if=/home/rora_raw8_1gb.dd of=/dev/ora_raw10_1gb bs=1M count=1024


7,在兩個節點分別啟動叢集
root使用者下執行
/u01/app/oracle/product/10.2.0/crs_1/bin/crsctl start crd

檢視啟動狀態
/u01/app/oracle/product/10.2.0/crs_1/bin/crsctl check crd

檢視叢集資源狀態
/u01/app/oracle/product/10.2.0/crs_1/bin/crs_stat -t

可喜的是資料庫資源和連個例項的資源offline,其它的資源全部online,包括asm。
asmcmd> lsdg 會發現+DATA完好保留,+ARCH磁碟組被刪除了。
現在需要建立一個pfile嘗試啟動資料庫,如果資料庫可以正常啟動損失就降到最低了。


8,透過pfile建立spfile至指定共享磁碟組
8.1 利用pfile啟動例項
由於之前沒有備份pfile,從其它實驗環境中複製過來一個類似的pfile檔案,經過修改臨時啟動資料庫
*.db_block_size=8192
*.cluster_database_instances=2
*.open_cursors=1000
*.db_domain=''
*.db_name='max'
*.background_dump_dest='/u01/app/oracle/admin/max/bdump'
*.core_dump_dest='/u01/app/oracle/admin/max/cdump'
*.user_dump_dest='/u01/app/oracle/admin/max/udump'
*.db_create_file_dest='+DATA'
*.job_queue_processes=10
*.compatible=10.2.0.5.0
*.processes=2500
*.sessions=2755
*.sga_target=4244635648
*.log_archive_format='%t_%s_%r.dbf'
*.audit_file_dest='/u01/app/oracle/admin/maximo/adump'
*.remote_login_passwordfile='exclusive'
*.dispatchers='(PROTOCOL=TCP) (SERVICE=maximoXDB)'
*.pga_aggregate_target=2210739712
*.undo_management=AUTO
*.control_files=('+DATA/maximo/controlfile/current.272.857574347')
*.cluster_database=true
max1.instance_number=1
max2.instance_number=2
max1.thread=1
max2.thread=2
max2.undo_tablespace='UNDOTBS2'
max1.undo_tablespace=‘UNDOTBS1’

sqlplus / as sysdba
startup pfile='/home/mypfile.ora'

啟動資料庫成功,+DATA沒有損壞

8.2 建立spfile到+DATA目錄下
create spfile='+DATA' from pfile='/home/mypfile.ora'

8.3 編輯$ORACLE_HOME/dbs下的init.ora,指定其路徑至共享磁碟裡的spfile檔案
$ cat initmax.ora
SPFILE='+DATA/max/parameterfile/spfile.263.858088849'

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/90618/viewspace-1269946/,如需轉載,請註明出處,否則將追究法律責任。

相關文章