Windows System environment variable is not used for oracle variables in 11G. Instead, variables such as ORACLE_SID and ORACLE_HOME_NAME are stored in registry. Oracle 11G uses windows services. Batch file can be utilized to start or stop Oracle services in Windows OS. A sample bat file is provided in this article, tested in Windows 7 and Oracle 11G Release 2 environment. Oracle 11G在windows 7系統(tǒng)上不需要設(shè)置系統(tǒng)環(huán)境變量。 在命令行環(huán)境中運(yùn)行命令: echo %ORACLE_SID% 可以看到此變量并不存在。 也可以到注冊(cè)表驗(yàn)證: HKEY_CURRENT_USER\Environment HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Environment 兩處均沒(méi)有Oracle所需變量。 在windows系統(tǒng)下,oracle 11G將ORACLE_SID和ORACLE_HOME_NAME等重要變量存放在注冊(cè)表中。如果安裝多個(gè)oracle,那么只有最后安裝的這個(gè)會(huì)存放在注冊(cè)表中。手動(dòng)運(yùn)行set命令可以臨時(shí)覆蓋變量值。 oracle環(huán)境變量可通過(guò)注冊(cè)表查看: HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_$$$$ 下有Oracle的系列變量值。其中$$$$為ORACLE_HOME_NAME。 也可以用Oracle Assistant for Windows Properties查看:在樹形目錄中打開Oracle Homes下的列表,然后右鍵點(diǎn)擊其中的Oracle Home即可查看此Oracle Home的變量值。 Oracle 11G在windows中采用了service,這些服務(wù)可以設(shè)成關(guān)閉模式,手動(dòng)開啟模式,或者開機(jī)自動(dòng)開啟模式。11G有以下service: 1 Oracle #### VSS Writer Sewrvice 2 OracleDBConsole#### 3 OracleJobScheduler#### 4 OracleMTSRecoveryService 5 Oracle$$$$ClrAgent 6 Oracle$$$$TNSListener 7 OracleService#### 其中####為ORACLE_SID,$$$$為ORACLE_HOME_NAME 以上service中,1用于Windows操作系統(tǒng)專用的備份和恢復(fù)服務(wù);2 用于企業(yè)管理器Oracle Enterprise Manager的使用;3用于Oracle外部的定時(shí)任務(wù);4是為了使用微軟的MTS(Microsoft Transaction Server), 即使用 如OO4O,OCI,ADO, OLE DB等功能;5是控制多線程extproc代理;6是開啟網(wǎng)絡(luò)連接和監(jiān)聽;7是數(shù)據(jù)庫(kù)主服務(wù)。也就是說(shuō),最少只要啟動(dòng)第7項(xiàng),即可使用數(shù)據(jù)庫(kù);再開啟第6項(xiàng),即可從通過(guò)網(wǎng)絡(luò)連接數(shù)據(jù)庫(kù);再開啟第2項(xiàng),即可使用OEM。這3項(xiàng)是最常用的服務(wù)。 基于以上信息,我們可以編寫自己的批處理命令文件控制數(shù)據(jù)庫(kù)的啟動(dòng)和關(guān)閉。手動(dòng)命令永遠(yuǎn)是最容易控制和管理的。 示例: :: OraService.bat - When prompted, enter start or stop set /p action=Start or stop oracle services? if /I %action%==START goto :SERVICE if /I %action%==STOP goto :SERVICE goto :END :SERVICE set OHOME=$$$$ set OSID=#### echo Processing Oracle Database, TNS Listener and DB Console services ...... net %action% OracleService%OSID% net %action% Oracle%OHOME%TNSListener net %action% OracleDBConsole%OSID% :: net %action% OracleVssWriter%OSID% :: net %action% OracleJobScheduler%OSID% :: net %action% OracleMTSRecoveryService :: net %action% Oracle%OHOME%ClrAgent :END echo Finished pause 將以上內(nèi)容保存為批處理文件OraService.bat,運(yùn)行時(shí)輸入start啟動(dòng)Oracle服務(wù),輸入stop則停止Oracle服務(wù)。本例啟動(dòng)了3個(gè)最常用服務(wù),可根據(jù)需要自由修改。注意將其中####改為你的實(shí)際ORACLE_SID值,$$$$改為你的實(shí)際ORACLE_HOME_NAME值。Windows 7中運(yùn)行net start/stop命令需要系統(tǒng)權(quán)限,否則產(chǎn)生access denied錯(cuò)誤。可以右鍵點(diǎn)擊此批處理文件選擇以管理員身份運(yùn)行。也可以建立一個(gè)此文件的快捷方式,然后將快捷方式的屬性修改為以管理員身份運(yùn)行。
|