日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問(wèn)題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Oracle建立DBLINK的詳細(xì)步驟記錄

測(cè)試條件:

  假設(shè)某公司總部在北京,新疆有其下屬的一個(gè)分公司。在本次測(cè)試中,新疆的計(jì)算機(jī)為本地計(jì)算機(jī),即本要的IP地址為:192.168.1.100

  北京的總部有一個(gè)集中的數(shù)據(jù)庫(kù),其SID是SIDBJ,用戶名:userbj,密碼:bj123,北京的IP地址是:192.168.1.101。

  在本地(新疆)的分公司也有一個(gè)數(shù)據(jù)庫(kù),其SID是SIDXJ,用戶:userxj,密碼:xj123,新疆的IP地址是:192.168.1.100。

  要將本地新疆的SIDXJ數(shù)據(jù)庫(kù)中訪問(wèn)到北京的數(shù)據(jù)庫(kù)SIDBJ中的數(shù)據(jù)。

  也就是說(shuō),在sidxj的數(shù)據(jù)庫(kù)中,用戶userxj(192.168.1.100)需要建立DBLINK,以u(píng)serbj的用戶身份訪問(wèn)sidBJ(192.168.1.101)中的數(shù)據(jù)。

  測(cè)試環(huán)境:兩個(gè)數(shù)據(jù)庫(kù)均建立在WINXP上,ORACLE的版本均為Oracle817

  建立環(huán)境時(shí),要注意關(guān)閉兩臺(tái)計(jì)算機(jī)上的Windows的防火墻,否則,會(huì)出現(xiàn)能ping通,但Oracle連接不通的情況。

  1、問(wèn):如何返回?cái)?shù)據(jù)庫(kù)的GLOBAL_NAME?

  執(zhí)行SELECT * FROM GLOBAL_NAME;

  北京的數(shù)據(jù)庫(kù)的GLOBAL_NAME為SIDBJ.US.ORACLE.COM

  新疆的數(shù)據(jù)庫(kù)的GLOBAL_NAME為SIDXJ

  2、問(wèn):如何查看Global_name參數(shù)是true還是False?

  答:執(zhí)行:SQL> show parameter global_name;

  執(zhí)行的結(jié)果如下:

  NAME TYPE VALUE
  ------------------------------------ ----------- ------------------------------
  global_names boolean TRUE

  表示該參數(shù)是true.

  該參數(shù)為true時(shí),你在本地建立的DBLINK的名稱必須和遠(yuǎn)程的Global_name一致才行。

  3、問(wèn):查看遠(yuǎn)程數(shù)據(jù)徊是否支持高級(jí)復(fù)制功能。

  答:通過(guò)查看v$option視圖,如果其中Advanced replication為TRUE,則支持高級(jí)復(fù)制功能;否則不支持。

  執(zhí)行語(yǔ)句為:select * from v$option;

  也可以執(zhí)行select * from v$option where PARAMETER='Advanced replication'語(yǔ)句,

  如何返回值為True,那么就是支持,否則就是不支持。在兩個(gè)數(shù)據(jù)庫(kù)中都是檢查是否支持才行。

#p#

