在很多的企業級應用中,數據庫是其中非常重要的一個組成部分。Oracle Database作為一款非常重量級的數據庫,在各種場景下都扮演著非常重要的角色。但是,在某些場景下,僅僅只是安裝好Oracle數據庫還不能夠滿足業務需求,常常還需要配置自動啟動。
Oracle 12c提供了非常方便的自動啟動解決方案。我們只需要在數據庫安裝之后,進行簡單的配置,就可以讓Oracle數據庫隨著系統自動啟動。這在一些需要長時間運行的服務中非常有用,可以讓應用及時響應請求。
那么,在Oracle 12c中,要怎樣進行自動啟動的配置呢?首先,我們需要為Oracle數據庫創建一個啟動腳本。這個腳本會負責啟動Oracle數據庫,并且安裝到系統的服務列表中,這樣就可以隨時隨地啟動數據庫。
# For usage with chkconfig on RedHat Linux
# chkconfig: 35 80 30
# description: Oracle auto start-stop script.
#
# Set ORACLE_HOME to be equivalent to the $ORACLE_HOME
# from which you wish to execute dbstart and dbshut;
#
# Set ORACLE to the executable for dbstart and dbshut;
#
# Set the user and group IDs for UNIX/Linux
#
ORACLE_HOME=/u01/app/oracle/product/12.1.0.2/dbhome_1
ORACLE=oracle
PATH=$PATH:$ORACLE_HOME/bin
HOST=hostname
if [ ! -f /etc/oratab ]; then
echo "Expected file /etc/oratab does not exists. Please fix ORACLE_HOME and try again."
exit 1
fi
ORAENV_ASK=NO . oraenv > /dev/null
case "$1" in
'start')
echo -n "Starting Oracle: "
su - $ORACLE -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME" &
echo "OK"
;;
'stop')
echo -n "Shutting down Oracle: "
su - $ORACLE -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME" &
echo "OK"
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
上面的代碼中,我們可以看到幾個非常重要的參數。比如說,ORACLE_HOME代表Oracle數據庫的安裝路徑,ORACLE代表Oracle數據庫的用戶,而PATH參數中則包含了Oracle數據庫的可執行程序路徑。
使用以上參數,我們就可以在Linux系統中將啟動腳本配置為系統服務。通過service命令,我們可以獲取到service服務的具體信息。你可以使用以下命令來驗證一下service的功能:
chkconfig --add oracle chkconfig --level 35 oracle on
上述代碼中,我們使用chkconfig命令將oracle服務添加到系統服務列表中,并且在運行級別3和5下啟用自動啟動。
在Oracle 12c中,我們還可以使用Oracle Restart自動管理機制來實現自動啟動。對于生產環境中重要的數據庫,這種配置方式更加建議使用。Oracle Restart負責監測數據庫實例、監聽器以及ASM實例的運行狀態,在發現異常情況時可以自動恢復數據庫服務。
不過,在使用Oracle Restart之前,我們還需要使用Grid Infrastructure進行安裝。安裝完成后,我們就可以在Oracle Restart專有服務中,查看到“target=ora.ons”、“target=ora.diskmon”、“target=ora.evmd”、“target=ora.ctssd”以及“target=ora.cssd”等服務。這意味著,我們可以對各個服務進行監測與管理。在數據庫實例因為某種原因終止后,Oracle Restart可以自動重啟服務,提高系統的可用性。
自動啟動對于Oracle數據庫而言,是非常實用的一種配置方式。通過Oracle Restart機制,我們可以保證數據庫實例能夠隨時運行,并且能夠在服務處于異常狀態時及時恢復數據庫服務。當然,具體的配置方式還需要根據環境的不同進行調整,但總體而言,Oracle 12c已經提供了非常豐富的配置方式來應對各種需求。