首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Oracle 10g 升級實戰:最小化停機時間的成熟流程與技術方案

     編輯:Oracle 資料庫相關知識

硬體升級相對容易,資料庫升級卻充滿變數。資深 DBA 關注的核心指標只有兩個:升級成功率與業務停機窗口。本文提供經驗證的成熟流程,將風險與停機時間壓至最低。

核心原則

  • 升級不僅指過程完成,更要求生產應用在新版本上零故障運行
  • 採用成熟標準化流程替代臨時摸索
  • 預先驗證回滾方案,確保可逆

監聽器配置(服務端)

使用 Net Manager 圖形化工具:

  1. 選擇「數據庫服務」→ 新增 → 輸入全局資料庫名(如 myoracle.192.168.1.5,區別於 SID)
  2. Oracle Home 可留空,輸入 SID(如 myoracle)
  3. 保存生成 listener.ora(Windows: D:\oracle\ora92\network\admin\;Linux: $ORACLE_HOME/network/admin/)

本地服務名配置(客戶端 TNSNAMES)

  1. Net Manager → 「服務命名」→ 新增 → Net 服務名(如 myoracle)
  2. 協議選 TCP/IP
  3. 輸入主機名與端口(必須與服務端監聽器一致)
  4. 選擇 服務名(等同於服務端全局資料庫名)
  5. 連接類型:專用服務器(預設),若配置共享服務器則選共享
  6. 測試連接(預設 scott/tiger,生產庫需改用有效帳號)
  7. 保存生成 tnsnames.ora

關鍵提醒:tnsnames.ora 中服務名首行前不能有空格,否則導致 ORA-12154。

服務啟動與連接驗證

Linux/Unix

# 啟動監聽器
$ lsnrctl start [listener_name]

# 啟動資料庫
$ sqlplus /nolog
SQL> CONN sys@myoracle AS SYSDBA
SQL> STARTUP

Windows

C:\> lsnrctl start
C:\> oradim -startup -sid myoracle

必須同時啟動監聽器與實例服務,客戶端才能連接。

常見連接錯誤快速排查表

錯誤代碼含義核心排查方向
ORA-12541無監聽器服務端監聽器未啟動 / IP/端口錯誤
ORA-12500無法啟動專用進程Windows 實例服務未啟動 (oradim -startup)
ORA-12535操作超時網路不通 / 防火牆攔截
ORA-12154無法解析服務名服務名不一致 / tnsnames.ora 首行有空格
ORA-12514SERVICE_NAME 無法解析Net Manager 檢查服務標識是否與全局資料庫名一致

Windows 監聽服務「找不到路徑」修復

檢查註冊表 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraHome92TNSListener\ImagePath,值應為 D:\oracle\ora92\BIN\TNSLSNR(按實際路徑調整)。同理修復實例服務 OracleServiceMYORACLE。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved