想飛就別怕摔

          大爺?shù)牟M罵人

          創(chuàng)建oracle dblink 過程[轉(zhuǎn)]

           倆臺不同的數(shù)據(jù)庫服務(wù)器,從一臺數(shù)據(jù)庫服務(wù)器的一個用戶讀取另一臺數(shù)據(jù)庫服務(wù)器下的某個用戶的數(shù)據(jù),這個時候可以使用dblink。
               其實dblink和數(shù)據(jù)庫中的view差不多,建dblink的時候需要知道待讀取數(shù)據(jù)庫的ip地址,ssid以及數(shù)據(jù)庫用戶名和密碼。
                 創(chuàng)建可以采用兩種方式:
                  1、已經(jīng)配置本地服務(wù)
          以下是引用片段:
            create public database
            link fwq12 connect to fzept
            identified by neu using 'fjept'

                         CREATE  DATABASE  LINK +  數(shù)據(jù)庫鏈接名(以后就通過這個名字來進(jìn)行調(diào)用遠(yuǎn)程數(shù)據(jù)庫的內(nèi)容。)CONNECT TO + 用戶名(是用來連接到遠(yuǎn)程數(shù)據(jù)庫的合法Oracle用戶名) IDENTIFIED BY +  密碼(為該用戶連接到Oracle時候的合法密碼) USING +  本地配置的數(shù)據(jù)的實例名(為該Oracle數(shù)據(jù)庫所在的主機(jī)上的tnsnames.ora文件里邊定義的數(shù)據(jù)庫連接串);
          在安裝目錄下,如:E:\Oracle\Ora81\network\ADMIN下用寫字板或記事本打開TNSNAME.ORA文件,

          SELECT COUNT(*) FROM TABLE_NAME@DB_LINK WHERE WHERE_CLAUSE;//查閱遠(yuǎn)程數(shù)據(jù)庫的內(nèi)容。
          UPDATE TEST.TEST@DB_LINK SET SO_NBR=NEW_SO_NBR WHERE WHERE_CLAUSE;//修改遠(yuǎn)程數(shù)據(jù)庫的內(nèi)容。
          在實際使用過程中,還可以通過為這個遠(yuǎn)程表建立一個同義詞來進(jìn)一步增加透明性,使該數(shù)據(jù)庫連接串對于程序和開發(fā)人員來講完全透明。
          CREATE SYNONYM TABLE_NAME FOR TABLE_NAME@DB_LINK; 

               2、未配置本地服務(wù)
          以下是引用片段:
          create database link linkfwq
             connect to fzept identified by neu
             using '(DESCRIPTION =
             (ADDRESS_LIST =
             (ADDRESS = (PROTOCOL = TCP)(HOST = 10.142.202.12)(PORT = 1521))
             )
             (CONNECT_DATA =
             (SERVICE_NAME = fjept)
             )
             )';

                  host=數(shù)據(jù)庫的ip地址,service_name=數(shù)據(jù)庫的ssid。
                 其實兩種方法配置dblink是差不多的,我個人感覺還是第二種方法比較好,這樣不受本地服務(wù)的影響。

                 數(shù)據(jù)庫連接字符串可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定義.

                 數(shù)據(jù)庫參數(shù)global_name=true時要求數(shù)據(jù)庫鏈接名稱跟遠(yuǎn)端數(shù)據(jù)庫名稱一樣

                 數(shù)據(jù)庫全局名稱可以用以下命令查出
                 SELECT * FROM GLOBAL_NAME;

                 查詢遠(yuǎn)端數(shù)據(jù)庫里的表
                 SELECT …… FROM 表名@數(shù)據(jù)庫鏈接名;
                 查詢、刪除和插入數(shù)據(jù)和操作本地的數(shù)據(jù)庫是一樣的,只不過表名需要寫成“表名@dblink服務(wù)器”而已。


                  附帶說下同義詞創(chuàng)建:

                CREATE SYNONYM同義詞名FOR 表名;
               CREATE SYNONYM同義詞名FOR 表名@數(shù)據(jù)庫鏈接名;

               刪除dblink:DROP  PUBLIC  DATABASE  LINK linkfwq。

          如何知道當(dāng)前用戶、當(dāng)前系統(tǒng)中有哪些數(shù)據(jù)庫連接串?
          SELECT * FROM USER_DB_LINKS;
          這個查詢會給出當(dāng)前用戶的數(shù)據(jù)庫聯(lián)接的名字、聯(lián)接用戶名、聯(lián)接密碼、要連接的主機(jī)以及創(chuàng)建時期。

          SELECT * FROM DBA_DB_LINKS;
          這個查詢會給出當(dāng)前系統(tǒng)中所有的數(shù)據(jù)庫聯(lián)接的創(chuàng)建用戶、聯(lián)接用戶名、要連接的主機(jī)以及創(chuàng)建時期。

          SELECT * FROM V$DBLINK;
          這個查詢會給出當(dāng)前打開的數(shù)據(jù)庫聯(lián)接。

          4
          。常見錯誤處理:

          ////////////////////////////////////////////////////////////////
          1
          。不能分解服務(wù)名:

          登錄到遠(yuǎn)程服務(wù)器上的結(jié)果:

          net97>show parameters global_name

          NAME TYPE VALUE
          ------------------------------------ ------- ------------------------------
          global_names boolean FALSE
          net97>
          net97>drop database link jinhua;

          數(shù)據(jù)庫鏈接已丟棄。


          net97>create database link jinhua
          2 connect to username identified by password
          3 using 'jinhua';

          數(shù)據(jù)庫鏈接已創(chuàng)建。


          net97>select * from so@jinhua;
          select * from so@jinhua
          *
          ERROR
          位于第 1
          :
          ORA-12154: TNS:
          不能分解服務(wù)名稱
          .
          net97>conn username/password@jinhua;
          已連接。

          net97>
          這是因為在Oracle數(shù)據(jù)庫所在的Unix主機(jī)上面的tnsnames.ora文件里邊沒有對jinhua這個服務(wù)名的定義。所以不能分解服務(wù)名。
           



                如果創(chuàng)建全局dblink,必須使用systm或sys用戶,在database前加public。
          參考資料:
            http://download-west.oracle.com/docs/cd/B19306_01/server.102/b14231/ds_admin.htm#i1008271

          posted on 2009-04-27 17:14 生命的綻放 閱讀(946) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2009年4月>
          2930311234
          567891011
          12131415161718
          19202122232425
          262728293012
          3456789

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(5)

          隨筆分類(94)

          隨筆檔案(93)

          文章分類(5)

          文章檔案(5)

          相冊

          JAVA之橋

          SQL之音

          兄弟之窗

          常用工具下載

          積分與排名

          最新評論

          閱讀排行榜

          主站蜘蛛池模板: 襄垣县| 三原县| 淮安市| 开远市| 阳东县| 玉林市| 天峨县| 衡南县| 保亭| 永年县| 绥德县| 汾阳市| 黔江区| 囊谦县| 抚松县| 苍山县| 鹤峰县| 临夏县| 藁城市| 清水县| 称多县| 泸水县| 汉中市| 湘潭县| 常山县| 大石桥市| 巢湖市| 襄垣县| 噶尔县| 奉新县| 永清县| 县级市| 凌云县| 盘山县| 营山县| 长兴县| 雷波县| 延庆县| 桦南县| 宜城市| 博乐市|