放放播放器:分布式数据库与db

来源:百度文库 编辑:中财网 时间:2024/04/29 04:28:07
分布式数据库体系相当的简单,就是两个数据库,其中一个是ORACLE,另一个随便是不是ORACLE,在oracle上创建dblink到另一个数据库,这就是最简单的。当然你可以使用多个数据库,互相创建db_link.或者你也可以使用一个目录服务器.自动创建和管理db_link.分布式数据库是高级复制的基础.ITPUB个人空间whPq:N
         有关db_link。ITPUB个人空间TOB{!^K_i
         所谓的db_link有多种形式。可以是public的,也可以是private的,也可以是global的。ITPUB个人空间'j]F0U)w'u8ou*D
   private的没有什么讲头。这种db_link只能由创建db_link的本地用户或者他的pl/sql块来存取。其他的用户都不能存取。
)sEZ7dr0i0       public就比较好了。对所有的用户可见。所有用户都可以使用。
'TJz:A Y7rO;[0       global  当分布式体系中存在多个数据库的话。如果想要在每一个数据库中都可以使用同样的名字来访问数据库a,那在每个数据库中都要创建一个到数据库a的db_link,太麻烦了。所以现在有这个东东。你只要创建一次。所有的数据库都可以使用这个db_link来访问了。要使用这个特性,必须有oracle nameserver或者ORACLE目录服务器。并且数据库a的参数global_names=true.具体我也没有创建过,没有这个环境。ITPUB个人空间(r$VM?k#s
       针对public的dblink,存取db_link的用户,在创建db_link的时候就已经可以指定用户的认证方式了。
0UmogD.b4d j F0有三种。 current user,fixed user,connected user.ITPUB个人空间l$PbZUX'q+@b*e%e
       最好用的就是fixed user,创建时指定连接远程数据库的用户名和密码并存在数据字典里。以后所有的使用dblink 的用户实际上都是使用这个用户名和密码来登录到远程数据库的,在远程数据库的权限和这个用户一样。当然权限上就有点不好控制,
lTs n&YciT0       create publicdatabaselink aaa connected testmvb identified by testmvb using 'remotedb';
&b s M{G3V8P0         第二个好理解的是 connected  user.创建这种dblink的时候没有指定连接用户。认证什么的没有存储在数据字典里面,使用这种dblink的时候,你连接本地库的用户就是你连接远程库的用户。这种就是说,用户在本地库和远程库都需要存在并具有权限。
Q)w i6r1VM WO#S0         这种用户认证要考虑远端数据库怎么验证用户。是使用密码验证,操作系统验证还是使用网络验证。当使用外部验证的时候,还需要远端库的参数ITPUB个人空间8}#U%B8kn6Fa s
REMOTE_OS_AUTHENT=TRUE
As:cq-a(J0         第三种就是current user.
@.r&[K/tQN)X*[9Z3M0         这种的创建db_link的用户必须是全局用户。其他的东西和fixed_user一样。ITPUB个人空间em*o)a-S#Y!k
          创建 dblink的步骤,当然你可以使用连接字符串,一般先在本地的tnsname.ora文件中配置一下到远端数据库的解析.比方我配的远端别名是testmvb,ITPUB个人空间~!~"_ t5\L+Dtz @e
创建一个public使用fixed user名字为aa的dblink 语句如下
5@ gypx:gK0create public database link aa connect to scot indentied by tiger using 'testmvb'ITPUB个人空间_/^,hK$OlF!jg V
创建current user的ITPUB个人空间9BJmA^UE{$S'Mv
create public database link aa connect to current user using 'testmvb';ITPUB个人空间2iY*_){ { @2gH X b
床架connected user 的
K:lS)X;U'p@ r-e0create public database link aa connect to connected user using 'testmvb';ITPUB个人空间2q6D c7F_[4P
创建完后测试 使用select * from dual@aa成功就ok啦。