• Oracle创建database link(dblink)和同义词(synonym)


    Oracle创建database link(dblink)和同义词(synonym)

    同一个数据库不同用户之间建立dblink和synonym

    1.建立dblink

    实现在A用户下通过dblink访问B用户下的数据库表,需要在A用户下创建访问B库的dblink连接

    --创建远程连接dblink语句示例:
    create database link dblink名
           connect to B库用户名 identified by B库密码
           using '172.66.50.241:1521/AAA';  
    备注:需修改对应访问连接用户和密码、IP、端口和数据库示例名

    相关连接:

        https://zyqwst.iteye.com/blog/2285560

        https://blog.csdn.net/bxl049/article/details/70879655

    2.创建表名同义词 SYNONYM

    create SYNONYM table_new for table_b@dblink名;  
    直接访问: select * form table_new 相当于:select * from table_b@dblink名;

    3. 创建表空间、用户、dblink、让用户持有dblink、创建视图、建立同义词、导出数据

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

    同一个数据库不同用户之间建立dblink和synonym

    数据库中现有数据库A(用户名/密码  A/a),数据库库B(用户名/密码 B/b)。A用户需要B库中的表table_b;A用户如果想直接对表table_b进行操作,例如 select * from table_b;update XXX table_b set XXX等。需要两步:1对B用户建立dblink;2对b.table_b建立同义词。具体两步如下

    --1建立对B数据库的dblink
    create database link test_link connect to B --B数据库的某个用户名
    IDENTIFIED by "b" --B数据库的密码
    using 'orcl';  --所在库实例名
    --执行上面的语句,然后在A数据库测试 查询语句:select * from test_link.table_b;查询成功说明blink建立成功。但是每次想操作table_b表都要在前面加test_link真的很不爽,下来为其建立同义词
    --2建立同义词
    create SYNONYM table_b for table_b@test_link;
    --现在执行查询select * from table_b;就好像table_b表是A数据库的表一样,有没有很爽

    create database link test_link connect to B
    IDENTIFIED by "b"
    using '(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))'

    --------------------------------------------------------------------------------同库同实例

    1.dba用户 赋权创建同义词的权限
    sqlplus /as  sysdba
    grant create synonym to dcm
    --finchina 用户 赋权 dcm查看的权限
    grant select on table1 to dcm;
    --dcm 用户创建同义词
    create or replace synonym table1 for finchina.table1;

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

    oracle database link 查询时候 select * from 表A@link 执行后为什么会起事务

    oracle的db_link数据bai要数据库自身du和远程数据库建立zhi链接进行查询dao的zhuan,而且会对远程数据shu库中查询的表加锁。相当于本地的 select * from table for update;产生事物就是因为这个原因。通过dblink查询完之后,最好进行commit或rollback结束事物。

  • 相关阅读:
    hdu5914 Triangle 【贪心】
    2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】
    hdu 4034 【floyed变形】
    A
    hdu 2553 N皇后问题【dfs】
    【算法入门经典】7.4回溯法【八皇后问题】
    用javascript实现控制一个文本框的输入字数限制,超出字数限制文本框飘红显示-面试题
    Firebug控制台详解
    CSS实现兼容性的渐变背景(gradient)效果
    jQuery学习——入门jQuery选择器之层次选择器
  • 原文地址:https://www.cnblogs.com/zhanglin123/p/14078313.html
Copyright © 2020-2023  润新知