zoukankan      html  css  js  c++  java
  • 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结束事物。

  • 相关阅读:
    Proximal Gradient Descent for L1 Regularization
    使用Spring Security3的四种方法概述
    理解spring对事务的处理:传播性
    MySQL事务隔离级别详解
    Spring 使用注解方式进行事务管理
    Redis的高级应用-安全性和主从复制
    Redis的高级应用-事务处理、持久化、发布与订阅消息、虚拟内存使用
    mysql 语句优化心得
    Maven搭建Spring Security3.2项目详解
    Java网络编程之TCP、UDP
  • 原文地址:https://www.cnblogs.com/zhanglin123/p/14078313.html
Copyright © 2011-2022 走看看