国产福利在线播放|久久精品福利网站免费|国产呻吟视频在线观看|日韩一区二区三区免费高清|久996视频精品免费观看|欧美日本在线一区二区三区|在线最新无码经典无码免費資訊|国产午夜亚洲精品国产成人最大

始創(chuàng)于2000年 股票代碼:831685
咨詢(xún)熱線:0371-60135900 注冊(cè)有禮 登錄
  • 掛牌上市企業(yè)
  • 60秒人工響應(yīng)
  • 99.99%連通率
  • 7*24h人工
  • 故障100倍補(bǔ)償
全部產(chǎn)品
您的位置: 網(wǎng)站首頁(yè) > 幫助中心>文章內(nèi)容

在Oracle下創(chuàng)建database link兩種方法

發(fā)布時(shí)間:  2012/8/14 18:00:50

物理上存放于網(wǎng)絡(luò)的多個(gè)Oracle數(shù)據(jù)庫(kù),邏輯上可以看成一個(gè)單一的大型數(shù)據(jù)庫(kù),用戶(hù)可以通過(guò)網(wǎng)絡(luò)對(duì)異地?cái)?shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行存取,而服務(wù)器之間的協(xié)同處理對(duì)于工作站用戶(hù)及應(yīng)用程序而言是完全透明的,開(kāi)發(fā)人員無(wú)需關(guān)心網(wǎng)絡(luò)的鏈接細(xì)節(jié)、數(shù)據(jù)在網(wǎng)絡(luò)節(jié)點(diǎn)中的具體分布情況和服務(wù)器間的協(xié)調(diào)工作過(guò)程。
數(shù)據(jù)庫(kù)之間的鏈接建立在DATABASE LINK上。要?jiǎng)?chuàng)建一個(gè)DATABASE LINK,必須首先在建立鏈接的數(shù)據(jù)庫(kù)上設(shè)置鏈接字符串,即配置一個(gè)遠(yuǎn)程數(shù)據(jù)庫(kù)的本地網(wǎng)絡(luò)服務(wù)名。
-
 

數(shù)據(jù)庫(kù)全局名稱(chēng)可以用以下命令查出:

SELECT * FROM GLOBAL_NAME;

修改可以用以下語(yǔ)句來(lái)修改參數(shù)值:

ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;

<1>、當(dāng)數(shù)據(jù)庫(kù)參數(shù)global_name=false時(shí),就不要求數(shù)據(jù)庫(kù)鏈接名稱(chēng)跟遠(yuǎn)端數(shù)據(jù)庫(kù)名稱(chēng)一樣。

Oracle數(shù)據(jù)庫(kù)之間進(jìn)行連接通訊。
創(chuàng)建數(shù)據(jù)庫(kù)鏈接的語(yǔ)法如下:
CREATE [PUBLIC] DATABASE LINK link

CONNECT TO username IDENTIFIED BY password

USING ‘connectstring’

其中:
--demona為用net8 easy config創(chuàng)建的連接字符串
目的方數(shù)據(jù)庫(kù)的init.ora文件中的global_names設(shè)為false
重新啟動(dòng)數(shù)據(jù)庫(kù)設(shè)置才能生效
或者用sys用戶(hù)執(zhí)行

注意:創(chuàng)建數(shù)據(jù)庫(kù)鏈接的帳號(hào)必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系統(tǒng)權(quán)限,用來(lái)登錄到遠(yuǎn)程數(shù)據(jù)庫(kù)的帳號(hào)必須有CREATE SESSION權(quán)限。這兩種權(quán)限都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK權(quán)限在DBA中)。

一個(gè)公用數(shù)據(jù)庫(kù)鏈接對(duì)于數(shù)據(jù)庫(kù)中的所有用戶(hù)都是可用的,而一個(gè)私有鏈接僅對(duì)創(chuàng)建它的用戶(hù)可用。由一個(gè)用戶(hù)給另外一個(gè)用戶(hù)授權(quán)私有數(shù)據(jù)庫(kù)鏈接是不可能的,一個(gè)數(shù)據(jù)庫(kù)鏈接要么是公用的,要么是私有的。

