linux下Oracle自動啟動與停止(二)

來源:互聯網
上載者:User
  1. 概述
    讓資料庫在作業系統啟動的時候自動啟動,會讓資料庫的維護變得更加簡單、方便。
    曾經寫過一篇在linux自動啟動oracle的文章“linux下Oracle自動啟動與停止(一)”http://blog.csdn.net/chenxiaohua/archive/2008/02/26/2121878.aspx。該文章的方法需要用到/etc/oratab、$ORACLE_HOME/bin/dbstart和$ORACLE_HOME/bin/dbshut,顯得不夠靈活。下面講解另外一個方法自動啟動多個oracle執行個體和監聽器。
    文章“建立、啟動oracle資料庫”講述了怎樣建立多個資料庫和執行個體,並啟動這些執行個體,現在將講述怎樣在系統啟動的時候,自動啟動這些資料庫。
  2. 編寫指令碼
    用root使用者,進入進入目錄/etc/rc.d/init.d,建立檔案oracle_linuxdb,該指令碼用於啟動執行個體linuxdb,內容如下:
    #!/bin/sh<br />#chkconfig: 2345 80 80<br />#description:oracle_linuxdb<br />#<br /># /etc/rc.d/init.d/oracle_linuxdb<br /># auto start database LINUXDB instance</p><p>#set oracle env<br />export ORACLE_BASE=/home/ora/ora9<br />export ORACLE_HOME=$ORACLE_BASE/oracle<br />export PATH=$PATH:$ORACLE_HOME/bin<br />ORACLE_USER=ora</p><p>#start or stop script<br />case $1 in<br />start)<br />su - "$ORACLE_USER"<<EOO<br />export ORACLE_SID=linuxdb<br />lsnrctl start LISTENER_LINUXDB<br />sqlplus /nolog<<EOS<br />connect / as sysdba<br />startup<br />EOS<br />EOO<br />;;</p><p>stop)<br />su - "$ORACLE_USER"<<EOO<br />export ORACLE_SID=linuxdb<br />lsnrctl stop LISTENER_LINUXDB<br />sqlplus /nolog<<EOS<br />connect / as sysdba<br />shutdown immediate<br />EOS<br />EOO<br />;;</p><p>*)<br />echo "Usage: $0 {start|stop}"<br />;;<br />esac
    在上面的代碼是一個shell指令碼,首先設定oracle相關的環境變數,注意ORACLE_SID指定了啟動的執行個體名。
    然後賦予oracle_linuxdb執行許可權,執行命令:chmod +x oracle_linuxdb
    下面可以運行該指令碼,進行測試。
    啟動,運行命令:./oracle_linuxdb start
    關閉,執行命令:./oracle_linuxdb stop
    可以用sqlplus user/pass@tnsname來測試啟動和關閉資料庫是否成功。

    建立檔案oracle_wldev,用於啟動資料庫執行個體wldev,內容如下:
    #!/bin/sh<br />#chkconfig: 2345 80 80<br />#description:oracle_wldev<br />#<br /># /etc/rc.d/init.d/oracle_wldev<br /># auto start database WLDEV instance</p><p>#set oracle env<br />export ORACLE_BASE=/home/ora/ora9<br />export ORACLE_HOME=$ORACLE_BASE/oracle<br />export PATH=$PATH:$ORACLE_HOME/bin<br />ORACLE_USER=ora</p><p>#start or stop script<br />case $1 in<br />start)<br />su - "$ORACLE_USER"<<EOO<br />export ORACLE_SID=wldev<br />lsnrctl start LISTENER_WLDEV<br />sqlplus /nolog<<EOS<br />connect / as sysdba<br />startup<br />EOS<br />EOO<br />;;</p><p>stop)<br />su - "$ORACLE_USER"<<EOO<br />export ORACLE_SID=wldev<br />lsnrctl stop LISTENER_WLDEV<br />sqlplus /nolog<<EOS<br />connect / as sysdba<br />shutdown immediate<br />EOS<br />EOO<br />;;</p><p>*)<br />echo "Usage: $0 {start|stop}"<br />;;<br />esac
    然後賦予oracle_wldev執行許可權,執行命令:chmod +x oracle_wldev
    下面可以運行該指令碼,進行測試。
    啟動,運行命令:./oracle_wldev start
    關閉,執行命令:./oracle_wldev stop
    可以用sqlplus user/pass@tnsname來測試啟動和關閉資料庫是否成功。

    現在有了啟動和關閉oracle的指令碼,只要把這些指令碼設定好,讓系統在啟動和關閉的時候,自動執行就好了。

  3. 發布
    執行如下命令:
    chkconfig --add oracle_linuxdb
    chkconfig --add oracle_wldev
    chkconfig命令運行成功後,在rc2.d,rc3.d,rc4.d,rc5.d下面建立了S80oracle_linuxdb和S80oracle_wldev兩個串連檔案,可以在系統啟動的時候,運行指令碼啟動資料庫。在rc0.d、rc1.d和rc6.d目錄下面建立了K80oracle_linuxdb和K80oracle_wldev檔案,用於在系統關閉的時候自動運行指令碼關閉資料庫。

    關於chkconfig的用法,可以通過man chkconfig查看。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.