我想成立一個Oracle數據庫的URL我JDBC連接如和一些網站說SID
應該是URL的一部分,很少說架構名稱。迷茫中的Oracle命名
請比較schema, service name and SID
in ORACLE?他們是如何相關的?
是像SID:schema
被1:n
作爲一個SID可以指向到n 模式?
請說明它們之間的關係。
我想成立一個Oracle數據庫的URL我JDBC連接如和一些網站說SID
應該是URL的一部分,很少說架構名稱。迷茫中的Oracle命名
請比較schema, service name and SID
in ORACLE?他們是如何相關的?
是像SID:schema
被1:n
作爲一個SID可以指向到n 模式?
請說明它們之間的關係。
SID是數據庫的唯一標識符,或者是數據庫實例的RAC系統。
服務是數據庫提供的服務的標識符,並且數據庫應配置爲「BILLING_APP」或「CUST_WEBSITE」等服務。 http://docs.oracle.com/cd/B28359_01/server.111/b28320/initparams217.htm
順便說一句,不要混淆數據庫和實例。數據庫是一組數據和控制(等)文件,實例是訪問它的內存區和進程。 RAC每個數據庫有多個實例,每個實例可以向偵聽器註冊,以提供數據庫提供的全部或部分全部服務。
模式實際上是擁有對象的用戶名,並且數據庫中可以有多個模式。
所以一個應用程序應該引用一個SERVICE來連接,通過某個主機和端口上的偵聽器。監聽器將其解析爲數據庫(可能是提供該服務的許多註冊中的一個)。以可能或可能不是架構所有者的用戶身份連接到數據庫。通常,出於安全原因,連接不會作爲模式所有者 - 事實上,最佳安全級別是以User_A連接,調用User_B模式中的代碼,並且引用其他用戶模式中的表。
SID是服務ID,並且是指單個Oracle數據庫實例
服務名稱是很象一個SID但多個的SID可以由一個服務名稱
例如被引用在Dataguard場景中,主實例可能是SID_01和ORA_SRV。 SID_02和SID_03在網絡上的某處運行,並接收和應用日誌文件。 SID_01失敗並且SID_02出現(掛載和打開),現在在網絡上公開爲ORA_SRV。
與RAC類似,多個SID組成一個Service。
模式實際上是一個用戶。
JDBC連接將採用某種形式的「主機:端口:(SID或服務名稱)」。您將不得不連接到數據庫,並使用用戶名和密碼進行操作。用戶名(幾乎總是)將您連接到該名稱的模式。您可以使用sql中的點符號在另一個架構中引用對象,例如SCHEMA.OBJECT_NAME
不要混淆數據庫和實例 - 數據庫是一組文件,實例是內存區域和訪問它的進程。 RAC每個數據庫有多個實例,每個實例都可以提供數據庫提供的全部服務的一部分。 –
Yeap,但是對於不熟悉Oracle實例的人來說,不那麼容易混淆該數據庫。鑑於該實例在IT中用於引用系統的實例,並且考慮到其他RDBMS使用數據庫,所以將其簡單化是一個好主意。 – Karl
請參閱http:// stackoverflow。com/questions/43866/how-sid-is-different-from-service-name-in-oracle-tnsnames-ora –