首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> Oracle 資料庫 >> Oracle 資料庫基礎

Windows 與 Linux 下 Oracle 資料庫啟動/關閉完整操作指南

     編輯:Oracle 資料庫基礎

Windows 環境

Windows 下 Oracle 服務通常隨作業系統自動啟動/關閉。若因強制終止進程導致服務異常,需透過命令列依序重置服務與監聽器:

標準修復流程

C:\> net stop OracleService
-- 若提示「無法停止」,請先在工作管理員強制結束相關 oracle.exe 進程,再重試

C:\> net start OracleService
-- 服務啟動成功

C:\> lsnrctl stop
-- 停止監聽器

C:\> lsnrctl start
-- 啟動監聽器,提示「The command completed successfully」

C:\> sqlplus /nolog
SQL> CONNECT sys/password AS SYSDBA
-- 連線成功,資料庫實例已可用

關鍵點:OracleService 中的 SID 需替換為實際執行個體名稱(如 OracleServiceORCL)。

Linux 環境

Linux 下需手動啟動監聽器與資料庫實例,標準流程如下:

1. 啟動監聽器

[oracle@localhost ~]$ cd $ORACLE_HOME/bin
[oracle@localhost bin]$ lsnrctl

LSNRCTL> start
Starting /home/oracle/product/10.2.0/db_1/bin/tnslsnr: please wait...
TNSLSNR for Linux: Version 10.2.0.1.0 - Production
...
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
The command completed successfully

LSNRCTL> exit

2. 啟動資料庫實例

[oracle@localhost bin]$ sqlplus /nolog
SQL> CONN / AS SYSDBA
Connected to an idle instance.
SQL> STARTUP
ORACLE instance started.
Total System Global Area 2147483648 bytes
...
Database mounted.
Database opened.
SQL> EXIT

關閉資料庫(正常關機)

SQL> SHUTDOWN IMMEDIATE
-- 等待完成
SQL> EXIT

[oracle@localhost bin]$ lsnrctl stop

跨平台核心差異對照

操作WindowsLinux
服務管理net start/stop OracleService透過 sqlplus 執行 STARTUP/SHUTDOWN
監聽器控制lsnrctl start/stoplsnrctl start/stop(指令相同)
權限需求系統管理員權限oracle 使用者與 dba 群組
環境變數通常自動設定需確認 ORACLE_HOME、ORACLE_SID、PATH

常見問題排查

  • ORA-12514 / ORA-12541:監聽器未啟動或 listener.ora/tnsnames.ora 設定不符,請檢查 SID_NAME 與 SERVICE_NAME 一致性。
  • Windows 服務卡住無法停止:工作管理員 → 詳細資料 → 結束 oracle.exe 進程樹,再執行 net start。
  • Linux 共享記憶體不足:檢查 /etc/sysctl.conf 中 kernel.shmmax、kernel.shmall 設定。

最佳實踐建議

  1. 撰寫啟動/關閉 Shell 腳本(Linux)或 Batch 檔(Windows),納入錯誤檢查與日誌記錄。
  2. 建立監控腳本定期檢查 pmmon、smon、tnslsnr 進程存活狀態。
  3. 重要變更前必做冷備份,驗證備份可還原。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved