Oracle 跨庫 查詢 複製表資料 分布式查詢

2021-09-07 00:17:59 字數 1758 閱讀 5338

方法一:

在眼下絕大部分資料庫有分布式查詢的須要。以下簡單的介紹怎樣在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...