在個人測試虛擬機上同時部署 Oracle 10g RAC 與 11g RAC 環境,透過 Shell 腳本實現一鍵切換,極大提升測試效率。本文提供完整切換腳本、關鍵配置檔案備份清單與操作注意事項。
切換本質是替換系統級配置檔案與 Oracle 執行時目錄:
/etc/inittab、/etc/oratab、/etc/oraInst.loc/etc/oracle、/var/tmp/.oracle 目錄內容/etc/init.d/init.crs*、init.cssd*、init.evmd*、init.ohasd*、init.tfa*)#!/bin/bash
# 10g RAC 切換至 11g RAC
# 1. 備份並替換 inittab
cp /etc/inittab /etc/inittab10g
cp /etc/inittab11g /etc/inittab
# 2. 切換 /etc/oracle 目錄
rm -rf /etc/oracle10g
mv /etc/oracle /etc/oracle10g
cp -rp /etc/oracle11g /etc/oracle
# 3. 切換 oraInst.loc
cp /etc/oraInst.loc /etc/oraInst.loc10g
rm -rf /etc/oraInst.loc
cp -p /etc/oraInst.loc11g /etc/oraInst.loc
# 4. 切換 oratab
cp /etc/oratab /etc/oratab10g
rm -rf /etc/oratab
cp -p /etc/oratab11g /etc/oratab
# 5. 切換 /var/tmp/.oracle
rm -rf /var/tmp/.oracle10g
mv /var/tmp/.oracle /var/tmp/.oracle10g
mv /var/tmp/.oracle11g /var/tmp/.oracle
echo "切換至 11g RAC 完成,請重啟相關服務驗證。"
#!/bin/bash
# 11g RAC 切換至 10g RAC
cp /etc/inittab /etc/inittab11g
cp /etc/inittab10g /etc/inittab
rm -rf /etc/oracle11g
mv /etc/oracle /etc/oracle11g
cp -rp /etc/oracle10g /etc/oracle
cp /etc/oraInst.loc /etc/oraInst.loc11g
rm -rf /etc/oraInst.loc
cp -p /etc/oraInst.loc10g /etc/oraInst.loc
cp /etc/oratab /etc/oratab11g
rm -rf /etc/oratab
cp -p /etc/oratab10g /etc/oratab
rm -rf /var/tmp/.oracle11g
mv /var/tmp/.oracle /var/tmp/.oracle11g
mv /var/tmp/.oracle10g /var/tmp/.oracle
echo "切換至 10g RAC 完成,請重啟相關服務驗證。"
-r-xr-xr-x 1 root root 2436 Oct 6 09:47 /etc/init.d/init.crs
-r-xr-xr-x 1 root root 5538 Oct 6 09:47 /etc/init.d/init.crsd
-r-xr-xr-x 1 root root 5538 Oct 6 09:47 /etc/init.d/init.crsd.bak
-r-xr-xr-x 1 root root 55180 Oct 6 09:47 /etc/init.d/init.cssd
-r-xr-xr-x 1 root root 55180 Oct 6 09:47 /etc/init.d/init.cssd.bak
-r-xr-xr-x 1 root root 3505 Oct 6 09:47 /etc/init.d/init.evmd
-r-xr-xr-x 1 root root 3505 Oct 6 09:47 /etc/init.d/init.evmd.bak
-rwxr-xr-x 1 root root 8782 Oct 17 11:32 /etc/init.d/init.ohasd
-rwxr-xr-x 1 root root 8782 Oct 17 11:32 /etc/init.d/init.ohasdbak
-rwxr-xr-x 1 root root 10999 Oct 17 11:33 /etc/init.d/init.tfa
-rwxr-xr-x 1 root root 10999 Oct 17 11:33 /etc/init.d/init.tfabak
mv、rm 操作前確認已有完整備份。ORACLE_HOME、PATH、LD_LIBRARY_PATH 是否指向正確版本。善用此腳本,可在單一虛擬機上高效驗證跨版本 RAC 遷移、升級、相容性測試等場景。