日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

创建 dblink

發布時間:2023/12/1 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 创建 dblink 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目的:oracle中跨數據庫查詢 ????? 兩臺數據庫服務器db_A(本地)和db_B(遠程192.168.1.100),db_A下用戶user_a 需要訪問到db_B下user_b的數據
解決:查詢得知使用dblink(即database link? 數據庫鏈)
實現過程:
1、確定用戶user_a有沒有創建 dblink 的權限:

?

?

????? select?*?from?user_sys_privs?where?privilege?like?upper('%DATABASE?LINK%');????

2、如果沒有,以sys用戶登錄到本地數據庫 給用戶user_a賦權:

???? grant?CREATE?PUBLIC?DATABASE?LINK,DROP?PUBLIC?DATABASE?LINK?to?user_a;??

注: dblink有三種權限: CREATE DATABASE LINK(所創建的dblink只能是創建者能使用,別的用戶使用不了) CREATE PUBLIC DATABASE LINK(public表示所創建的dblink所有用戶都可以使用) DROP PUBLIC DATABASE LINK

3、以用戶user_a登錄本地數據庫,創建dblink

?

  • create?public??database?link?dblink1????
  •   connect?to?user_b?identified?by?user_bpass??
  •   using?'(DESCRIPTION?=(ADDRESS_LIST?=(ADDRESS?=(PROTOCOL?=?TCP)(HOST?=?192.168.1.100)(PORT?=?1521)))(CONNECT_DATA?=(SERVICE_NAME?=?orcl)))';????
  • 注: 當數據庫參數global_name=false時,就不要求數據庫鏈接名稱跟遠端數據庫名稱一樣。 數據庫全局名稱可以用以下命令查出:

    ????? SELECT?*?FROM?GLOBAL_NAME;??

    修改可以用以下語句來修改參數值:

  • ALTER?SYSTEM?SET?GLOBAL_NAME=TRUE/FALSE;??
  • ?

    4、創建完成,引用

    -- 查詢、刪除和插入數據和操作本地的數據庫是一樣的,只不過表名需要寫成“表名@dblink服務器”而已。 ? 例:

    ????? select?*?from?user_bTablename@dblink1?;??

    ?

    一般情況下引用數據庫鏈接,可以直接將其放到調用的表名或視圖名稱后面,中間使用一個 @ 作為分割符:

    ?

    5、刪除 DBLink

    ???? drop??public?database?link?dblink1;????

    ?

    6、創建和刪除同義詞

    ?? 對于經常使用的數據庫鏈接,可以建立一個本地的同義詞,方便使用 ??? create or replace synonym 同義詞名 for 表名; ? ??? create or replace synonym 同義詞名 for 用戶.表名; ? ??? create or replace synonym 同義詞名 for 表名@數據庫鏈接名; ? ??? drop synonym 同義詞名;?

    7、創建和刪除視圖

    ??? create or replace view 視圖名 as (select 字段 from 用戶.表名@dblink1); ? ??? drop view 視圖名; ? 其他: 創建方式二:要求數據庫服務器db_A上 tnsnames.ora 中有 數據庫db_B的映射?? (省略) sql>create database link 數據庫鏈路名 connect to 用戶名 identified by 口令 using 'tnsnames.ora配置的主機字符串名';
    創建方式三: PL/SQL圖形配置界面

    ??

    ?

    問題: 已經給了用戶 dblink 的權限,但創建時報權限不足的錯 解決:我給用戶的是 CREATE PUBLIC DATABASE LINK權限,所以創建時需要create public? database link....? 而不能是create database link.... 待深入:

    每次使用dblink查詢的時候,均會與遠程數據庫創建一個連接,dblink 應該不會自動釋放這個連接,如果是大量使用 dblink 查詢,會造成 web 項目的連接數不夠,導致系統無法正常運行,導致系統無正常運行。

    轉載于:https://www.cnblogs.com/Neil223/p/5942739.html

    總結

    以上是生活随笔為你收集整理的创建 dblink的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。