創(chuàng)建數(shù)據(jù)庫(kù)鏈接時(shí),還可以使用缺省登錄方式,即不指定遠(yuǎn)程數(shù)據(jù)庫(kù)的用戶(hù)名和密碼:

create public database link zrhs_link

using ‘zrhs’;

在不指定用戶(hù)名和口令的情況下,Oracle使用當(dāng)前的用戶(hù)名和口令登錄到遠(yuǎn)程數(shù)據(jù)庫(kù)。

USING后面指定的是鏈接字符串,也就是遠(yuǎn)程數(shù)據(jù)庫(kù)的網(wǎng)絡(luò)服務(wù)名,這個(gè)服務(wù)名保存在TNSNAMES.ORA文件中,在該文件中定義了協(xié)議、主機(jī)名、端口和數(shù)據(jù)庫(kù)名。

刪除數(shù)據(jù)庫(kù)鏈接的語(yǔ)句是:

DROP [PUBLIC] DATABASE LINK zrhs_link

數(shù)據(jù)庫(kù)鏈接的引用

一般情況下引用數(shù)據(jù)庫(kù)鏈接,可以直接將其放到調(diào)用的表名或視圖名稱(chēng)后面,中間使用一個(gè) @ 作為分割符:

SELECT * FROM worker@zrhs_link ;

對(duì)于經(jīng)常使用的數(shù)據(jù)庫(kù)鏈接,可以建立一個(gè)本地的同義詞,方便使用:

CREATE SYNONYM worker_syn FOR worker@zrhs_link ;

還可以建立一個(gè)本地的遠(yuǎn)程視圖,方便使用:

CREATE VIEW worker AS SELECT * FROM worker@zrhs_link where… ;

現(xiàn)在本視圖可與本地?cái)?shù)據(jù)庫(kù)中的任何其它視圖一樣對(duì)待,也可以授權(quán)給其它用戶(hù),訪問(wèn)此視圖,但該用戶(hù)必須有訪問(wèn)數(shù)據(jù)庫(kù)鏈接的權(quán)限。

對(duì)于另外一種情況,所要訪問(wèn)的表不在數(shù)據(jù)庫(kù)鏈接中指定的遠(yuǎn)程帳戶(hù)下,但該帳戶(hù)有訪問(wèn)該表的權(quán)限,那么我們?cè)诒砻耙由显摫淼挠脩?hù)名:

SELECT * FROM camel.worker@zrhs_link ;

<2>、當(dāng)數(shù)據(jù)庫(kù)參數(shù)global_name=true時(shí),那就要求數(shù)據(jù)庫(kù)鏈接名稱(chēng)跟遠(yuǎn)端數(shù)據(jù)庫(kù)名稱(chēng)一樣
數(shù)據(jù)庫(kù)全局名稱(chēng)可以用以下命令查出

SELECT * FROM GLOBAL_NAME;

atabase link(dblink)--數(shù)據(jù)庫(kù)鏈路
創(chuàng)建dblink的語(yǔ)法:
sql>create database link 數(shù)據(jù)庫(kù)鏈路名
connect to 用戶(hù)名 identified by 口令
using '主機(jī)字符串名';
如:
sql>create database link ora9i.us.Oracle.com ### 這里的us.oracle.com為oracle默認(rèn)域名 ###
connect to scott identified by tiger
using 'sun';

1)dblink名必須與遠(yuǎn)程數(shù)據(jù)庫(kù)的全局?jǐn)?shù)據(jù)庫(kù)名(global_name)相同;
2)用戶(hù)名,口令為遠(yuǎn)程數(shù)據(jù)庫(kù)用戶(hù)名,口令;
3)主機(jī)字符串為本機(jī)tnsnames.ora中定義的串;
4)兩個(gè)同名的數(shù)據(jù)庫(kù)間不得建立dblink;
然后,你就可以通過(guò)dblink訪問(wèn)遠(yuǎn)程數(shù)據(jù)庫(kù)了。
如:
sql>select * from 表名@ora9i.us.Oracle.com;
還可以建立快照(snapshot)通過(guò)dblink實(shí)現(xiàn)遠(yuǎn)程數(shù)據(jù)自動(dòng)傳輸。

