oracle建立dblink
易混淆術(shù)語(yǔ)介紹:
Db_name:對(duì)一個(gè)數(shù)據(jù)庫(kù)(Oracle database)的唯一標(biāo)識(shí),該數(shù)據(jù)庫(kù)為第一章講到的Oracle database。這種表示對(duì)于單個(gè)數(shù)據(jù)庫(kù)是足夠的,但是隨著由多個(gè)數(shù)據(jù)庫(kù)構(gòu)成的分布式數(shù)據(jù)庫(kù)的普及,這種命令數(shù)據(jù)庫(kù)的方法給數(shù)據(jù)庫(kù)的管理造成一定的負(fù)擔(dān),因?yàn)楦鱾€(gè)數(shù)據(jù)庫(kù)的名字可能一樣,造成管理上的混亂。為了解決這種情況,引入了Db_domain參數(shù),這樣在數(shù)據(jù)庫(kù)的標(biāo)識(shí)是由Db_name和Db_domain兩個(gè)參數(shù)共同決定的,避免了因?yàn)閿?shù)據(jù)庫(kù)重名而造成管理上的混亂。這類似于互連網(wǎng)上的機(jī)器名的管理。我們將Db_name和Db_domain兩個(gè)參數(shù)用’.’連接起來(lái),表示一個(gè)數(shù)據(jù)庫(kù),并將該數(shù)據(jù)庫(kù)的名稱稱為Global_name,即它擴(kuò)展了Db_name。Db_name參數(shù)只能由字母、數(shù)字、’_’、’#’、’$’組成,而且最多8個(gè)字符。
Db_domain:定義一個(gè)數(shù)據(jù)庫(kù)所在的域,該域的命名同互聯(lián)網(wǎng)的’域’沒有任何關(guān)系,只是數(shù)據(jù)庫(kù)管理員為了更好的管理分布式數(shù)據(jù)庫(kù)而根據(jù)實(shí)際情況決定的。當(dāng)然為了管理方便,可以將其等于互聯(lián)網(wǎng)的域。
Global_name:對(duì)一個(gè)數(shù)據(jù)庫(kù)(Oracle database)的唯一標(biāo)識(shí),oracle建議用此種方法命令數(shù)據(jù)庫(kù)。該值是在創(chuàng)建數(shù)據(jù)庫(kù)是決定的,缺省值為Db_name. Db_domain。在以后對(duì)參數(shù)文件中Db_name與Db_domain參數(shù)的任何修改不影響Global_name的值,如果要修改Global_name,只能用ALTER DATABASE RENAME GLOBAL_NAME TO <db_name.db_domain>命令進(jìn)行修改,然后修改相應(yīng)參數(shù)。
Service_name:該參數(shù)是oracle8i新引進(jìn)的。在8i以前,我們用SID來(lái)表示標(biāo)識(shí)數(shù)據(jù)庫(kù)的一個(gè)實(shí)例,但是在Oracle的并行環(huán)境中,一個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)多個(gè)實(shí)例,這樣就需要多個(gè)網(wǎng)絡(luò)服務(wù)名,設(shè)置繁瑣。為了方便并行環(huán)境中的設(shè)置,引進(jìn)了Service_name參數(shù),該參數(shù)對(duì)應(yīng)一個(gè)數(shù)據(jù)庫(kù),而不是一個(gè)實(shí)例,而且該參數(shù)有許多其它的好處。該參數(shù)的缺省值為Db_name. Db_domain,即等于Global_name。一個(gè)數(shù)據(jù)庫(kù)可以對(duì)應(yīng)多個(gè)Service_name,以便實(shí)現(xiàn)更靈活的配置。該參數(shù)與SID沒有直接關(guān)系,即不必Service name 必須與SID一樣。
Net service name:網(wǎng)絡(luò)服務(wù)名,又可以稱為數(shù)據(jù)庫(kù)別名(database alias)。是客戶端程序訪問(wèn)數(shù)據(jù)庫(kù)時(shí)所需要,屏蔽了客戶端如何連接到服務(wù)器端的細(xì)節(jié),實(shí)現(xiàn)了數(shù)據(jù)庫(kù)的位置透明的特性。
?
實(shí)例 就是管理相關(guān)庫(kù)的內(nèi)存結(jié)構(gòu)的名字(由SGA、PGA、服務(wù)器進(jìn)程、用戶進(jìn)程、后臺(tái)進(jìn)程等組成)
數(shù)據(jù)庫(kù) 就是實(shí)際的磁盤上的文件(數(shù)據(jù)文件、日志文件、控制文件等),負(fù)責(zé)保存數(shù)據(jù),但由對(duì)應(yīng)的實(shí)例來(lái)操作它的數(shù)據(jù)
服務(wù)名 就是對(duì)外公布的名稱,為網(wǎng)絡(luò)監(jiān)聽服務(wù)
其實(shí),在我們傳統(tǒng)的概念里,數(shù)據(jù)庫(kù)是一個(gè)統(tǒng)稱的名字,在Oracle中,你可以把“數(shù)據(jù)庫(kù)”理解成一個(gè)大概念,也要把它理解成一個(gè)小概念
1、一個(gè)Oracle數(shù)據(jù)庫(kù)系統(tǒng)中可以同時(shí)安裝幾個(gè)數(shù)據(jù)庫(kù),每一個(gè)數(shù)據(jù)庫(kù)對(duì)應(yīng)一個(gè)唯
一的實(shí)例,但是OPS系統(tǒng)除外,可以多個(gè)實(shí)例同時(shí)對(duì)一個(gè)數(shù)據(jù)庫(kù)操作,稱為并行服務(wù)
器
2、只是一個(gè)名字,SID即是INSTANCE_NAME,SERVICE_NAMES主要用在監(jiān)聽器中,
為了方便吧,有些是為了傳統(tǒng)習(xí)慣的延續(xù),有些是為了更方便的使用
3、NET EASY CONFIG操縱的應(yīng)該是主機(jī)字符串,是為客戶端服務(wù)的
一個(gè)數(shù)據(jù)庫(kù)可以對(duì)外公布多個(gè)服務(wù)名(SERVICE_NAMES)
一個(gè)客戶端也可以用多個(gè)主機(jī)字符串連接到同一個(gè)數(shù)據(jù)庫(kù)服務(wù)器上
4、一個(gè)OS上可以裝多個(gè)Oracle數(shù)據(jù)庫(kù)(小的概念),每個(gè)庫(kù)可以對(duì)外公布多個(gè)服
務(wù)名,都通過(guò)init.ora和listener.ora來(lái)實(shí)現(xiàn)
-----------------------------------------------------
1建立net 服務(wù)名
linux下 進(jìn)入
cd $ORACLE_HOME/network/admin
vi tnsnames.ora
添加
CCPBS_19 =
? (DESCRIPTION =
??? (ADDRESS_LIST =
????? (ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.38.19)(PORT = 1521))
??? )
??? (CONNECT_DATA =
????? (SERVICE_NAME = CCPBS)
??? )
? )
?保存 退出 然后測(cè)試下
>tnsping ccpbs_19
?
TNS Ping Utility for Linux: Version 9.2.0.7.0 - Production on 02-JUL-2009 15:16:52
Copyright (c) 1997 Oracle Corporation.? All rights reserved.
Used parameter files:
Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.130.38.19)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = CCPBS)))
OK (20 msec)
測(cè)試成功
Windows下的參見 http://article.pchome.net/content-340501.html
?
2、創(chuàng)建數(shù)據(jù)庫(kù)鏈接,
?
/home/oracle/>sqlplus /nolog
SQL*Plus: Release 9.2.0.7.0 - Production on Thu Jul 2 16:01:00 2009
Copyright (c) 1982, 2002, Oracle Corporation.? All rights reserved.
SQL> conn /as sysdba
Connected.
進(jìn)入系統(tǒng)管理員SQL>操作符下,運(yùn)行命令:
>create public database link ecbm_19 connect to ecbm_userName identified by ecbm_pwd using 'CCPBS_19';
Database link created.
格式:
create public database link?link_name connect to user identified by password using 'SID';
則創(chuàng)建了一個(gè)連接到10.130.38.19 ccpbs上以ecbm_userName 用戶的連接
查詢數(shù)據(jù)時(shí)帶上@ecbm_19 就ok了 如select * from emp@ecbm_19;
刪除 DROP PUBLIC DATABASE LINK ecbm_19;
?
?
3、建立同義詞,為了使有關(guān)分布式操作更透明,ORACLE數(shù)據(jù)庫(kù)里有同義詞的對(duì)象synonym
SQL>create synonym bjscottemp for emp@beijing;
于是就可以用bjscottemp來(lái)替代帶@符號(hào)的分布式鏈接操作emp@beijing。
create public synonym poh for po_headers_all@erp_danzheng_test;
create public synonym papf for per_all_people@erp_danzheng_test;
create public synonym pv for po_vendors@erp_danzheng_test;
?
?
4、查看所有的數(shù)據(jù)庫(kù)鏈接,進(jìn)入系統(tǒng)管理員SQL>操作符下,運(yùn)行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
?
?參考 http://moonsoft.itpub.net/post/15182/125559
?
?
總結(jié)
以上是生活随笔為你收集整理的oracle建立dblink的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ⒉设置 Bash 选项[3-3]
- 下一篇: 一个按钮触发两个事件可以吗?