建立步驟:

  1、在本地建立一個(gè)Oracle的客戶端連接tns_xj_to_bj,用于連接北京的數(shù)據(jù)庫(kù)。

  在北京的數(shù)據(jù)庫(kù)中,建立一個(gè)表用于測(cè)試。

  create table USERBJ.BJ_TEST
  (
  STU_ID NUMBER,
  STU_NAME VARCHAR2(100)
  )

  在其中增加一條記錄:

  insert into BJ_TEST (STU_ID, STU_NAME)

  values (1, '鐘德榮');

  2、新建一個(gè)連接tnsxj,用于連接本地的sidxj數(shù)據(jù)庫(kù),以tnsxj/userxj/xj123登錄到PLSQL中。

  下面開(kāi)始創(chuàng)建連接到北京的遠(yuǎn)程數(shù)據(jù)連接DBLink。

  create database link SIDBJ.US.ORACLE.COM connect to userbj identified by bj123 using 'tns_xj_to_bj';

  其中:SIDBJ.US.ORACLE.COM是遠(yuǎn)程的數(shù)據(jù)庫(kù)的global_name,userbj是連接SIDBJ的用戶名,bj123是userbj的密碼,

  tns_xj_to_bj是本地建立的連接到北京的數(shù)據(jù)庫(kù)的服務(wù)名。

  3、測(cè)試連接是否成功:

  select * from dual@SIDBJ.US.ORACLE.COM

  如果返回結(jié)果如下則表示連接成功了。

  DUMMY

  -----

  X

  4、在本地?cái)?shù)據(jù)為中查詢已經(jīng)建立的遠(yuǎn)程連接名:

  SQL> select owner,object_name from dba_objects where object_type='DATABASE LINK';
  OWNER OBJECT_NAME
  ------------------------------ --------------------------------------------------------------------------------
  SYSTEM SIDBJ.US.ORACLE.COM
  USERXJ DBLINK_XJ_TO_BJ
  USERXJ SIDBJ

  5、至此,在新疆的計(jì)算機(jī)上建立了一個(gè)DBLINK,用于連接到北京的數(shù)據(jù)庫(kù)上,

  在新疆的數(shù)據(jù)庫(kù)中查詢北京的數(shù)據(jù)庫(kù)中表的信息:

  select * from bj_test@SIDBJ.US.ORACLE.COM

  查詢結(jié)果:

  STU_ID STU_NAME
  ---------- --------------------------------------------------------------------------------

  1 鐘德榮

  表示查詢是正常的。

  6、關(guān)于global_name參數(shù)的測(cè)試

  create database link a connect to userbj identified by bj123 using 'tns_xj_to_bj';

  建立了一個(gè)DBLINK,執(zhí)行下面的查詢:

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

  可以看到已經(jīng)建立了名為:a的DBLINK。

  但執(zhí)行下面的查詢,檢索遠(yuǎn)程數(shù)據(jù)時(shí),就會(huì)出現(xiàn)錯(cuò)誤。

  select * from bj_test@a

  原因是因?yàn)楸镜財(cái)?shù)據(jù)庫(kù)的global_names的參數(shù)值為true,所以,dblink的名稱必須和遠(yuǎn)程數(shù)據(jù)庫(kù)的global_names相同。

  要修改本地?cái)?shù)據(jù)庫(kù)的global_names參數(shù)為false;(注意是修改本地?cái)?shù)據(jù)庫(kù)SIDXJ,通過(guò)測(cè)試修改過(guò)程的參數(shù)不行,過(guò)程的global_names參數(shù)為TRUE還是為FALSE沒(méi)有關(guān)系)

  使用下面的語(yǔ)句修改該參數(shù):

  SQL> alter system set global_names=false;

  再執(zhí)行下面的幾步即可查詢出數(shù)據(jù):

  create database link a connect to userbj identified by bj123 using 'tns_xj_to_bj'; --創(chuàng)建DBLINK

  select owner,object_name from dba_objects where object_type='DATABASE LINK';--查詢現(xiàn)有的DBLINK

  select * from bj_test@a--查詢遠(yuǎn)程表

  7、下面在SIDXJ中建立存儲(chǔ)過(guò)程,通過(guò)DBLINK檢索遠(yuǎn)程數(shù)據(jù)庫(kù)SIDBJ, 存儲(chǔ)過(guò)程如下:

  CREATE OR REPLACE PROCEDURE test_cur
  as
  strSql1 varchar2(1000);
  t_stu_name varchar2(100);
  TYPE TCUR IS REF CURSOR;
  CUR TCUR;
  begin
  strSql1:='select stu_name from bj_test@a';
  OPEN CUR FOR strSql1;
  LOOP
  FETCH CUR INTO t_stu_name;
  EXIT WHEN CUR%NOTFOUND;
  DBMS_OUTPUT.PUT_LINE(t_stu_name);
  END LOOP;
  CLOSE CUR;
  end test_cur;

  測(cè)試存儲(chǔ)過(guò)程顯示,輸出了過(guò)程數(shù)據(jù)庫(kù)中的STU_NAME的值。

  以上腳本全部在ORACLE817下通過(guò)測(cè)試。

通過(guò)上文中介紹的幾步就能夠輕松實(shí)現(xiàn)Oracle建立DBLINK,通過(guò)本文的學(xué)習(xí),希望大家都能夠掌握Oracle建立DBLINK的方法,相信在以后的工作中是很有用處的。


網(wǎng)頁(yè)名稱:Oracle建立DBLINK的詳細(xì)步驟記錄
瀏覽地址:http://www.5511xx.com/article/cossjig.html