Oracle RAC 11GR2更換主機不換存儲--ASM磁盤組異機掛載

背景

生產上有套RAC,主機已運行超5年,最近一段時間常常出現物理主機無端宕機的狀態,宕機沒有規律,並且是兩個節點交替宕機,看監控宕機前主機負載也不高,硬件廠商看過也沒找出具體緣由。因而想把主機換掉,但因爲數據量較大將近50T,搭建DataGuard耗時長,還須要double的存儲空間,不合適。就想到只把集羣相關的LUN映射到新集羣中,在新集羣中MOUNT磁盤組作遷移。下面是測試環境的基本步驟。sql

前期準備工做

安裝新主機

用戶、權限、目錄、軟件版本、PSU版本與舊集羣一致
安裝集羣及打PSU步驟省略,新集羣只劃分OCR和ACFS的磁盤用於安裝集羣軟件及配置ACFS共享目錄。數據庫

/usr/sbin/groupadd -g 508 oinstall
/usr/sbin/groupadd -g 502 dba
/usr/sbin/groupadd -g 503 oper
/usr/sbin/groupadd -g 504 asmadmin
/usr/sbin/groupadd -g 506 asmdba
/usr/sbin/groupadd -g 507 asmoper
/usr/sbin/useradd -u 508 -g oinstall -G asmadmin,asmdba,asmoper -d /home/grid grid
/usr/sbin/useradd -u 509 -g oinstall -G dba,oper,asmdba,asmadmin -d /home/oracle oracle

劃分舊集羣存儲到新集羣

在存儲上把舊集羣的磁盤映射到新集羣上,只映射數據般和備份盤。
配置多路徑,把舊集羣多路徑配置multipath.conf和udev中的配置文件複製到新集羣中,注意不要把新集羣的配置覆蓋掉oracle

正式切換

中止舊集羣

  1. 中止ogg
    cd /odc
    ./ggsci
    stop *
    stop mgr !
  2. 複製/odc目錄下全部文件到新集羣
  3. 中止數據庫
    srvctl stop database -d racdb
  4. 集羣集羣 (兩個節點)
    crsctl stop crs
  5. 集羣禁止自啓動 (兩個節點)
    crsctl disable crs
  6. 修改集羣中的物理IP,並重啓網卡 (兩個節點)

配置新集羣ASM實例

# ACFS爲已有配置,是新集羣ACFS共享磁盤使用,DATA爲舊集羣中的數據磁盤組。
sqlplus / as sysdba
alter system set asm_diskgroups='ACFS DATA' scope=both sid='+ASM1'; 
alter system set asm_diskgroups='ACFS DATA' scope=both sid='+ASM2'; 
#在新集羣mount磁盤組 (兩個節點) 
sqlplus / as sysasm
SQL> alter diskgroup data mount;

配置數據庫

  1. 複製舊集羣文件到新集羣
    scp /oracle/db11g/dbs/* oracle@11.111.26.xx:/oracle/db11g/dbs/  
    scp /oracle/db11g/network/admin/tnsnames.ora oracle@11.111.26.xx:/oracle/db11g/network/admin/
  2. 建立必要目錄
    mkdir -p /oracle/admin/racdb/adump
  3. 註冊數據庫服務
    srvctl add database -d racdb -o $ORACLE_HOME
    srvctl add instance -d racdb -i racdb1 -n racdb1
    srvctl add instance -d racdb -i racdb2 -n racdb2
  4. 啓動數據庫
    #若是scan名稱與舊集羣中不一致,則須要修改spfile中的remote_listener參數
    create pfile='/home/oracle/pfile_racdb.ora' from spfile='';
    vi /home/oracle/pfile_racdb.ora #修改成新的scan:1521
    create spfile='' from pfile='/home/oracle/pfile_racdb.ora';
    srvctl start database -d racdb

配置OGG

cd /odc
./ggsci
start mgr
start *

修改新集羣中的全部IP地址

# 中止集羣
crsctl stop crs 
# 修改bond0網卡地址,並重啓網卡
# 修改新集羣 /etc/hosts
# 啓動新集羣
crsctl start crs 
# 修改scanip
srvctl config scan
srvctl stop scan_listener
srvctl stop scan
srvctl status scan

srvctl modify scan -n 11.111.26.x

srvctl config scan
srvctl start scan
srvctl start scan_listener

配置備份目錄dbbak

  1. 舊集羣導出vg
    umount /dbbak
    umount /dbbak2
    vgchange -a n vg_dbbak
    vgchange -a n vg_dbbak2
    vgexport vg_dbbak
  2. 新集羣導入vg
    vgimport vg_dbbak
    vgimport vg_dbbak2
    mount /dev/vg_dbbak/lv_dbbak /dbbak
    mount /dev/vg_dbbak/lv_dbbak2 /dbbak

後續操做

  1. 複製/home/oracle目錄文件到對應節點
    scp -r /home/oracle/* oracle@11.111.26.xx:/home/oracle
  2. 配置定時任務
    複製兩個節crontab中的全部任務到新集羣對應的節點
  3. 配置zabbix監控
  4. 其餘須要複製劃修改的步驟

回退步驟

關閉新集羣全部服務

# 中止ogg
cd /odc
./ggsci
stop *
stop mgr !
# 中止數據庫
srvctl stop database -d racdb
# 中止集羣(兩個節點)
crsctl stop crs
# 中止集羣自啓動(兩個節點)
crsctl disable crs

修改新舊集羣物理IP信息及/etc/hosts配置

vi /etc/sysconfig/network-scripts/ifcfg-bond0
vi /etc/hosts

啓動舊集羣全部服務,包含ogg

# 開啓集羣自啓動(兩個節點)
crsctl enable crs
# 啓動集羣(兩個節點)
crsctl start crs
# 啓動數據庫
srvctl start database -d racdb
# 啓動ogg
cd /odc
./ggsci
start mgr
start *

掛載備份目錄到舊集羣

  1. 新集羣導出vg
    umount /dbbak
    umount /dbbak2
    vgchange -a n vg_dbbak
    vgchange -a n vg_dbbak2
    vgexport vg_dbbak
  2. 舊集羣導入vg,並掛載lv
    vgimport vg_dbbak
    vgimport vg_dbbak2
    mount /dev/vg_dbbak/lv_dbbak /dbbak
    mount /dev/vg_dbbak/lv_dbbak2 /dbbak

恢復合肥災備歸檔傳輸

驗證auto_ftp_mid是否啓動ide

啓動應用驗證

相關文章
相關標籤/搜索