Oracle下建立database link兩種方法
資料庫之間的連結建立在DATABASE LINK上。要建立一個DATABASE LINK,必須首先在建立連結的資料庫上設定連結字串,即配置一個遠端資料庫的本地網路服務名。
資料庫全域性名稱可以用以下命令查出:
SELECT * FROM GLOBAL_NAME;
修改可以用以下語句來修改引數值:
ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
<1>、當資料庫引數global_name=false時,就不要求資料庫連結名稱跟遠端資料庫名稱一樣。
oracle資料庫之間進行連線通訊。
建立資料庫連結的語法如下:
CREATE [PUBLIC] DATABASE LINK link
CONNECT TO username IDENTIFIED BY password
USING ‘connectstring’
其中:
--demona為用net8 easyconfig建立的連線字串
目的方資料庫的init.ora檔案中的global_names設為false
重新啟動資料庫設定才能生效
或者用sys使用者執行
注意:建立資料庫連結的帳號必須有CREATE DATABASE LINK或CREATE PUBLIC DATABASE LINK的系統許可權,用來登入到遠端資料庫的帳號必須有CREATE SESSION許可權。這兩種許可權都包含在CONNECT角色中(CREATE PUBLIC DATABASE LINK許可權在DBA中)。
一個公用資料庫連結對於資料庫中的所有使用者都是可用的,而一個私有連結僅對建立它的使用者可用。由一個使用者給另外一個使用者授權私有資料庫連結是不可能的,一個數據庫連結要麼是公用的,要麼是私有的。
建立資料庫連結時,還可以使用預設登入方式,即不指定遠端資料庫的使用者名稱和密碼:
create public database link zrhs_link
using ‘zgrs’;
在不指定使用者名稱和口令的情況下,ORACLE使用當前的使用者名稱和口令登入到遠端資料庫。
USING後面指定的是連結字串,也就是遠端資料庫的網路服務名,這個服務名儲存在TNSNAMES.ORA檔案中,在該檔案中定義了協議、主機名、埠和資料庫名。
刪除資料庫連結的語句是:
DROP [PUBLIC] DATABASE LINK zgrs_link
資料庫連結的引用
一般情況下引用資料庫連結,可以直接將其放到呼叫的表名或檢視名稱後面,中間使用一個 @ 作為分割符:
SELECT * FROM [email protected]_link ;
對於經常使用的資料庫連結,可以建立一個本地的同義詞,方便使用:
CREATE SYNONYM worker_syn FOR [email protected]_link ;
還可以建立一個本地的遠端檢視,方便使用:
CREATE VIEW worker ASSELECT * FROM [email protected]_link where… ;
現在本檢視可與本地資料庫中的任何其它檢視一樣對待,也可以授權給其它使用者,訪問此檢視,但該使用者必須有訪問資料庫連結的許可權。
對於另外一種情況,所要訪問的表不在資料庫連結中指定的遠端帳戶下,但該帳戶有訪問該表的許可權,那麼我們在表名前要加上該表的使用者名稱:
SELECT * FROM [email protected]_link ;
<2>、當資料庫引數global_name=true時,那就要求資料庫連結名稱跟遠端資料庫名稱一樣
資料庫全域性名稱可以用以下命令查出
SELECT * FROM GLOBAL_NAME;
databaselink(dblink)--資料庫鏈路
建立dblink的語法:
sql>create database link 資料庫鏈路名
connect to 使用者名稱identified by 口令
using '主機字串名';
如:
sql>create database link ora9i.us.oracle.com ### 這裡的us.oracle.com為oracle預設域名 ###
connect to scott identified by tiger
using 'sun';
1)dblink名必須與遠端資料庫的全域性資料庫名(global_name)相同;
2)使用者名稱,口令為遠端資料庫使用者名稱,口令;
3)主機字串為本機tnsnames.ora中定義的串;
4)兩個同名的資料庫間不得建立dblink;
然後,你就可以通過dblink訪問遠端資料庫了。
如:
sql>select * from 表名@ora9i.us.oracle.com;
還可以建立快照(snapshot)通過dblink實現遠端資料自動傳輸。
檢視所有的資料庫連結,進入系統管理員SQL>操作符下,執行命令:
SQL>select owner,object_name from dba_objects where object_type='DATABASE LINK';
實際應用舉例
oracle 資料庫連線就像你在程式中建立一個到資料庫的連線一樣。
如果資料庫不在本地主機,必須在$ORACLE_HOME/network/admin/tnsnames.ora中配置相應的tns,然後程式才能通過配置好的tns訪問資料庫,但是java通過thin方式訪問oracle例外,可以採用在本地配置好的tns別名,也可以採用tns全解析名,採用別名等號後的全描述符;如下:
TESTCZ =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = TESTCZ)
)
)
舉例。
現在有兩個資料庫
adb,使用者名稱和密碼分別是adb/adb,在本地主機配置的tns名字是tns_a,所在主機a;
bdb,使用者名稱和密碼分別是bdb/bdb,在本地主機配置的tns名字是tns_b,所在主機b;
現在需要在adb上面建一個連線到bdb資料庫的dblink;
方法1:
在a主機上編輯tnsnames.ora檔案配置bdb資料庫的tns別名tns_b,如下:
tns_b =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dbtestb)
)
)
然後建立資料庫連線,如下:
create database link
connect to bdb identified by identified by bdb
using 'tns_b';
方法2:
如果沒有許可權修改tnsnames.ora,那麼就沒有辦法建立到adb資料庫的tns別名,那麼就只能採用在建立dblink的時候,全寫解析符號。建立dblink的方法如下:
create database link
connect to bdbidentified by identified by bdb
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.70.9.12)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = dbtestb)
)
)';
建立好tns別名之後,可以採用sqlplus username/[email protected]來測試建立的tns別名是否正確。
在生產系統中建立的一個dblink示例:
create database link NEW_DBLINK
connect to zjwd identified by "1234566"
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST =10.70.244.24)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = rspub)
)
)';
相關推薦
Oracle下建立database link兩種方法
資料庫之間的連結建立在DATABASE LINK上。要建立一個DATABASE LINK,必須首先在建立連結的資料庫上設定連結字串,即配置一個遠端資料庫的本地網路服務名。 資料庫全域性名稱可以用以下命令查出: SELECT * FROM GLOBAL_NAME; 修改可以用
Centos6下安裝Nginx的兩種方法
一,通過yum命令安裝 1、作業系統版本的確認很重要,因為下一步我們要依靠這個來建立yum原始檔 2、建立 nginx.repo vi /etc/yum.repos.d/nginx.repo 檔案內容如下(如果是centos7,則對應的把數字6改成7): [ngi
pyspark 讀取csv檔案建立DataFrame的兩種方法
pyspark 讀取csv檔案建立DataFrame的兩種方法 方法一:用pandas輔助 from pyspark import SparkContext from pyspark.sql import SQLContext import pandas as pd sc
Oracle listagg去重的兩種方法
一:SELECT DISTINCT TYPE, SUBTYPE, LISTAGG (EN, ' | ') WITHIN GROUP (ORDER BY EN) OVER (PARTITION BY TYPE, SUBTYPE) AS SKILLS FROM (S
DOS下建立連線的兩種方式
在DOS中,有著兩種建立連結的方法:快捷方式和連結。 一、快捷方式 快捷方式應該是使用得比較多的了,它其實是一個字尾名為.lnk的檔案,其在BAT指令碼中建立的方式是通過VB來進行建立,具體程式碼如下::CreateShortmshta VBScript:
Linux 下操作gpio(兩種方法,驅動和mmap)
目前我所知道的在linux下操作GPIO有兩種方法: 1. 編寫驅動,這當然要熟悉linux下驅動的編寫方法和技巧,在驅動裡可以使用ioremap函式獲得GPIO物理基地址指標,然後使用這個指標根據ioctl命令進行GPIO暫存器的讀寫,並把結果回送到應用層。這裡提供
JS動態建立css的兩種方法
動態建立css樣式有兩種方式: 1.引入外部css檔案 2.插入css程式碼片段 動態插入css外部檔案的方法: function loadStyle(url){ var link = document.createElement('link'); link
Oracle匯出DMP檔案的兩種方法
1:G:\Oracle\product\10.1.0\Client_1\NETWORK\ADMIN目錄下有個tnsname.ora檔案,內容如下:CMSTAR = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOS
oracle如何建立Database Link
這其實是個小問題,建立dblink的語法語句隨處可見,可我著實為了這個連線遠端資料庫的事情折騰了幾天。 需求是這樣的,在本地利用Oracle SQL Developer工具建立一個遠端資料庫A的連線,然後在該連線上建立另一個遠端資料庫B的連線,以便於兩個資料庫同步資料。
Android下列印堆疊的兩種方法
1. for(StackTraceElement i:Thread.currentThread().getStackTrace()){ System.out.println(i); } 2. Log.i("bill",Log.getS
oracle自增問題(兩種方法)!
1Triggersql語句如下:createorreplacetrigger trigger_namebefore inserton your_sid.tablenamefor each rowbegindeclare i number;cursor cur issel
Git 建立倉庫的兩種方法
主要有兩種建立 Git 倉庫的方法: 遠端建立,本地克隆 本地建立,提交到遠端 1. 在 GitHub 網站上進行倉庫建立,克隆到本地 git clone [email prote
Linux下安裝驅動的兩種方法
linux 編譯安裝驅動有兩種,動態載入與靜態載入 動態載入 一,編譯,在指點核心樹下編譯,生成.o檔案或.ko檔案 二,將生成的.o或.ko檔案拷到相應目錄,一般是/lib/module/kernel下面 三,用insmod命令載入,用rmmod命令解除安裝 靜態載入 靜態
filebeat配置不同路徑下的log的兩種方法
frequency spec logs false for als chan paths path 第一種方法: vim /etc/filebeat/filebeat.yml filebeat.inputs: # Each - is an input. M
Oracle 修改字段順序的兩種方法
font update 建表 ont != har 使用 objects class 分類: Oracle 如果要修改字段順序,一般情況可以使用以下步驟: --(1)備份目標表數據 create table 臨時表 as select * from 目標表;
oracle rename數據文件的兩種方法
ati oar online 技術 off target pen 分類 alt oracle rename數據文件的兩種方法 2012-12-11 20:44 10925人閱讀 評論(0) 收藏 舉報 分類: oracle(98) 版權聲明:本文為博主原創
CentOS 7下修改默認網卡名為eth0的兩種方法
修改網卡eth0第一種方式這種方式適合在安裝操作系統的時候進行設置,點擊 Tab,打開kernel啟動選項,增加內核參數: net.ifnames=0 biosdevname=0--->Enter回車第二種方式修改網卡配置文件中的 DEVICE= 參數的關於 eth0[root@ansheng ~]
交換機環境下實現同vlan不能互通卻都能訪問服務器的兩種方法
trunk和hrbrid的驗證網絡拓撲圖:一、通過hybrid實現可以實現同VLAN不通,卻都可以訪問服務器。思路:PC機識別不了VLAN所帶的標簽,所以PC5想要接收VLAN4所發的數據,就應該在LSW8中的GE 0/0/1的接口設置取掉VLAN4和VLAN2的標簽, 同理,PC6也要取掉VLAN4和VLA
linux環境下編譯運行OpenCV程序的兩種方法
https 鏈接庫 pen vco ons 程序 TP uil htm 一、命令行Command Line 1 g++ opencv_test.cpp -o opencv_test `pkg-config --cflags --libs opencv` 2 ./op
【轉】Vue-詳解設置路由導航的兩種方法: <router-link :to="..."> 和router.push(...)
name app query outer 參數 size 命名 字符 適用於 一、<router-link :to="..."> to裏的值可以是一個字符串路徑,或者一個描述地址的對象。例如: // 字符串 <router-link to="apple