1. 程式人生 > >Oracle下建立database link兩種方法

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