分散式資料庫系列(二)

wisdomone1發表於2013-02-27

分散式資料庫與資料庫複製對比
Distributed Databases Versus Replicated Databases
二者有關聯,但也是明顯區別.分散式資料庫管理所有資料的單一複製.在通常情況下.
分散式資料庫使用分散式事務訪問本地和遠端資料庫,並實時修改全域性資料庫.

而複製資料庫則是管理多資料庫間的複製,並要維護和保持多個資料庫的資料物件的一致
性.當複製依賴於分散式資料庫技術時,資料庫複製可以提供在分散式資料庫環境中不能
提供的好處.
複製資料庫主要為了提升本地資料庫的效能,保證應用的可用性.因為提供另一種訪問資料
的備選方法.

異質分散式資料庫系統
Heterogeneous Distributed Database Systems
至少存在一個非oracle資料庫.
對於應用而言,仍示為一個本地的資料庫.
oracle要透過名為agent的oracle異質服務的元件訪問oracle. 即oracle透明閘道器.
當然,也可以用通用聯結器,即odbc or ole db協議訪問非oracle,只要非oracle支援這些通用
聯結器.

異質服務
Heterogeneous Services
 異質服務(簡稱:hs),它整合或整合到oracle之中,透過它啟用oracle透明閘道器的功能.運用它
提供一個通用的體系架構和連線oracle與其它非oracle產品的管理機制.而且,具備與之前oracle
透明閘道器版本相容的功能.

透明閘道器代理
Transparent Gateway Agents
 要訪問非oracle,hs使用透明閘道器代理和非oracle聯絡互動.透明閘道器代理的版本與每個非oracle
相關.即不同的非oracle要用不同的代理.
 代理簡化oracle與非oracle的互動與聯絡.透過代理,代表oracle,在非oracle上執行sql和事務.
 

通用連線
Generic Connectivity
  用它可以運用異質服務odbc agent or 異質服務oledb agent訪問非oracle.此二者皆內含於oracle
之中.

 通用連線的優點是不用額外購買其它的代理產品.但是,一些新的功能只能在透明閘道器代理中獲取.

此分節不用講解
Client/Server Database Architecture
分為本地和遠端節點
以db_link為界限

資料庫連結
Database Links
它是分散式資料庫的中心概念.
透過它應用把資料庫視為一個邏輯資料庫

本節包含如下幾個主題:
This section contains the following topics:

資料庫連結是什麼
What Are Database Links?
 
為何使用資料庫連結
Why Use Database Links?
 
資料庫連結之下如何命名全域性資料庫名稱
Global Database Names in Database Links
 
資料庫連結的命名
Names for Database Links
 
資料庫連結的型別
Types of Database Links
 
資料庫連結的使用者
Users of Database Links
 
建立資料庫連結的幾個示例
Creation of Database Links: Examples
 
模式物件與資料庫連結
Schema Objects and Database Links
 
與資料庫連結相關的若干操作限制
Database Link Restrictions


資料庫連結是什麼
What Are Database Links?
資料庫連結是一個指標,即定義一條自一個資料庫到另一個資料庫之間的單向路徑.
資料庫連結的資訊以記錄方式儲存於資料字典中
資料庫連結是單向,非雙向.即如要實現雙端互訪,要在雙端資料庫定義2個相應的
資料庫連結
為了在分散式資料庫中訪問資料,要為分散式資料庫中每個資料庫定義唯一的名稱,
即全域性資料庫名.此全域性資料庫適用於db_link

資料庫連結分為私有和共同的.
私有僅建立資料庫連結可以訪問資料
共同所有資料庫使用者可以訪問資料

資料庫連結的主要區別在於訪問資料的方式不同,其有哪下幾種型別的資料庫連結
connected user link
已連線的使用者連結
 即在遠端(目標)資料庫建立如同在本地資料相同的使用者名稱和密碼,如此和使用本地
 資料庫一樣

fixed user link
固定的使用者連結
  使用定義的資料庫連結中的使用者及密碼進行連結.如此,連線使用者會使用資料庫連結
  中的使用者所具備的許可權和角色

current user link
  以全域性使用者身份連結.本地使用者是以儲存過程定義環境中的全域性使用者連線,而在定義的
  資料庫連結中沒有儲存全域性使用者的密碼.它是ORACLE高階安全的特性一個體現.
 
What Are Shared Database Links?
何謂共享資料庫連結    
 即本地伺服器程式與遠端資料庫的一個連結.此連結是共享性質,因為多個客戶端程式可以
同時使用它.
 本地資料庫使用它連線遠端資料庫時,本地與遠端資料庫的伺服器模式有如下幾種型別:
 
 本地資料庫模式    遠端資料庫模式
    專用            專用
    專用            共享伺服器
    共享伺服器      專用
    共享伺服器      共享伺服器
   
而共享資料庫連結即儲存於上述組合型別之間.共享資料庫連結和標準的資料庫連結有一些區別:
 不同使用者用共享資料庫連結訪問相同的使用者下的物件可以共享相同的網路連線
 每當一個使用者從特定的伺服器程式構建到遠端伺服器的連線時,程式可以重用此已存在的連線.
 何時發生連線重用呢,即相同的伺服器程式使用相同的資料庫連線,可能是以不同的會話
 
 每當在共享伺服器模式下,使用共享資料庫連結時,此資料庫連結直接在本地伺服器下,直接從本
 地的共享伺服器程式構建.而對於在本地共享伺服器模式下,非共享資料庫連結,資料庫連結根據
 本地排程器構建,這樣需要本地排程器的上下文切換成本,還需要排程器檢查這些資料.提升成本.
 
Why Use Database Links?
  最大好處允許使用者不用在遠端資料庫建立對應使用者即可訪問存取其使用者資料.
  即不必是遠端資料庫所在物件的使用者亦可訪問其資料.     
   
資料庫連結之下如何命名全域性資料庫名稱
Global Database Names in Database Links
 db_domain+db_name
 mfg.division3.example_tools.com(此為全域性資料庫,自樹葉子節點往上級節點,即為全域性資料庫名)
 
作為迴環資料庫連結的全域性名稱
Global Name as a Loopback Database Link
  SELECT * FROM ;
  即如sql的資料庫連結與當前的全域性資料庫名稱相匹配,則忽略此資料庫連結;說白了即查詢本地資料庫
 

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-754821/,如需轉載,請註明出處,否則將追究法律責任。

相關文章