1. 程式人生 > >ORACLE中的Server_name和SID概念理解

ORACLE中的Server_name和SID概念理解

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概念理解