国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
Oracle建立DBLINK的詳細(xì)步驟記錄

測試條件:

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

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

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

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

  也就是說,在sidxj的數(shù)據(jù)庫中,用戶userxj(192.168.1.100)需要建立DBLINK,以userbj的用戶身份訪問sidBJ(192.168.1.101)中的數(shù)據(jù)。

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

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

  1、問:如何返回數(shù)據(jù)庫的GLOBAL_NAME?

  執(zhí)行SELECT * FROM GLOBAL_NAME;

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

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

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

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

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

  NAME                                 TYPE        VALUE

  ------------------------------------ ----------- ------------------------------

  global_names                         boolean     TRUE

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

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

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

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

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

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

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

  建立步驟:

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

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

  create table USERBJ.BJ_TEST

  (

  STU_ID   NUMBER,

  STU_NAME VARCHAR2(100)

  )

  在其中增加一條記錄:

  insert into BJ_TEST (STU_ID, STU_NAME)

  values (1, '鐘德榮');

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

  下面開始創(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ù)庫的global_name,userbj是連接SIDBJ的用戶名,bj123是userbj的密碼,

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

  3、測試連接是否成功:

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

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

  DUMMY

  -----

  X

  4、在本地數(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、至此,在新疆的計算機上建立了一個DBLINK,用于連接到北京的數(shù)據(jù)庫上,

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

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

  查詢結(jié)果:

  STU_ID STU_NAME

  ---------- --------------------------------------------------------------------------------

  1 鐘德榮

  表示查詢是正常的。

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

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

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

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

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

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

  select * from bj_test@a

  原因是因為本地數(shù)據(jù)庫的global_names的參數(shù)值為true,所以,dblink的名稱必須和遠(yuǎn)程數(shù)據(jù)庫的global_names相同。

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

  使用下面的語句修改該參數(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中建立存儲過程,通過DBLINK檢索遠(yuǎn)程數(shù)據(jù)庫SIDBJ, 存儲過程如下:

  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;

  測試存儲過程顯示,輸出了過程數(shù)據(jù)庫中的STU_NAME的值。
 
以上腳本全部在ORACLE817下通過測試
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊舉報。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
在oracle中建立dblink訪問其他數(shù)據(jù)庫
在oracle中通過鏈接服務(wù)器(dblink)訪問sql server
oracle 中dblink的session不能自動釋放
oracle DB
利用oracle快照dblink解決數(shù)據(jù)庫表同步問題 - - JavaEye技術(shù)網(wǎng)站
oracle新手入門指導(dǎo)之八—數(shù)據(jù)庫遠(yuǎn)程訪問小知識[天源迪科論壇]
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點擊這里聯(lián)系客服!

聯(lián)系客服