<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    想飛就別怕摔

    大爺的并TM罵人

    創建oracle dblink 過程[轉]

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

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

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

         2、未配置本地服務
    以下是引用片段:
    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=數據庫的ip地址,service_name=數據庫的ssid。
           其實兩種方法配置dblink是差不多的,我個人感覺還是第二種方法比較好,這樣不受本地服務的影響。

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

           數據庫參數global_name=true時要求數據庫鏈接名稱跟遠端數據庫名稱一樣

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

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


            附帶說下同義詞創建:

          CREATE SYNONYM同義詞名FOR 表名;
         CREATE SYNONYM同義詞名FOR 表名@數據庫鏈接名;

         刪除dblink:DROP  PUBLIC  DATABASE  LINK linkfwq。

    如何知道當前用戶、當前系統中有哪些數據庫連接串?
    SELECT * FROM USER_DB_LINKS;
    這個查詢會給出當前用戶的數據庫聯接的名字、聯接用戶名、聯接密碼、要連接的主機以及創建時期。

    SELECT * FROM DBA_DB_LINKS;
    這個查詢會給出當前系統中所有的數據庫聯接的創建用戶、聯接用戶名、要連接的主機以及創建時期。

    SELECT * FROM V$DBLINK;
    這個查詢會給出當前打開的數據庫聯接。

    4
    。常見錯誤處理:

    ////////////////////////////////////////////////////////////////
    1
    。不能分解服務名:

    登錄到遠程服務器上的結果:

    net97>show parameters global_name

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

    數據庫鏈接已丟棄。


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

    數據庫鏈接已創建。


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

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



          如果創建全局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 生命的綻放 閱讀(939) 評論(0)  編輯  收藏 所屬分類: 數據庫

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

    導航

    統計

    常用鏈接

    留言簿(5)

    隨筆分類(94)

    隨筆檔案(93)

    文章分類(5)

    文章檔案(5)

    相冊

    JAVA之橋

    SQL之音

    兄弟之窗

    常用工具下載

    積分與排名

    最新評論

    閱讀排行榜

    主站蜘蛛池模板: 亚洲制服丝袜第一页| 在线观看亚洲精品国产| 老外毛片免费视频播放| 国产又黄又爽又猛免费app| 亚洲性色高清完整版在线观看| 毛片无码免费无码播放| 亚洲视频在线观看免费| 免费A级毛片无码视频| 亚洲国产老鸭窝一区二区三区| 国产一区二区免费视频| 国产亚洲成AV人片在线观黄桃| a毛片免费观看完整| 亚洲Av永久无码精品三区在线 | www永久免费视频| 久久久久久久亚洲精品| 国产午夜无码片免费| 亚洲欧洲免费视频| 日韩免费精品视频| 亚洲色欲色欱wwW在线| 国产精品免费视频网站| 永久免费观看黄网站| 亚洲人成亚洲人成在线观看 | 人成午夜免费视频在线观看| 2020国产精品亚洲综合网 | 在线看片免费人成视频福利| 亚洲国产精品热久久| 波多野结衣中文字幕免费视频| 亚洲欧洲日本在线观看 | 精品亚洲永久免费精品| 久久久久久精品免费免费自慰| 亚洲中文字幕久久精品无码VA| 亚洲第一区精品日韩在线播放| 免费无码一区二区三区蜜桃| 亚洲明星合成图综合区在线| 日本不卡高清中文字幕免费| 中文字幕不卡免费高清视频| 亚洲欧洲日本精品| gogo全球高清大胆亚洲| 亚洲欧洲免费视频| 亚洲成av人影院| 免费看韩国黄a片在线观看|