Oracle 10g RAC 資料儲存更換

ZQqzz發表於2021-02-03

 

 

 

 


 

說明

 

目前資料庫為10gRAC 環境(10.2.0.4) ,作業系統為 ,採用ASM 磁碟組,需要對儲存進行遷移,計劃遷移採用oracle rman 遷移方案,確保遷移安全可控。本次遷移涉及ocr,vote 盤及DATA 磁碟組的資料遷移

環境如下:

作業系統: HP
資料庫: 10.2.0.4
資料檔案儲存方式: ASM

資料量: 131GB

Data 盤大小: 800000MB

Data 盤:

NAME                            

PATH                                    

MODE_ST STATE

DGAM_0000                       

/dev/vgora/rlvasm1                      

ONLINE  NORMAL

DGAM_0001                       

/dev/vgora/rlvasm2                      

ONLINE  NORMAL

DGAM_0002                       

/dev/vgora/rlvasm3                      

ONLINE  NORMAL

DGAM_0003                       

/dev/vgora/rlvasm4                      

ONLINE  NORMAL

Ocr 盤:

[u@h /oracle/product/10.2.0/crs/bin]$ ./ocrcheck

Status of Oracle Cluster Registry is as follows :

         Version                  :          2

         Total space (kbytes)     :    1048300

         Used space (kbytes)      :       6476

         Available space (kbytes) :    1041824

         ID                       : 1756826852

         Device/File Name         : /dev/vgora/rlvocr1

                                    Device/File integrity check succeeded

         Device/File Name         : /dev/vgora/rlvocr2

                                    Device/File integrity check succeeded

 

         Cluster registry integrity check succeeded

Vote 盤:

       [u@h /oracle/product/10.2.0/crs/bin]$ ./crsctl query css votedisk

 0.     0    /dev/vgora/rlvvot1

      1.     0    /dev/vgora/rlvvot2

      2.     0    /dev/vgora/rlvvot3

 

 

整體遷移流程:

不停業務準備:

步驟

流程計劃

時間估算

1

作業系統掃描新磁碟

已完成

2

建立新NDATA 磁碟組

(不停機做)

 

停業務做:

步驟

流程計劃

時間估算

1

資料庫全備

50 分鐘(業務停止)

2

資料檔案遷移

90 分鐘      (業務不停止)

3

REDO 日誌切換到新儲存NDATA

30 分鐘(業務停止)

4

遷移OCR ,VOTE

50 分鐘  (業務停止)

5

重啟三節點叢集,確保OCR   VOTE 切換正常

20 分鐘  (業務停止)

6

遷移引數檔案

20 分鐘  (業務停止)

7

遷移控制檔案

20 分鐘  (業務停止)

8

rename 控制檔案中資料檔案路徑

15 分鐘  (業務停止)

9

重建TEMP 表空間

15 分鐘  (業務停止)

10

開啟資料庫

30 分鐘  (業務停止)





 

總結時間:

總計花費業務停機時間 340 分鐘


 

 

前期準備

掛載新磁碟

建立新磁碟組考慮磁碟較多,建立採用asmca 圖形互動介面完成,建立新磁碟過程中需要調整ASM 磁碟組的版本引數,建立包括由5 1G 磁碟組成的OCR VOTE 磁碟及若干資料盤組成的NDATA 磁碟組。

 

現場步驟(停業務):

全庫備份


{
allocate channel c1 type disk;
sql 'alter system archive log current';
backup as backupset database format '/orabak/backup1126/rmanfull_%d_%T_%s_%p.bak' include current controlfile;
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
sql 'alter system archive log current';
backup format '/orabak/backup1126/rmanarch_full%T%U' archivelog all;
backup spfile format '/orabak/backup1126/spfile_%d_%T_%s_%p.bak';
backup current controlfile format '/orabak/backup1126/control_%d_%T_%s_%p.bak';
release channel c1;
}

資料檔案至新磁碟組

獲取rman備份指令碼:

 

產生指令碼檔案,考慮到在不影響生產的情況下,採用一個程式處理,不開啟並行複製:

 

 

 

 

 

