文章目錄
如果服務器斷電重啓或計劃內重啓,在服務器的操作系統啓動後,需要手工啓動數據庫實例和監聽,本文介紹如何把Oracle數據庫的啓動和關閉配置成系統服務,在操作系統啓動/關閉時,自動啓動/關閉Oracle實例和監聽。
假設ORACLE_HOME環境變量的值是/oracle/home。
1、啓動數據庫實例的shell腳本
啓動Oracle數據庫的腳本爲/oracle/home/bin/dbstart,內容如下:
sqlplus / as sysdba <<EOF
startup;
EOF
2、重啓數據庫實例的shell腳本
啓動Oracle數據庫的腳本爲/oracle/home/bin/dbrestart,內容如下:
sqlplus / as sysdba <<EOF
shutdown immediate;
startup;
EOF
3、關閉數據庫實例的shell腳本
啓動Oracle數據庫的腳本爲/oracle/home/bin/dbshut,內容如下:
sqlplus / as sysdba <<EOF
shutdown immediate;
EOF
4、oracle實例的系統服務配置文件腳本
如果把系統服務命名爲oracle,則創建服務配置文件/usr/lib/systemd/system/oracle.service,內容如下:
[Unit]
Description=Oracle RDBMS
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/su - oracle -c "/oracle/home/bin/dbstart >> /tmp/oracle.log"
ExecReload=/usr/bin/su - oracle -c "/oracle/home/bin/dbrestart >> /tmp/oracle.log"
ExecStop=/usr/bin/su - oracle -c "/oracle/home/bin/dbshut \>\> /tmp/oracle.log"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
5、lsnrctl監聽的系統服務配置文件腳本
如果把系統服務命名爲lsnrctl,則創建服務配置文件/usr/lib/systemd/system/lsnrctl.service,內容如下:
[Unit]
Description=Oracle lsnrctl
After=network.target
[Service]
Type=simple
ExecStart=/usr/bin/su - oracle -c "/oracle/home/bin/lsnrctl start >> /tmp/lsnrctl.log"
ExecReload=/usr/bin/su - oracle -c "/oracle/home/bin/lsnrctl reload >> /tmp/lsnrctl.log"
ExecStop=/usr/bin/su - oracle -c "/oracle/home/bin/lsnrctl stop >> /tmp/lsnrctl.log"
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
6、重新加載服務配置文件
systemctl daemon-reload
7、啓動/停止/啓重oracle和lsnrctl服務
systemctl start oracle # 啓動oracle服務。
systemctl restart oracle # 重啓oracle服務。
systemctl stop oracle # 關閉oracle服務。
systemctl start lsnrctl # 啓動lsnrctl服務。
systemctl restart lsnrctl # 重啓lsnrctl服務。。
systemctl stop lsnrctl # 關閉lsnrctl服務。
8、把oracle和lsnrctl服務設置爲開機/關機自啓動/停止
systemctl enable oracle # 把Oracle實例服務設置爲開機自啓動。
systemctl enable lsnrctl # 把Oracle監聽服務設置爲開機自啓動。
9、查看Oracle實例和監聽啓動/停止的日誌。
Oracle實例啓動的日誌在/tmp/oracle.log文件中。
監聽的啓動日成在/tmp/lsnrctl.log文件中。
注意,只有通過systemctl啓動/關閉Oracle實例和監聽纔會寫日誌,手工執行腳本不寫日誌。
10、版權聲明
C語言技術網原創文章,轉載請說明文章的來源、作者和原文的鏈接。
來源:C語言技術網(www.freecplus.net)
作者:碼農有道
如果這篇文章對您有幫助,請點贊支持,或在您的博客中轉發我的文章,謝謝!!!
如果文章有錯別字,或者內容有錯誤,或其他的建議和意見,請您留言指正,非常感謝!!!