您的位置:首頁技術文章
文章詳情頁

ORACLE創建DBlink的過程及使用方法

瀏覽:29日期:2023-09-15 20:49:58
目錄1. ORACLE DBlink的創建和使用1.1. 基本概念:1.2. 概述1.2.1. database link分類1.3. database link的創建1.4. 查看dblink1.5. 使用toad for oracle創建dblink1.6. database link刪除1.7. 通過dblink應用例子1. ORACLE DBlink的創建和使用1.1. 基本概念:database link(簡稱DBLINK)是定義一個數據庫到另一個數據庫的路徑的對象,database link允許查詢其他數據庫的遠程表及執行遠程程序。database link是單向的連接。在創建database link的時候,Oracle在數據字典中保存相關的database link的信息。在使用database link的時候,Oracle通過預先定義好的連接信息,訪問相應的遠程數據庫以完成相應的工作。dblink(Database Link)就像電話線一樣是一個通道,如果要訪問另外一個數據庫表中的數據時,本地數據庫中就必須要創建遠程數據庫的dblink,通過dblink本地數據庫可以像訪問本地數據庫一樣訪問遠程數據庫表中的數據。

1、建立dblink之前需要確認的事項:

#確認從local database到remote database的網絡連接是正常的,tnsping要能成功。#確認在remote database上面有相應的訪問權限。1.2. 概述

1、database link是定義一個數據庫到另一個數據庫的路徑的對象,database link允許你查詢遠程表及執行遠程程序。在任何分布式環境里,database都是必要的。另外要注意的是database link是單向的連接。

2、在創建database link的時候,Oracle再數據字典中保存相關的database link的信息,在使用database link的時候,Oracle通過Oracle Net用用戶預先定義好的連接信息訪問相應的遠程數據庫以完成相應的工作。

1.2.1. database link分類類型Owner描述Pr ivate創建database link的user擁有該database link在本地數據庫的特定的schema下建立的database link。只有建立該database link的schema的session能使用這個database link來訪問遠程的數據庫。同時也只有Owner能刪除它自己的private database link。PublicOwner是PUBLIC.Public的database link是數據庫級的,本地數據庫中所有的擁有數據庫訪問權限的用戶或pl/sql程序都能使用此database link來訪問相應的遠程數據庫。GlobalOwner是PUBLIC.Global的database link是網絡級的,When an Oracle network uses a directory server, the directory server automatically create and manages global database links (as net service names) for every Oracle Database in the network. Users and PL/SQL subprograms in any database can use a global link to access objects in the corresponding remote database.Note: In earlier releases of Oracle Database, a global database link referred to a database link that was registered with an Oracle Names server. The use of an Oracle Names server has been deprecated. In this document, global database links refer to the use of net service names from the directory server.1.3. database link的創建

創建dblink的用戶有對應的數據庫權限,創建dblink命令為:

--public表示所創建的dblink所有用戶都可以使用

create public database link

或者--所創建的dblink只能是創建者能使用,別的用戶使用不了

create database link

如果用戶沒有權限創建dblink,則可以通過管理員身份并使用 :

grant create public database link, create database link to myAccount;1.4. 查看dblinkset linesize 300set pagesize 999col DB_LINK format a30col USERNAME format a30col HOST format a30col CREATED format a10col OWNER format a10col object_name format a20select owner,object_name from dba_objects where object_type='DATABASE LINK';SELECT A.OWNER, A.HOST, A.DB_LINK, A.USERNAME, A.CREATED, DECODE (B.FLAG, 0, 'NO', 1, 'YES') 'DEC', B.AUTHUSR, C.STATUSFROM DBA_DB_LINKS A, SYS.USER$ U, SYS.LINK$ B, DBA_OBJECTS C WHERE A.DB_LINK = B.NAME AND A.OWNER = U.NAME AND B.OWNER# = U.USER# AND A.DB_LINK = C.OBJECT_NAME AND A.OWNER = C.OWNER AND C.OBJECT_TYPE = 'DATABASE LINK'ORDER BY 1, 2, 3;查看dblink的link信息:select * from dba_db_links;

或者

select * from dba_db_links;

如:A庫需要訪問B庫的表數據,需要在A庫建立連接到B庫的dblink,在A賬戶下執行(推薦):

create database link LIS_LINK01 connect to bUser identified by bPasword using '10.22.xx.xx:1521/orcl'create database link hebtz connect to hebtz identified by '1' using '192.168.2xx:1521/hebtzstd';

bUser:B庫的數據庫賬戶

bPassword:B庫的數據密碼

10.22.xx.xx:B庫的ip地址

create database link blink1 connect to dbName identified by dbPassword using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.1.106)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))';--blink1 : 表示dblink名字--dbName :表示 遠程數據庫的用戶--dbPassword:表示 遠程數據庫的密碼--HOST : 表示遠程數據庫IP--PORT : 表示遠程數據庫端口--SERVICE_NAME : 遠程數據庫的實例名1.5. 使用toad for oracle創建dblink

圖解dblink創建過程:

這時可以通過SSH用戶訪問SJSJZX用戶中的表了:

select * from T_WEBSERVICE@db31.6. database link刪除

-- 刪除public類型的database link

DROP PUBLIC database link link_name;

-- 刪除非public類型的database link

-- 注意:只有owner自己能刪除自己的非public類型database link

DROP database link link_name;1.7. 通過dblink應用例子

當需要跨庫拷貝數據而且數據量很大的時候,使用dblink速度很快。

如:通過dblink跨庫復制數據量非常多的表T_WEBSERVICE

create table test as select * from T_WEBSERVICE@db3

到此這篇關于ORACLE DBlink的創建和使用的文章就介紹到這了,更多相關oracle創建dblink內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Oracle 數據庫
国产综合久久一区二区三区