分布式数据库与db_link

分布式 数据库体系相当的简单,就是两个数据库,其中一个是 ORACLE,另一个随便是不是ORACLE,在oracle上创建 dblink到另一个数据库,这就是最简单的。当然你可以使用多个数据库,互相创建db_link.或者你也可以使用一个 目录服务器.自动创建和管理db_link.分布式数据库是高级复制的基础.
         有关db_link。
         所谓的db_link有多种形式。可以是public的,也可以是private的,也可以是global的。
   
private的没有什么讲头。这种db_link只能由创建db_link的本地用户或者他的pl/sql块来存取。其他的用户都不能存取。
       public就比较好了。对所有的用户可见。所有用户都可以使用。
       global  当分布式体系中存在多个数据库的话。如果想要在每一个数据库中都可以使用同样的名字来访问数据库a,那在每个数据库中都要创建一个到数据库a的db_link,太麻烦了。所以现在有这个东东。你只要创建一次。所有的数据库都可以使用这个db_link来访问了。要使用这个特性,必须有oracle name server或者ORACLE目录服务器。并且数据库a的参数global_names=true.具体我也没有创建过,没有这个环境。
       针对public的dblink,存取db_link的用户,在创建db_link的时候就已经可以指定用户的认证方式了。
有三种。 current user,fixed user,connected user.
       最好用的就是fixed user,创建时指定连接远程数据库的用户名和密码并存在数据字典里。以后所有的使用dblink 的用户实际上都是使用这个用户名和密码来登录到远程数据库的,在远程数据库的权限和这个用户一样。当然权限上就有点不好控制,
       create public database link aaa connected testmvb identified by testmvb using 'remotedb';
         第二个好理解的是 connected  user.创建这种dblink的时候没有指定连接用户。认证什么的没有存储在数据字典里面,使用这种dblink的时候,你连接本地库的用户就是你连接远程库的用户。这种就是说,用户在本地库和远程库都需要存在并具有权限。
         这种用户认证要考虑远端数据库怎么验证用户。是使用密码验证,操作系统验证还是使用网络验证。当使用外部验证的时候,还需要远端库的参数
REMOTE_OS_AUTHENT=TRUE
         第三种就是current user.
         这种的创建db_link的用户必须是全局用户。其他的东西和fixed_user一样。
          创建 dblink的步骤,当然你可以使用连接字符串,一般先在本地的tnsname.ora文件中配置一下到远端数据库的解析.比方我配的远端别名是testmvb,
创建一个public使用fixed user名字为aa的dblink 语句如下
create public database link aa connect to scot indentied by tiger using 'testmvb'
创建current user的
create public database link aa connect to current user using 'testmvb';
床架connected user 的
create public database link aa connect to connected user using 'testmvb';
创建完后测试 使用select * from dual@aa成功就ok啦。

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

转载于:http://blog.itpub.net/11417069/viewspace-683524/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值