Oracle学习(18)【DBA向】:分布式数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Oracle学习(18)【DBA向】:分布式数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含11578字,纯文字阅读大概需要17分钟。
内容图文
数据物理上被存放在网络的多个节点上,逻辑上是一个整体。分布式数据库的独立性
l分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据。Oracle分布式RDBMS
本地操作 远程操作 分布操作本地操作
RDBMS
SQLPLUS等工具
lORACLE_HOME=/oracle/oracle1/app/oracle/product/8.1.6 lORACLE_SID=o8i1 lORACLE_OWNER=oracle1
远程操作
利用本地的工具,访问远程的数据库
分布操作
l跨节点数据的创建及查询 l跨节点数据更新分布操作过程
定义数据库链路
定义数据库链路CREATE DATABASE LINK [db_link_name] CONNECT TO
[user_name] IDENTIFIED BY [password]USING ‘[tns_name]‘;
?[DB_LINK_NAME]:是所要连接的数据库的服务名,也就是该数据库的真实名称(通常就是SID)。 ?[USRE_NAME]:是所要连接的用户名称。 ?[PASSWORD]:是所要连接的用户的密码。 ?[TNS_NAME]:是所要连接的数据库的服务命名。例如:
?
利用 Net Manager 配置本地命名
步骤: 1.打开Net Manager2.出现欢迎界面 3.展开 “本地”,选择 “服务命名”。单击页面左边的加号 + 4.出现 网络服务名向导。输入一个网络服务名称,例如: remoteOrcl。单击下一步 5.选择协议,用于连接数据库。您可以接受默认的 TCP/IP (网络协议),点击下一步 6.输入远端数据库计算机的地址,点击下一步 7.输入远端数据库的SID,点击下一步 8.向导的最后一页使您能够利用您输入的信息测试连接。 9.在左边的树状菜单中,会出现我们刚才配置的服务命名 10.保存网络配置 11.查看文件C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsnames.ora,是否已经加入以下内容:
分布式数据库查询
select ename,dname
from dept, emp@L2
where emp.deptno=dept.deptno;
l L2即为前面所创建的数据库链路。
透明存取-别名
lcreate synonym emp1 for emp@L2 ;
selectdname,ename,sal
fromemp1, dept
whereemp1.deptno=dept.deptno;
建立远程表的视图
createview emp
as
select * from emp1@L1
union
select * from emp2@L2 ;
Select* from emp;
分布式数据库的其他操作
插入操作:
?insert into emp select * from emp@L2;
数据复制:
?create table emp as select * from emp@L2;
分布式数据库的跨节点更新
l快照 l触发器
快照
定义快照维护关系表的异步副本
?指在主表修改后的指定时间内刷新副本,用于主表修改少,但频繁查询的表。create snapshot emp(
refresh start with sysdate
next next_day(sysdate,’Monday’)
as select * from emp@L1 ;
select* from emp; (本地数据库中查询快照的数据)
利用触发器实现数据的同步
createor replace trigger update_emp
afterupdate on emp
foreach row
begin
update emp@L2 set emp.sal=:new.sal
where emp.empno=:new.empno;
end;
上述知识点的一些sql实现:
SQL> --创建数据库链路
SQL> conn / as sysdba
已连接。
SQL> grant create database link to scott;
授权成功。
SQL> conn scott/tiger
已连接。
SQL> create database link l2 connect to scott identified by tiger using ‘remoteorcl‘;
数据库链接已创建。
SQL> select ename,dname
2 from dept, emp@L2
3 where emp.deptno=dept.deptno;
ENAME DNAME
---------------------------------------- --------------
SMITH RESEARCH
ALLEN SALES
WARD SALES
JONES RESEARCH
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
SCOTT RESEARCH
KING ACCOUNTING
TURNER SALES
ADAMS RESEARCH
ENAME DNAME
---------------------------------------- --------------
JAMES SALES
FORD RESEARCH
MILLER ACCOUNTING
已选择14行。
SQL> /
ENAME DNAME
---------------------------------------- --------------
SMITH RESEARCH
ALLEN SALES
WARD SALES
JONES RESEARCH
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
SCOTT RESEARCH
KING ACCOUNTING
TURNER SALES
ADAMS RESEARCH
ENAME DNAME
---------------------------------------- --------------
JAMES SALES
FORD RESEARCH
MILLER ACCOUNTING
已选择14行。
SQL> /
ENAME DNAME
---------------------------------------- --------------
SMITH RESEARCH
ALLEN SALES
WARD SALES
JONES RESEARCH
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
SCOTT RESEARCH
KING123 ACCOUNTING
TURNER SALES
ADAMS RESEARCH
ENAME DNAME
---------------------------------------- --------------
JAMES SALES
FORD RESEARCH
MILLER ACCOUNTING
已选择14行。
SQL> host cls
SQL> create synonym remoteemp for emp@l2;
同义词已创建。
SQL> select ename,dname
2 from dept, remoteemp
3 where remoteemp.deptno=dept.deptno;
ENAME DNAME
---------------------------------------- --------------
SMITH RESEARCH
ALLEN SALES
WARD SALES
JONES RESEARCH
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
SCOTT RESEARCH
KING123 ACCOUNTING
TURNER SALES
ADAMS RESEARCH
ENAME DNAME
---------------------------------------- --------------
JAMES SALES
FORD RESEARCH
MILLER ACCOUNTING
已选择14行。
SQL> select ename,dname
2 from dept, remoteemp
3 where remoteemp.deptno=dept.deptno;
ENAME DNAME
---------------------------------------- --------------
SMITH RESEARCH
ALLEN SALES
WARD SALES
JONES RESEARCH
MARTIN SALES
BLAKE SALES
CLARK ACCOUNTING
SCOTT RESEARCH
KING123 ACCOUNTING
TURNER SALES
ADAMS RESEARCH
ENAME DNAME
---------------------------------------- --------------
JAMES SALES
FORD RESEARCH
MILLER ACCOUNTING
已选择14行。
SQL> create or replace trigger sycnempsal
2 after update
3 on emp
4 for each row
5 begin
6
7 update remoteemp set sal=:new.sal where empno=:new.empno;
8
9 end;
10 /
触发器已创建
SQL> select sal from emp where empno=7839;
SAL
----------
8186
SQL> update emp set sal=sal+1 where empno=7839;
已更新 1 行。
SQL> commit;
提交完成。
SQL> select sal from emp where empno=7839;
SAL
----------
8187
触发器应用场景三:实现数据的同步备份
只备份员工的薪水
create or replace trigger sycnempsal
after update
on emp
for each row
begin
update remoteemp set sal=:new.sal where empno=:new.empno;
end;
/
Oracle学习(18)【DBA向】:分布式数据库
标签:dba oracle 数据库 分布式数据库 分布式
本文系统来源:http://blog.csdn.net/qhwc2009/article/details/46358573
内容总结
以上是互联网集市为您收集整理的Oracle学习(18)【DBA向】:分布式数据库全部内容,希望文章能够帮你解决Oracle学习(18)【DBA向】:分布式数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。