ITPub博客

首页 > 数据库 > Oracle > Database Link使用

Database Link使用

原创 Oracle 作者:sky850623 时间:2015-01-27 18:31:46 0 删除 编辑
环境说明:
 本地数据库
     ip:192.168.1.35
 远程数据库
    ip:192.168.1.135

实验目的:
 本地数据库scott用户访问远程数据库test用户下的t_link表
1、远程数据库创建表t_link表
  SQL> create table t_link(id int,name varchar(10));
表已创建。
SQL> insert into t_link values(1,'a');
已创建 1 行。
SQL> insert into t_link values(2,'b');
已创建 1 行。
SQL> insert into t_link values(3,'c');
已创建 1 行。
SQL> commit;
提交完成。
SQL> select * from t_link;
        ID NAME
---------- ----------
         1 a
         2 b
         3 c
2、在本地数据库配置好网络服务名连接远程数据库
  AUX =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.135)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = kk)
    )
  )

3.在本地数据库soctt用户创建dblink
  scott要用create database link权限
 SQL> conn / as sysdba
已连接。
SQL> grant create database link to scott;
授权成功。

SQL> conn scott/tiger
已连接。
SQL> create database link test_link connect to test identified by test using 'aux';
数据库链接已创建。

查看创建的db link
SQL> select *from user_db_links;
DB_LINK                                            USERNAME                       PASSWORD               HOST       CREATED
-------------------------------------------------- ------------------------------ ------------------------------ ---------- ------------
TEST_LINK.REGRESS.RDBMS.DEV.US.ORACLE.COM          TEST                                                  aux        25-1月 -15

以sys查看
SQL> select * from dba_db_links;

OWNER      DB_LINK                                            USERNAME HOST       CREATED
---------- -------------------------------------------------- -------- ---------- ---------------
SCOTT      TEST_LINK.REGRESS.RDBMS.DEV.US.ORACLE.COM          TEST     aux        25-JAN-15
4.本地scott用户访问远程数据库中的表
SQL> select *from t_link@test_link;
        ID NAME
---------- ----------
         1 a
         2 b
         3 c
以test用户访问报错
SQL> select *from t_link@test_link;
select *from t_link@test_link
                    *
ERROR at line 1:
ORA-02019: connection description for remote database not found
因为以上创建的是私有db link,其他用户不能使用,如果想test用户也能使用,则需要创建公有db link,我们再创建一个公有db link

SQL> conn / as sysdba   
Connected.
SQL> create public database link p_test_link connect to test identified by test using 'aux';  --创建公有db link
Database link created.
SQL> select * from dba_db_links;

OWNER      DB_LINK                                            USERNAME HOST       CREATED
---------- -------------------------------------------------- -------- ---------- ------------
PUBLIC     P_TEST_LINK.REGRESS.RDBMS.DEV.US.ORACLE.COM        TEST     aux        25-JAN-15
SCOTT      TEST_LINK.REGRESS.RDBMS.DEV.US.ORACLE.COM          TEST     aux        25-JAN-15

SQL> conn test/test
Connected.
SQL> select * from user_db_links;
no rows selected
SQL> select *from t_link@p_test_link;
        ID NAME
---------- ------------------------------
         1 a
         2 b
         3 c
scott用户
SQL> select *from t_link@p_test_link;
        ID NAME
---------- ----------------------------
         1 a
         2 b
         3 c
创建公有db link,本地所有用户都能使用这个公有db link

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26937943/viewspace-1417273/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: du命令
下一篇: OCP考完查看成绩
请登录后发表评论 登录
全部评论

注册时间:2013-05-30

  • 博文量
    154
  • 访问量
    515358