天天看點

ORACLE中的Server_name和SID概念了解

博文說明【前言】:

    本文将通過個人口吻介紹在ORACLE中的Server_name和執行個體名SID的相關概念,在目前時間點【2017年5月22号】下,所掌握的技術水準有限,可能會存在不少知識了解不夠深入或全面,望大家指出問題共同交流,在後續工作及學習中如發現本文内容與實際情況有所偏差,将會完善該博文内容。

本文參考文獻引用連結:

1、http://blog.csdn.net/luman1991/article/details/56286371

2、http://blog.csdn.net/yaksok/article/details/52130228

<a href="https://www.zhihu.com/question/25912483" target="_blank"></a>

正文:

    SERVER_NAME參數是由oracle8i開始引進的。在8i以前,使用SID來表示辨別資料庫的一個執行個體,但是在Oracle的并行環境中,一個資料庫對應多個執行個體,這樣就需要多個網絡服務名,設定繁瑣。為了友善并行環境中的設定,引進了Service_name參數,該參數對應一個資料庫,而不是一個執行個體,而且該參數有許多其它的好處。該參數的預設值為Db_name. Db_domain,即等于Global_name。一個資料庫可以對應多個Service_name,以便實作更靈活的配置。該參數與SID沒有直接關系,即不必Service name 必須與SID一樣,而sid是資料庫執行個體的名字,每個執行個體各不相同。

案例分析:

一、引入關系:

伺服器=公司

資料庫=運維支援部(資料庫分為單機和叢集環境,也就是部門的人數多少關系)

資料庫叢集環境=運維支援部門(假設部門有小麗,小美兩名員工,對應SID1,SID2)

資料庫連接配接請求=公司員工或者其他部門請求運維部提供技術支援

資料庫伺服器=裝載了資料庫的伺服器,也就是擁有活躍運維部門的公司,當然伺服器除了裝載資料庫,我還可以安裝其他軟體提供其他服務

二、工作過程:

1、老王是研發部門的一個員工,在連接配接資料庫的發現無法連接配接,是以在公司内部溝通平台發送了一個請求,請求運維部檢視下資料庫服務是否異常。

2)運維部的小麗接受了這個問題,也就是小麗給老王提供了這次服務,最終順利解決該問題

3)過了一周,老王又發現資料庫連接配接有問題,又在公司内部溝通平台發送了一個請求,請求運維部檢視下資料庫服務是否異常。

4)運維部的小美接受了這個問題,也就是小美給老王提供了這次服務,最終順利解決該問題

三、案例分析:

1、這裡真實提供服務的就是SID(第一次是小麗SID1,第二次是小美SID2,第三次也是兩者之一)

2、運維支援部門,在公司内部溝通平台對應有一個虛拟使用者(Server_name),使用者将回報送出給該使用者,然後由該虛拟使用者去排程後方真實節點提供服務,使用過JIRA平台的小夥伴應該深有感觸。

3、使用者不用關系,真實給我提供服務的人是誰,每次隻需要将問題送出給該虛拟使用者(server_name),就會有支援人員來解決我的問題。

注意:在這裡使用者如果知道運維部裡面具體有誰,也可以配置成直接将問題配置設定給比如小麗,也就是說,在配置資料庫連接配接資訊時,可以配置成直接連接配接SID,也可以配置成連接配接server_name,然後由server_name去調控SID去處理請求。

總結:

SID:

一個資料庫可以有多個執行個體(如RAC叢集環境),SID用來辨別資料庫内部每個執行個體的名字,就好像一個部門裡,每個人都有一個自己的名字(小麗和小美等)。

SERVICE_NAME:

資料庫對外宣稱的名字,它就像一個部門的名字,這個部門的名稱在資料庫的看門大爺(listener)那裡有登記。看門大爺一看你是要找SERVICE_NAME這個部門(運維部),就告訴你我們公司确實有這個部門,于是你就找到了,連接配接就建立了。

對于叢集來說,每個節點的SID 是不一樣的,但是SERVICE_NAME 可以包含所有節點。

一句話來說就是:

SID是對内部來說的,是執行個體級别的一個名字,用于資料庫内部之間稱呼。

SERVICE_是對外的,是資料庫級别的一個名字,用來告訴外面的人,我資料庫叫"SERVICE_NAME"。

你可以通過service_name參數指定這個名字是什麼,可以有多個名字,名字随便起,叫老王,老張都沒關系。如果你不指定,預設的是Db_name. Db_domain,也就是global_name。

這些易混淆的名字,你隻要記住,他們不是指資料庫,就是指執行個體,就這兩個東西,别無其它。他們具體用哪個名字,要看針對對象。是對資料庫,還是對作業系統,還是對外部連接配接請求。厘清楚這點,就不容易混了

結尾:

     感謝閱讀,祝有收獲的一天,謝謝!

      本文轉自1清風攬月1  51CTO部落格,原文連結:http://blog.51cto.com/watchmen/1928387

,如需轉載請自行聯系原作者