Oracle 資料庫在 Windows 上以多項服務形式運行,啟動順序嚴格遵循依賴關係:
REM 1. 啟動目標資料庫 Instance 服務
net start OracleServiceORCL
REM 2. 啟動恢復目錄資料庫 Instance 服務 (若有)
net start OracleServiceTEST
REM 3. 設定 SID 並啟動 OEM Database Control
set ORACLE_SID=orcl
emctl start dbconsole
REM 4. 啟動監聽器
lsnrctl start
C:\>net start OracleServiceORCL
OracleServiceORCL 服務正在啟動 ..............................
OracleServiceORCL 服務已經啟動成功。
C:\>net start OracleServiceTEST
OracleServiceTEST 服務正在啟動 ..............................
OracleServiceTEST 服務已經啟動成功。
C:\>set ORACLE_SID=orcl
C:\>emctl start dbconsole
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
...
OracleDBConsoleorcl 服務已經啟動成功。
C:\>lsnrctl start
LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production
...
服務 "PLSExtProc" 包含 1 個例程。
例程 "PLSExtProc", 狀態 UNKNOWN...
命令執行成功
@echo off
echo ===== 啟動 Oracle 完整服務堆疊 =====
net start OracleServiceORCL
if errorlevel 1 echo 警告: OracleServiceORCL 啟動失敗
net start OracleServiceTEST
if errorlevel 1 echo 警告: OracleServiceTEST 啟動失敗
set ORACLE_SID=orcl
emctl start dbconsole
lsnrctl start
echo ===== 所有服務啟動指令已送出 =====
pause
lsnrctl stop
emctl stop dbconsole
net stop OracleServiceTEST
net stop OracleServiceORCL
命令列啟動 Oracle 服務的核心在於正確順序與確認 Instance OPEN 狀態。將上述流程封裝為批次檔/Shell 腳本並納入版控,可確保跨環境、跨人員操作的一致性,也是自動化部署與災難演練的基礎組件。