切換至新磁碟組

redo 透過增減替換新增至新的磁碟組中

 

SQL> select GROUP#,THREAD#,BYTES,STATUS from v$log;

 

    GROUP#    THREAD#      BYTES STATUS

---------- ---------- ---------- ----------------

         1          1   52428800 ACTIVE

         2          1   52428800 CURRENT

         3          2   52428800 ACTIVE

         4          2   52428800 CURRENT

         5          3   52428800 CURRENT

         6          3   52428800 ACTIVE

         7          1   52428800 ACTIVE

         8          2   52428800 ACTIVE

         9          3   52428800 ACTIVE

 

常用命令:

alter database add logfile thread 2 group 14 ('+ndata') size 50m;

alter database drop logfile group 1;

alter system archive log current;

alter system checkpoint;

 

備份控制檔案

backup current controlfile format '/tmp/control.bak';

遷移OCR 磁碟組

1) 確保 OCR 有最近的備份
A
、檢視 OCR 的健康狀態
ocrcheck
ocrconfig -showbackup


B
、如果沒有,手工備份一下
ocrconfig -export /home/oracle/ocrbak.ocr -s online
C
、使用 OCR 備份還原
ocrconfig -import /home/oracle/ocrbak.ocr

D
、檢視 OCR 的健康狀態
ocrcheck

2)
新增新的 OCR
該步驟會使用 rhdiskpower5 覆蓋原有映象 rhdisk8
ocrconfig -replace ocrmirror /dev/rhdiskpower5
ocrcheck
3)
移除原有 OCR
該步驟會移除 rhdisk4 ,並且 rhdiskpower5 成為 OCR
ocrconfig -replace ocr
ocrcheck
4)
新增新的映象 OCR
該步驟會使 rhdiskpower6 盤成為 ocrmirror
ocrconfig -replace ocrmirror /dev/rhdiskpower6
ocrcheck
注:移除 OCR 映象盤,用不到該命令
ocrconfig -replace ocrmirror

遷移vote 磁碟組

當新增新的 vote 盤、或者替換時, vote 盤的內容自動從備份恢復
新增 vote 盤時,必須以 root 使用者停止整個叢集
1)
備份 vote ( 備份一份即可,無需全部備份 )
dd if=/dev/rhdisk22 of=/home/oracle/votebak6.vote
dd if=/dev/rhdisk23 of=/home/oracle/votebak7.vote
dd if=/dev/rhdisk24 of=/home/oracle/votebak8.vote


2)
停止叢集
crsctl stop crs
注:所有節點都執行
3)
新增 vote

crsctl add css votedisk /dev/rhdiskpower0 -force


# crsctl add css votedisk /dev/rhdiskpower0 -force
Now formatting voting disk: /dev/rhdiskpower0
successful addition of votedisk /dev/rhdiskpower0.
4)
移除原 vote
crsctl delete css votedisk /dev/rhdisk22 -force



5)
啟動叢集
crsctl start crs
所有節點都執行


6)
驗證當前 vote 盤路徑
crsctl query css votedisk
select name, path, mode_status, state from v$asm_disk order by name;



7)
檢查叢集資源狀態
crs_stat –t



遷移引數檔案

建立資料庫pfile檔案

create pfile='/tmp/initorcl.ora' from spfile;

透過建立的pfile 啟動資料庫至nomount 狀態

create spfile='+NDATA/orcl/spfileorcl.ora' from pfile='/tmp/initorcl.ora';

 

修改三節點 $ORACLE_HOME/dbs initorcl.ora 檔案,指向磁碟組中的引數檔案位置

 

重新啟動至nomount 狀態 (startup nomount)


