如果服務器斷電重啟或計划內重啟,在服務器的操作系統啟動后,需要手工啟動數據庫實例和監聽,本文介紹如何把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)
作者:碼農有道
如果我們的文章對您有幫助,請點贊評論,讓更多的人看到這文章,我們也將繼續努力創作更多的文章,謝謝。