硬體升級相對容易,資料庫升級卻充滿變數。資深 DBA 關注的核心指標只有兩個:升級成功率與業務停機窗口。本文提供經驗證的成熟流程,將風險與停機時間壓至最低。
使用 Net Manager 圖形化工具:
myoracle.192.168.1.5,區別於 SID)myoracle)listener.ora(Windows: D:\oracle\ora92\network\admin\;Linux: $ORACLE_HOME/network/admin/)myoracle)tnsnames.ora關鍵提醒:tnsnames.ora 中服務名首行前不能有空格,否則導致 ORA-12154。
# 啟動監聽器
$ lsnrctl start [listener_name]
# 啟動資料庫
$ sqlplus /nolog
SQL> CONN sys@myoracle AS SYSDBA
SQL> STARTUP
C:\> lsnrctl start
C:\> oradim -startup -sid myoracle
必須同時啟動監聽器與實例服務,客戶端才能連接。
| 錯誤代碼 | 含義 | 核心排查方向 |
|---|---|---|
| ORA-12541 | 無監聽器 | 服務端監聽器未啟動 / IP/端口錯誤 |
| ORA-12500 | 無法啟動專用進程 | Windows 實例服務未啟動 (oradim -startup) |
| ORA-12535 | 操作超時 | 網路不通 / 防火牆攔截 |
| ORA-12154 | 無法解析服務名 | 服務名不一致 / tnsnames.ora 首行有空格 |
| ORA-12514 | SERVICE_NAME 無法解析 | Net Manager 檢查服務標識是否與全局資料庫名一致 |
檢查註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener\ImagePath,值應為 D:\oracle\ora92\BIN\TNSLSNR(按實際路徑調整)。同理修復實例服務 OracleServiceMYORACLE。