ORACLE中的Server_name和SID概念理解

來源:互聯網
上載者:User

標籤:oracle   sid   server_name   

博文說明【前言】:

    本文將通過個人口吻介紹在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



本文:


    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。


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



結尾:



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





本文出自 “清風攬月的部落格” 部落格,請務必保留此出處http://watchmen.blog.51cto.com/6091957/1928387

ORACLE中的Server_name和SID概念理解

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.