方法一:
在眼下絕大部分資料庫有分布式查詢的須要。以下簡單的介紹怎樣在oracle中配置實現跨庫訪問。
比方如今有2個資料庫伺服器,安裝了2個資料庫。資料庫server a和b。如今來實如今a庫中訪問b的資料庫。
第一步、配置aserver端的tnsnames.ora檔案(tnsnames.ora network configuration file),該檔案存放的位置為:
$oracle_home/network/admin/tnsnames.ora
加入例如以下行,當中dblink為連線名(可自己定義),host和port為資料庫偵聽的ip及port,service_name為資料庫的sid,
mediadblink =
(description =
(address_list =
(address = (protocol = tcp)(host = 10.0.0.1)(port = 1521))
) (connect_data =
(service_name = db)
) )
第二步、在aserver的乙個庫中建立b的乙個資料的dblink。語法例如以下:
執行例如以下查詢語句,當中mediadb為database link名(可自己定義),mediadblink為先前在tnsnames.ora中定義的連線名,
dbuser為username,password為密碼
-- create database link
create database link mediadb
connect to dbuser identified by password
using 'mediadblink';
第三步.使用鏈結的資料庫
3.1 查詢、刪除和插入資料和操作本地的資料庫是一樣的。僅僅只是表名須要寫成「表名@database link名」,如
select * from table_name@mediadb ;
3.2 也能夠為這個表建立乙個同義詞
create synonym aaa for table_name@mediadb ;
例如以下語句的效果和3.1中的一樣
select * from aaa;
刪除同義詞的語句為
drop synonym aaa;
select * from tabname@dcmdb where 1=1;
方法二:
複製表資料:
insert into 表名(欄位名) (select 欄位名 from tablename@資料鏈名稱);
檢視dblink:
select owner, db_link from dba_db_links;
刪除:
drop database link dblink名稱
drop public database link dblink名稱
oraclepassword的問題:
sql> create user aaa identified by 1;
create user aaa identified by 1
*error 位於第 1 行:
ora-00988: 缺少或無效口令
sql> create user aaa identified by"1";
使用者已建立
Oracle 跨庫 查詢 複製表資料
方法一 在目前絕大部分資料庫有分布式查詢的需要。下面簡單的介紹如何在oracle中配置實現跨庫訪問。比如現在有2個資料庫伺服器,安裝了2個資料庫。資料庫server a和b。現在來實現在a庫中訪問b的資料庫。第一步 配置a伺服器端的tnsnames.ora檔案 tnsnames.ora networ...
Oracle 跨庫 查詢 複製表資料
方法一 在目前絕大部分資料庫有分布式查詢的需要。下面簡單的介紹如何在oracle中配置實現跨庫訪問。比如現在有2個資料庫伺服器,安裝了2個資料庫。資料庫server a和b。現在來實現在a庫中訪問b的資料庫。第一步 配置a伺服器端的tnsnames.ora檔案 tnsnames.ora networ...
Oracle 跨庫 查詢 複製表資料
在目前絕大部分資料庫有分布式查詢的需要。下面簡單的介紹如何在oracle中配置實現跨庫訪問。比如現在有2個資料庫伺服器,安裝了2個資料庫。資料庫server a和b。現在來實現在a庫中訪問b的資料庫。第一步 配置a伺服器端的tnsnames.ora檔案 tnsnames.ora network co...