查看所有的數(shù)據(jù)庫(kù)鏈接,進(jìn)入系統(tǒng)管理員SQL>操作符下,運(yùn)行命令:

SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';

 

實(shí)際應(yīng)用舉例

 

 

Oracle 數(shù)據(jù)庫(kù)連接就像你在程序中建立一個(gè)到數(shù)據(jù)庫(kù)的連接一樣。

如果數(shù)據(jù)庫(kù)不在本地主機(jī),必須在$Oracle_HOME/network/admin/tnsnames.ora中配置相應(yīng)的tns,然后程序才能通過(guò)配置好的tns訪問(wèn)數(shù)據(jù)庫(kù),但是java通過(guò)thin方式訪問(wèn)oracle例外,可以采用在本地配置好的tns別名,也可以采用tns全解析名,采用別名等號(hào)后的全描述符;如下:

TESTCZ =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = TESTCZ)
  )
 )

舉例。

現(xiàn)在有兩個(gè)數(shù)據(jù)庫(kù)

adb,用戶(hù)名和密碼分別是adb/adb,在本地主機(jī)配置的tns名字是tns_a,所在主機(jī)a;

bdb,用戶(hù)名和密碼分別是bdb/bdb,在本地主機(jī)配置的tns名字是tns_b,所在主機(jī)b;

現(xiàn)在需要在adb上面建一個(gè)連接到bdb數(shù)據(jù)庫(kù)的dblink;

方法1:

在a主機(jī)上編輯tnsnames.ora文件配置bdb數(shù)據(jù)庫(kù)的tns別名tns_b,如下:

tns_b =
 (DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = dbtestb)
  )
 )

然后創(chuàng)建數(shù)據(jù)庫(kù)連接,如下:

create database link

connect to bdb identified by identified by bdb

using 'tns_b';

方法2:

如果沒(méi)有權(quán)限修改tnsnames.ora,那么就沒(méi)有辦法建立到adb數(shù)據(jù)庫(kù)的tns別名,那么就只能采用在創(chuàng)建dblink的時(shí)候,全寫(xiě)解析符號(hào)。創(chuàng)建dblink的方法如下:

create database link

connect to bdb identified by identified by bdb

using '(DESCRIPTION =
  (ADDRESS_LIST =
   (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
  )
  (CONNECT_DATA =
   (SERVICE_NAME = dbtestb)
  )
 )';

創(chuàng)建好tns別名之后,可以采用sqlplus username/password@tnsname來(lái)測(cè)試創(chuàng)建的tns別名是否正確。

我在生產(chǎn)系統(tǒng)中創(chuàng)建的一個(gè)dblink示例:

create database link NEW_DBLINK
  connect to AIIPS identified by "1qaz2wsx"
  using '(DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.193.12)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = zjpub)
    )
  )';


本文出自:億恩科技【www.riomediacenter.com】

服務(wù)器租用/服務(wù)器托管中國(guó)五強(qiáng)!虛擬主機(jī)域名注冊(cè)頂級(jí)提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經(jīng)營(yíng)性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經(jīng)營(yíng)性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經(jīng)營(yíng)性ICP/ISP證:贛B2-20080012
  • 服務(wù)器/云主機(jī) 24小時(shí)售后服務(wù)電話:0371-60135900
  • 虛擬主機(jī)/智能建站 24小時(shí)售后服務(wù)電話:0371-60135900
  • 專(zhuān)注服務(wù)器托管17年
    掃掃關(guān)注-微信公眾號(hào)
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權(quán)所有  地址:鄭州市高新區(qū)翠竹街1號(hào)總部企業(yè)基地億恩大廈  法律顧問(wèn):河南亞太人律師事務(wù)所郝建鋒、杜慧月律師   京公網(wǎng)安備41019702002023號(hào)
      0
     
     
     
     

    0371-60135900
    7*24小時(shí)客服服務(wù)熱線