oracle中的db_name,servcie_name,instance_name,oracle_sid,global_dbname

ORACLE中的DB_NAME,SERVICE_NAME,INSTANCE_NAME,ORACLE_SID,GLOBAL_DBNAME介紹數據庫

最近查過一些資料,準備把oracle裏紛亂的參數整理一下,這裏主要討論如下參數,及其用法的總結,服務器

在init.ora中有db_name,instance_name,service_name網絡

在操做系統中須要配置oracle_sidoracle

在listener.ora中有SID_NAME,GLOBAL_DBNAME,dom

在tnsname.ora中有SERVICE_NAME,SID分佈式

 

init.ora中操作系統

Db_name:對一個數據庫(Oracle database)的惟一標識,該數據庫爲第一章講到的Oracle database。這種表示對於單個數據庫是足夠的,可是隨着由多個數據庫構成的分佈式數據庫的普及,這種命令數據庫的方法給數據庫的管理形成必定的負擔,由於各個數據庫的名字可能同樣,形成管理上的混亂。爲了解決這種狀況,引入了Db_domain參數,這樣在數據庫的標識是由Db_name和Db_domain兩個參數共同決定的,避免了由於數據庫重名而形成管理上的混亂。這相似於互連網上的機器名的管理。咱們將Db_name和Db_domain兩個參數用’.’鏈接起來,表示一個數據庫,並將該數據庫的名稱稱爲Global_name,即它擴展了Db_name。Db_name參數只能由字母、數字、’_’、’#’、’$’組成,並且最多8個字符。

Db_domain:定義一個數據庫所在的域,該域的命名同互聯網的’域’沒有任何關係,只是數據庫管理員爲了更好的管理分佈式數據庫而根據實際狀況決定的。固然爲了管理方便,能夠將其等於互聯網的域。

Global_name:對一個數據庫(Oracle database)的惟一標識,oracle建議用此種方法命令數據庫。該值是在建立數據庫是決定的,缺省值爲Db_name. Db_domain。在之後對參數文件中Db_name與Db_domain參數的任何修改不影響Global_name的值,若是要修改Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO <db_name.db_domain>命令進行修改,而後修改相應參數。

Service_name:該參數是oracle8i新引進的。在8i之前,咱們用SID來表示標識數據庫的一個實例,可是在Oracle的並行環境中,一個數據庫對應多個實例,這樣就須要多個網絡服務名,設置繁瑣。爲了方便並行環境中的設置,引進了Service_name參數,該參數對應一個數據庫,而不是一個實例,並且該參數有許多其它的好處。該參數的缺省值爲Db_name. Db_domain,即等於Global_name。一個數據庫能夠對應多個Service_name,以便實現更靈活的配置。該參數與SID沒有直接關係,即沒必要Service name 必須與SID同樣。

Net service name:網絡服務名,又能夠稱爲數據庫別名(database alias)。是客戶端程序訪問數據庫時所須要,屏蔽了客戶端如何鏈接到服務器端的細節,實現了數據庫的位置透明的特性。日誌

 

實例 就是管理相關庫的內存結構的名字(由SGA、PGA、服務器進程、用戶進程、後臺進程等組成)
數據庫 就是實際的磁盤上的文件(數據文件、日誌文件、控制文件等),負責保存數據,但由對應的實例來操做它的數據
服務名 就是對外公佈的名稱,爲網絡監聽服務
其實,在咱們傳統的概念裏,數據庫是一個統稱的名字,在Oracle中,你能夠把「數據庫」理解成一個大概念,也要把它理解成一個小概念
一、一個Oracle數據庫系統中能夠同時安裝幾個數據庫,每個數據庫對應一個惟
一的實例,可是OPS系統除外,能夠多個實例同時對一個數據庫操做,稱爲並行服務
進程

二、只是一個名字,SID便是INSTANCE_NAME,SERVICE_NAMES主要用在監聽器中。內存

 

在listener.ora中有SID_NAME,GLOBAL_DBNAME

這裏SID_NAME指數據庫的運行的實例名,應該是和instance_name一致

而對於GLOBAL_DBNAME是listener配置的對外網絡鏈接名稱,咱們在配置tnsname.ora時會考慮這個參數。這個參數能夠任意的設置。

另外有一點須要注意,通常咱們會在listener.ora手工配置數據庫實例的監聽配置。但oracle能夠經過pmon進程支持自動註冊,這時自動註冊的對外網絡鏈接名稱就會用到init.ora文件中service_name,有多個值的話就會註冊多個,對於上面的例子,在這裏就會註冊serv1和serv2兩個監聽服務。若是你還手工配置了一個GLOBAL_DBNAME=serv3的監聽服務的話,那麼對於實例instance_name=aking就會有三個監聽服務。

 

在tnsname.ora中有SERVICE_NAME,SID

下面配置客戶端的tnsname.ora

對於這裏的配置主要要給出要鏈接的數據庫的IP及其鏈接的實例或服務

在監聽配置中咱們提到了對外網絡鏈接名稱,在這裏若是咱們用SERVICE_NAME的話,就須要SERVICE_NAME=(GLOBAL_DBNAME或者service_name這裏要求oracle已經自動註冊到了監聽器中),對於SID=(instance_name)便可,譬如:

SERVICE_NAME=serv1,serv2,serv3均可以,或者

SID=aking

 

最後一個是ORACLE_SID參數,這個參數是操做系統中用到的,它是描述咱們要默認鏈接的數據庫實例,對於一個機器上有多個實例的狀況下,要修改後才能經過 conn / as sysdba鏈接,由於這裏用到了默認的實例名。

 

1.ORACLE_SID:(ORACLE SYSTEM IDENTIFIER)

     以環境變量的形式出現的。
     Oracle實例是由SGA和一組後臺進程組成的,實例的建立和啓動須要一個參數文件,而參數文件的名稱就是由ORACLE_SID決定的。對於init文件,缺省的文件名稱是init<ORACLE_SID>.ora,對於spfile文件,缺省的文件名稱是spfile<ORACLE_SID>.ora
     設置不一樣的ORACLE_SID值,就能夠默認使用不一樣的參數文件啓動不一樣的數據庫實例。
     另外,ORACLE_SID的做用遠遠不是做爲一個實例入口這麼簡單的,在實例啓動後,實例名稱INSTANCE_NAME也是從ORACLE_SID獲得的。
2.INSTANCE_NAME:

     實例名稱,這是Oracle實例的名字,用來區分不通的實例。在Oracle9i以前,該名字存儲在兩個地方:參數文件和數據庫的內部試圖(V$INSTANCE).
     而在Oracle10g以後的版本中,該名字再也不出如今參數文件中,而是動態從系統中得到,默認是取自ORACLE_SID。
     INSTANCE_NAME的做用除了區別不一樣實例以外,在監聽器動態註冊時,還會用於向監聽器註冊。好比instance_name=kanon,監聽中將動態註冊Instance "kanon",status READY信息。
3.DB_NAME:    

     DB_NAME概念相比於INSTANCE_NAME要重要的多,它決定實例將掛在的數據文件。它出如今數據文件,控制文件,日誌文件中。在參數文件中也出現,且必須出現。這個參數涉及到系統的物理文件。
4.SERVICE_NAME和GLOBAL_DBNAME:
     這兩個參數之因此放在一塊兒講,是由於他們每每是成對出現的。SERVICE_NAME出如今Tnsnames.ora文件中,是客戶端要請求的服務名。
     GLOBAL_DBNAME出如今Listener.ora文件中,是服務器提供的服務名,能夠經過show paramerer service_names查看,並能夠經過alter system set service_name='servicename' scope=both來修改。
     兩者對應,實現了Listerner.ora/Tnsnames.ora的重要功能----監聽、請求與驗證。

總結:一條startup命令,到底是如何啓動龐大的oracle數據庫的呢?下面咱們來貫穿起來整個啓動流程,一探究竟:       首先,系統接收到startup命令,馬上採起行動,取得環境變量ORACLE_SID的值,啓動第一階段--實例建立。系統根據找到的參數文件啓動ORACLE數據庫實例,實例啓動後,一切由實例接管:註冊INSTANCE_NAME,每每INSTANCE_NAME就是來自ORACLE_SID,接着向監聽器動態註冊實例本身,並將INSTANCE_NAME寫入系統數據字典表,       接下來,實例進一步讀取參數文件,取得DB_NAME、控制文件、檢查點等信息,進入第二階段--掛載數據庫。實例從控制文件中取得DB_NAME,並取得數據文件、日誌文件等信息,進行DB_NAME的一致性檢驗、文件的存在性判斷等工做以後,實例將掛載數據庫,掛載的數據庫就是DB_NAME指定的數據庫。       最後,實例進入第三階段--啓動數據庫。這一階段,實例進行了兩項檢查:檢查點和更改點檢查,以後啓動數據庫。

相關文章
相關標籤/搜索