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

Oracle 單一資料庫支援多實例:DB_NAME 與 INSTANCE_NAME 差異說明

     編輯:Oracle 資料庫基礎

核心概念

參數說明
DB_NAME 資料庫名稱,最長 8 字元。建庫時寫入資料檔、控制檔、Redo Log。啟動時參數檔與控制檔的 DB_NAME 必須一致,否則無法啟動。
INSTANCE_NAME 實例名稱,識別記憶體結構與背景程序集合。單機可對應不同參數檔啟動多個實例掛載同一資料庫(需 RAC/OPS 架構支援同時開啟)。

關鍵規則

  • 一個實例同一時間只能開啟一個資料庫。
  • 一個資料庫可被一或多個實例掛載/開啟(RAC 環境下多實例同時開啟同一資料庫)。
  • DB_NAME 固定不變;INSTANCE_NAME 可依部署需求設定不同值。

實際環境驗證範例

-- 參數檔設定
*.db_name='eygle'
*.instance_name='eygle'

-- 查詢資料檔路徑
SQL> SELECT name FROM v$datafile;
NAME
-----------------------------------------------------
/opt/oracle/oradata/eygle/system01.dbf
/opt/oracle/oradata/eygle/undotbs01.dbf
...

-- 確認參數生效
SQL> SHOW PARAMETER db_name;
NAME         TYPE   VALUE
------------ ------ ------
db_name      string eygle

SQL> SHOW PARAMETER instance_name;
NAME            TYPE   VALUE
---------------- ------ ------
instance_name   string eygle

建立 PFILE 供手動調整

SQL> CREATE PFILE FROM SPFILE;
File created.

應用場景

  • 單機多實例測試:同一組資料檔,建立多個參數檔(不同 INSTANCE_NAME、PORT、SGA 設定),分別啟動實例進行隔離測試(同一時間僅能啟動一個)。
  • RAC 叢集:多節點各啟動一實例(不同 INSTANCE_NAME),共同開啟同一資料庫(相同 DB_NAME),提供高可用與擴充性。
  • Data Guard 待測:主要/備援資料庫 DB_NAME 相同,INSTANCE_NAME 可同或不同,視管理習慣。

注意事項

  • 非 RAC 環境下,嘗試同時啟動第二個實例開啟同一資料庫會報 ORA-01102(cannot mount database in EXCLUSIVE mode)。
  • 參數檔建議使用 SPFILE,動態調整參數無需重啟;PFILE 適合版本控管與跨環境部署。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved