最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

ORACLE11g隨RHEL5系統(tǒng)自動啟動與關(guān)閉的設(shè)置方法

 更新時間:2009年08月30日 22:32:27   作者:  
最近,ORACLE系統(tǒng)基本調(diào)試通過,是時候設(shè)置ORACLE隨RHEL自動啟動與關(guān)閉服務(wù)的時候了,之所以把這個任務(wù)放在最后來做,是因?yàn)槲矣X得這個應(yīng)該不會很難,但真正實(shí)施起來,還是遇到了個不小的障礙
寫好腳本,注冊好服務(wù)之后,經(jīng)測試,ORACLE可以隨RHEL啟動而啟動,但不能隨系統(tǒng)關(guān)閉而關(guān)閉。在網(wǎng)上找答案,發(fā)現(xiàn)幾乎所有的設(shè)置過程帖子都是從同一篇原樣照抄過來的,根本就行不通。天下文章一大抄。求助他人,沒有得到一個好的解決方案。無奈,自己靜下心來慢慢研究分析,總算找到了問題的關(guān)鍵原因所在。
現(xiàn)在就把我的整個成功設(shè)置的過程貼出來,供大家參考,以期大家能少走彎路;另外還是要給其他人一個建議:切莫生硬照搬,斷章取義,否則其害大焉!!
首先,要在RHEL中設(shè)置允許ORACLE系統(tǒng)自動啟動,因?yàn)槟J(rèn)情況下是設(shè)置為不允許的。操作如下:
在root賬戶下修改/etc/oratab 文件:
# vi /etc/oratab
找到orcl=/db/app/oracle/product/11.1.0/db_1 :N這一行
改為:
orcl=/db/app/oracle/product/11.1.0/db_1 :Y
也就是將最后的N改為Y,意思是將不允許自動啟動改為允許自動啟動。
然后,是修改ORACLE自帶的啟動與關(guān)閉腳本,分別是dbstart和dbshut。執(zhí)行這兩個腳本就可以實(shí)現(xiàn)ORACLE腳本的啟動與關(guān)閉。
在oracle賬戶下修改$ORACLE_HOME/bin/dbstart文件:
復(fù)制代碼 代碼如下:

# su - ORACLE
$ cd $ORACLE_HOME/bin
$ vi dbstart

找到 ORACLE_HOME_LISTNER=$1這一行
改為:
ORACLE_HOME_LISTNER=$ORACLE_HOME
之所以做這一步,是因?yàn)樵谶@個腳本自動生成的時候,也就是ORACLE被安裝進(jìn)RHEL的時候,這個腳本并不知道你的
ORACLE_HOME_LISTNER是什么,現(xiàn)在要將這個參數(shù)顯示的寫明,這樣就不會在執(zhí)行這個腳本的時候報
ORACLE_HOME_LISTNER沒有被指定的錯誤了。注意:dbstart和dbshut腳本在10g之后就已經(jīng)將監(jiān)聽器的啟動與關(guān)閉合并進(jìn)數(shù)
據(jù)庫實(shí)例的啟動與關(guān)閉腳本里面了。而不再是單獨(dú)分開的了。
同樣的方式,我們也要修改dbshut的這個參數(shù)。這里就不再詳細(xì)寫出了,他們在同一個目錄下。
再次,就是寫一個腳本,把它注冊為一個系統(tǒng)服務(wù),讓它在開機(jī)與關(guān)機(jī)的時候運(yùn)行。它的作用就是調(diào)用并執(zhí)行dbstart和dbshut。這樣不
就實(shí)現(xiàn)了數(shù)據(jù)庫啟動與關(guān)閉了嗎?!這個腳本被放在/etc/init.d目錄中,腳本的名字是oracle11
腳本如下:
復(fù)制代碼 代碼如下:

#!/bin/bash
# chkconfig: 2345 99 10
# description: Startup Script for oracle Databases
# /etc/rc.d/init.d/oradbstart
export ORACLE_BASE=/db/app/oracle/
export ORACLE_HOME=/db/app/oracle/product/11.1.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
case "$1" in
start)
echo "-----startup oracle-----" >> /var/log/oracle11log
su oracle -c $ORACLE_HOME/bin/dbstart
touch /var/lock/subsys/oracle11
echo "-----startup oracle successful-----" >> /var/log/oracle11log
echo "OK"

stop)
echo "-----shutdwn oracle-----" >> /var/log/oracle11log
su oracle -c $ORACLE_HOME/bin/dbshut
rm -f /var/lock/subsys/oracle11
echo "-----shutdown oracle successful-----" >> /var/log/oracle11log
echo "OK"

*)
echo "Usage: 'basename $0' start|stop"
exit 1
esac
exit 0

保存并退出。
現(xiàn)在,我要對這段腳本做一個關(guān)鍵解釋:
第一:# chkconfig: 2345 99 10 雖是一行注釋,但是確實(shí)關(guān)鍵的必不可少的一行,除非你不用chkconfig命令來自動生成符號連接文件,而是完全采用手工創(chuàng)建。否則沒有這一行,執(zhí)行chkconfig系統(tǒng)將會報出oracle11沒有chkconfig服務(wù)權(quán)限的錯誤。
第二:su oracle -c $ORACLE_HOME/bin/dbstart 和touch /var/lock/subsys/oracle11這兩行的作用是首先執(zhí)行dbstart腳本啟動oracle,然后在服務(wù)活動列表目錄中創(chuàng)建一個與oracle11這個服務(wù)同名的一個文件,表示這個服務(wù)是活動的,也就是被啟動的。
而su oracle -c $ORACLE_HOME/bin/dbshut 和rm -f /var/lock/subsys/oracle11這兩行的作用是首先執(zhí)行dbshut急哦腳本關(guān)閉oracle,然后從服務(wù)活動列表目錄中刪除那個與oracle11同名的那個文件,表示這個服務(wù)不是活動的,也就是已經(jīng)被關(guān)閉。
那么為什么要做touch /var/lock/subsys/oracle11和rm -f /var/lock/subsys/oracle11這兩步呢?原因是跟LINUX系統(tǒng)的機(jī)制有關(guān)的:LINUX的判別一個服務(wù)是否被啟動的依據(jù)是在/var/lock/subsys/目錄下是否與服同名的文件,若有則表示這個服務(wù)已經(jīng)被啟動了,在系統(tǒng)關(guān)閉的時候,LINUX會把這里面列出的服務(wù)全部關(guān)閉,并刪掉與服務(wù)同名的文件。若一個服務(wù)被啟動了,但卻在這個目錄里沒有那個服務(wù)的同名文件,則不會關(guān)閉那個服務(wù)。網(wǎng)上的文章均將這個地方設(shè)置錯了,所以會發(fā)現(xiàn),ORACLE可以隨系統(tǒng)啟動了,但卻沒有隨系統(tǒng)關(guān)閉。我也是分析了/etc/rc.d/rc.local后才發(fā)現(xiàn)這個原理的。經(jīng)過試驗(yàn),果然如此。再分析mysql的啟動與關(guān)閉腳本也是這樣做的,最終恍然大悟。原來如此。這個地方請大家注意了。
最后,就是將這個腳本注冊成為一個系統(tǒng)服務(wù)就可以了,方法有二:
其一:先給腳本分配可以被執(zhí)行的權(quán)限。執(zhí)行下面命令:
復(fù)制代碼 代碼如下:

#su - root
chown oracle /etc/init.d/oracle11
chmod 775 /etc/init.d/oracle11

再創(chuàng)建符號鏈接文件。
chkconfig --add /etc/init.d/oracle11,執(zhí)行這個命令就需要你在腳本中寫上# chkconfig: 2345 99 10 了。這樣當(dāng)這個命令被執(zhí)行的時候,回去oracle11文件中尋找這行注釋,并解析這行注釋,根據(jù)解析結(jié)果分別在/etc/rc.d/rc2.d;/etc/rc.d/rc3.d;/etc/rc.d/rc4.d;/etc/rc.d/rc5.d中創(chuàng)建符號連接文件S99oracle11文件,這個文件是系統(tǒng)啟動時要執(zhí)行的,其實(shí)這個文件是指向/etc/init.d/oracle11的,啟動的時候系統(tǒng)向這個文件發(fā)送一個start參數(shù),也就執(zhí)行了oracle11文件中的start分支了。還會在/etc/rc.d/rc0.d;/etc/rc.d/rc1.d;/etc/rc.d/rc6.d中創(chuàng)建K10oracle11文件,這個文件時系統(tǒng)關(guān)閉時要執(zhí)行的,其實(shí)這個文件也是指向/etc/init.d/oracle11的,關(guān)閉的時候系統(tǒng)向這個文件發(fā)送一個stop參數(shù),也就執(zhí)行了oracle11文件中的stop分支了。
我想你應(yīng)該明白# chkconfig: 2345 99 10 中這些數(shù)字的含義了吧:指出2,3,4,5級別啟動這個服務(wù),99是在相應(yīng)的/etc/rc.d/rcN.d(N為前面指定的級別,這里是2345)目錄下生成的鏈接文件的序號(啟動優(yōu)先級別)S99oracle11,10為在除前面指出的級別對應(yīng)的/etc/rc.d/rcN.d(N為除2345之外的級別)目錄生成的鏈接文件的序號(服務(wù)停止的優(yōu)先級別)K10oracle11。至于為什么在這些目錄中創(chuàng)建文件和文件的命名規(guī)則,這就要您對LINUX的系統(tǒng)啟動流程有一個熟悉的了解了,在這就不詳談了。
其二:若您想嘗試一下手動創(chuàng)建符號連接文件的樂趣,請執(zhí)行如下命令:
復(fù)制代碼 代碼如下:

#su - root
ln -s /etc/init.d/oracle11 /etc/rc.d/rc2.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc3.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc4.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc5.d/S99oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc0.d/K10oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc1.d/K10oracle11
ln -s /etc/init.d/oracle11 /etc/rc.d/rc6.d/K10oracle11

作用效果和執(zhí)行chkconfig --add oracle11是一樣的。
到此,所以得設(shè)置過程就結(jié)束了,下面進(jìn)行一下測試吧:
復(fù)制代碼 代碼如下:

#cd /etc/init.d
sh oracle11 start

執(zhí)行后,看看/var/log目錄下的oracle11log文件,里面是不是有腳本的啟動分支輸出信息呢?
sh oracle11 stop
執(zhí)行后,看看/var/log目錄下的oracle11log文件,里面是不是有腳本的關(guān)閉分支輸出信息呢?
若看到信息,表示您設(shè)置成功了。若沒有,請?jiān)僮屑?xì)設(shè)置一遍,并注意文件的權(quán)限問題。LINUX的用戶概念是很嚴(yán)格的。畢竟是多用戶系統(tǒng)嘛。
文章屬于作者原創(chuàng),轉(zhuǎn)載請注明出處。
來自:http://blog.csdn.net/kanon_lgt/

相關(guān)文章

  • MSSQL與Oracle數(shù)據(jù)庫事務(wù)隔離級別與鎖機(jī)制對比

    MSSQL與Oracle數(shù)據(jù)庫事務(wù)隔離級別與鎖機(jī)制對比

    事務(wù)隔離級別是并發(fā)控制的整體解決方案,其實(shí)際上是綜合利用各種類型的鎖和行版本控制,來解決并發(fā)問題。鎖是數(shù)據(jù)庫并發(fā)控制的內(nèi)部機(jī)制,是基礎(chǔ)。對用戶來說,只有當(dāng)事務(wù)隔離級別無法解決一些并發(fā)問題和需求時,才有必要在語句中手動設(shè)置鎖。
    2014-08-08
  • 大表delete刪數(shù)據(jù)導(dǎo)致數(shù)據(jù)庫異常解決

    大表delete刪數(shù)據(jù)導(dǎo)致數(shù)據(jù)庫異常解決

    這篇文章主要為大家介紹了大表delete刪數(shù)據(jù)導(dǎo)致數(shù)據(jù)庫異常解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Oracle中如何把表和索引放在不同的表空間里

    Oracle中如何把表和索引放在不同的表空間里

    Oracle中并沒有區(qū)分表空間里放的是表還是索引,所有當(dāng)數(shù)據(jù)量比較小時,完全可以把表和索引放在同一個表空間里,但隨著數(shù)據(jù)量的增大,最好還是把表和索引分開存儲在不同的表空間里
    2013-07-07
  • PLSQL安裝、漢化和激活的方法步驟實(shí)現(xiàn)

    PLSQL安裝、漢化和激活的方法步驟實(shí)現(xiàn)

    這篇文章主要介紹了PLSQL安裝、漢化和激活的方法步驟實(shí)現(xiàn),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • Oracle DECODE函數(shù)語法使用介紹

    Oracle DECODE函數(shù)語法使用介紹

    DECODE是Oracle公司獨(dú)家提供的功,該函數(shù)功能強(qiáng)大,下文對DECODE函數(shù)的語法作了詳盡的闡述,供您參考學(xué)習(xí)
    2013-05-05
  • oracle行轉(zhuǎn)列方法集合匯總(推薦!)

    oracle行轉(zhuǎn)列方法集合匯總(推薦!)

    工作中我們經(jīng)常會碰到行轉(zhuǎn)列的情況,下面這篇文章主要給大家介紹了關(guān)于oracle行轉(zhuǎn)列方法集合的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04
  • Oracle?DG?的歸檔缺失修復(fù)方法

    Oracle?DG?的歸檔缺失修復(fù)方法

    文章介紹了Oracle DG歸檔缺失的修復(fù)方法,包括檢查歸檔同步情況、查看GAP日志應(yīng)用情況以及不同的修復(fù)思路,如歸檔還在主庫、歸檔已在備庫或歸檔已被刪除等,感興趣的朋友一起看看吧
    2025-02-02
  • Oracle數(shù)據(jù)庫中使用正則表達(dá)式的超詳細(xì)教程

    Oracle數(shù)據(jù)庫中使用正則表達(dá)式的超詳細(xì)教程

    正則表達(dá)式是一種描述簡單和復(fù)雜的搜索和處理模式的方法,下面這篇文章主要給大家介紹了關(guān)于Oracle數(shù)據(jù)庫中使用正則表達(dá)式的超詳細(xì)教程,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2024-08-08
  • plsql與tsql的語法不同

    plsql與tsql的語法不同

    plsql與tsql的語法不同簡單整理,大家可以參考下。
    2009-09-09
  • 如何利用Oracle命令解決函數(shù)運(yùn)行錯誤

    如何利用Oracle命令解決函數(shù)運(yùn)行錯誤

    這篇文章主要給大家介紹了關(guān)于如何利用Oracle命令解決函數(shù)運(yùn)行錯誤的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者使用Oracle具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論

怀宁县| 鹤峰县| 当涂县| 商都县| 苏州市| 鄯善县| 临城县| 柘城县| 奇台县| 名山县| 清原| 伊春市| 繁峙县| 昭通市| 东至县| 长海县| 望谟县| 来凤县| 无为县| 上饶县| 万年县| 青阳县| 辽宁省| 上杭县| 伊通| 赣州市| 鸡泽县| 嘉黎县| 白山市| 洪江市| 鸡泽县| 涡阳县| 镇赉县| 嫩江县| 建始县| 莱州市| 南皮县| 垦利县| 九寨沟县| 岢岚县| 南和县|