(首先檢視資料庫的配置資訊

srvctl config database -d orcl -a

 

透過srvctl 修改spfile 的位置

srvctl modify database -d orcl -p ‘+ndata/orcl/spfileorcl.ora’

 

遷移控制檔案

重啟例項是nomount狀態:

修改引數檔案中控制檔案的路徑:

alter system set control_files='+NDATA/orcl/control01.ctl' scope=spfile sid='*';

 

Restore 控制檔案:

rman:

restore controlfile to '+NDATA/orcl/control01.ctl' from '+DATA/ASM/CONTROLFILE/control01.ctl.286.968939085';

 

啟動資料庫至mount狀態

 

資料檔案

select 'alter database rename file '||''''||name||''''||' to '||''''||'+NDATA/ORCL/DATAFILE/'||substr(name,instr(name,'/',-1)+1)||''';' from v$datafile;

獲取以上指令碼執行結果,rename 資料檔案

 

alter database rename file '+DATA/orcl/datafile/system.259.967068683' to '+NDATA/orcl/datafile/SYSTEM.bdf';     

alter database rename file '+DATA/orcl/datafile/sysaux.260.967068697' to '+NDATA/orcl/datafile/sysaux.bdf';     

alter database rename file '+DATA/orcl/datafile/undotbs1.261.967068711' to '+NDATA/orcl/datafile/undotbs1.bdf'; 

alter database rename file '+DATA/orcl/datafile/undotbs2.263.967068729' to '+NDATA/orcl/datafile/undotbs2.bdf'; 

alter database rename file '+DATA/orcl/datafile/users.264.967068735' to '+NDATA/orcl/datafile/users.bdf';

 

重建TEMP 檔案

s elect 'alter database rename file '||''''||name||''''||' to '||''''||'+data/orcl/datafile/'||substr(name,instr(name,'/',-1)+1)||''''||';' from v$tempfile;

 

開啟資料庫

查詢資料檔案及控制檔案的scn

select name ,CHECKPOINT_CHANGE#   from v$datafile

select name ,CHECKPOINT_CHANGE#   from v$datafile_header;

 

 

三個節點正常開啟資料庫

 

歸檔路徑檢查。

檢查

a.

引數檔案、控制檔案、資料庫檔案、臨時檔案等是否位於正確位置。

 

 

b.

sqlplus / as sysasm

dismount 舊的磁碟組

 

alter diskgroup ocrvt dismount;  ( 三個節點)

alter diskgroup data dismount; (三個節點)

 

show parameter diskgroup; 修改此引數

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

asm_diskgroups                       string      NDATA

 

c.

[oracle@rac2 ~]$ srvctl modify database -d orcl -a "ndata"

[oracle@rac2 ~]$ srvctl config database -d orcl -a

Database unique name: orcl

Database name: orcl

Oracle home: /oracle/app/product/11.2.0/db_1

Oracle user: oracle

Spfile: +NDATA/orcl/spfileorcl.ora

Domain:

Start options: open

Stop options: immediate

Database role: PRIMARY

Management policy: AUTOMATIC

Server pools: orcl

Database instances: orcl1,orcl2

Disk Groups: DATA

Mount point paths:

Services:

Type: RAC

Database is enabled

Database is administrator managed

 

修改許可權 root:root

防止機器重啟,自動拉起

 

d. 重啟資料庫和叢集驗證。

 

常用命令:

select name,state,type from v$asm_diskgroup;

select group_number,disk_number,state,name,path from v$asm_disk;

 

 

回退措施

1. 修改三節點$ORACLE_HOME/dbs initorcl.ora 檔案,指向原磁碟組中的引數檔案位置

2. 啟動資料庫到nomount 狀態

透過srvctl 修改spfile 的位置

srvctl modify database -d orcl -p ‘+data/orcl/spfileorcl.ora’

3. 還原引數檔案中控制檔案的路徑:

alter system set control_files='+DATA/orcl/control01.ctl' scope=spfile sid='*';

4. 將資料庫mount 起來,重建temp 表空間,檢查資料檔案位置,確認無誤後,開啟資料庫。

5. 還原redo 檔案

6. dismount 新建磁碟組,並更改其許可權,避免它重新掛上來

7. 線上還原ocr

8. 停庫,停叢集還原vote

9. 重啟叢集,叢集方法開啟資料庫。

 

 

 

 


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

相關文章