dblink主要用於時時同步不是同一個數據庫表。
物化視圖:
在數據庫裏,它的作用無非是定期的從遠程數據庫獲取數據到本地數據庫,這樣的情況一般應用於數據不是實時的。實時的最好直接使用dblink來獲取數據。它與視圖的區別是MV是自動刷新或者手動刷新的,View不用刷新,MV主要用於遠程數據訪問,mv中的數據需要佔用磁盤空間,view中不保存數據。
創建物化視圖的SQL:
CREATE MATERIALIZED VIEW BF_QSP_CREDIT_AMOUNT_MV
REFRESH FORCE ON DEMAND
WITH ROWID
START WITH TO_DATE('22-07-2009 10:10:25', 'DD-MM-YYYY HH24:MI:SS') NEXT SYSDATE + 1/24
AS
SELECT a.* FROM BF_QSP_CREDIT_AMOUNT_ALL@b2b_to_ebs a;
在很多項目上,經常外網需要用到內網基礎數據中的數據,比如現在要訪問企業基本信息,就需要訪問內網基礎數據中的數據,而這個數據是存放在內網數據庫的ENT_LINK_MAN表中。如果內網數據訪問不到就會報錯。
那現在就給大家介紹一種共享數據的方法,通過dblink建立視圖的方式共享內網的數據,視圖建立之後問題得到解決。兩臺不同的數據庫服務器,從一臺數據庫服務器的一個用戶讀取另一臺數據庫服務器下的某個用戶的數據,這個時候可以使用dblink。
如何通過dblink建立視圖呢?
其實dblink和數據庫中的view差不多,建dblink的時候需要知道待讀取數據庫的ip地址,sid以及數據庫用戶名和密碼。
創建可以採用以下方式:
1、已經配置本地服務
以下是引用片段:
create database link sz
connect to approval identified by approval
Using
'(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = xx.xx.x.xx)(PORT = xxxx))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)';
CREATE DATABASE LINK數據庫鏈接名CONNECT TO 用戶名 IDENTIFIED BY 密碼 USING ‘本地配置的數據的實例名’;
此時僅僅是將內網的數據庫進行關聯起來,要想訪問到內網的企業基本信息還需要建立一個視圖關聯上內網的企業基本信息表。那爲什麼要建立一個視圖而不是一個表呢,因爲視圖可以實時的與內網數據保持一致,而表卻不能。接下來介紹如何創建視圖。
create view ENT_LINK_MAN as select * from ENT_LINK_MAN@sz;
create view 視圖名 * from 內網的表名@基礎數據庫名稱;
建立視圖完成後,即可外網訪問到內網的企業基本信息了。