Oracle 分布式数据库
2014-01-27 19:05
274 查看
什么是分布数据库?
数据物理上被存放在网络的多个节点上,逻辑上是一个整体。分布式数据库的独立性
l分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据。Oracle 分布式RDBMS
本地操作远程操作
分布操作
数据库链路是单向的
定义数据库链路
定义数据库链路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创建服务命名
SQL> --创建数据库链路
SQL> create database link l2 connect to scott identified by tiger using 'remoteorcl';
create database link l2 connect to scott identified by tiger using 'remoteorcl'
*
第 1 行出现错误:
ORA-01031: 权限不足
SQL> /
数据库链接已创建。
SQL> --在分布式数据库中执行查询
SQL> select ename,dname
2 from dept, emp@L2
3 where emp.deptno=dept.deptno;
from dept, emp@L2
*
第 2 行出现错误:
ORA-00942: table or view does not exist
ORA-02063: 紧接着 line (起自 L2)
SQL> ed
已写入 file afiedt.buf
1 select ename,dname
2 from dept, emp@L2
3* where emp.deptno=dept.deptno
SQL> /
from dept, emp@L2
*
第 2 行出现错误:
ORA-00942: table or view does not exist
ORA-02063: 紧接着 line (起自 L2)
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
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> --为emp@L2创建同义词 SQL> create SYNONYM remoteemp for emp@L2; 同义词已创建。 SQL> ed 已写入 file afiedt.buf 1* create SYNONYM remoteemp for emp@L2 SQL> select ename,dname 2 from dept, remotemp 3 where remotemp.deptno=dept.deptno; from dept, remotemp * 第 2 行出现错误: ORA-00942: 表或视图不存在 SQL> ed 已写入 file afiedt.buf 1 select ename,dname 2 from dept, remotemp 3* where remotemp.deptno=dept.deptno SQL> / from dept, remotemp * 第 2 行出现错误: ORA-00942: 表或视图不存在 SQL> ed 已写入 file afiedt.buf 1 select ename,dname 2 from dept, remoteemp 3* where remoteemp.deptno=dept.deptno 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
分布式数据库的跨节点更新
l快照l触发器
利用触发器实现数据的同步(定义在主数据库端)
实现数据的同步备份给员工涨工资 --> 备份端
create or replace trigger syncsal
after update
on emp
for each row
begin
update remoteemp set sal=:new.sal where empno=:new.empno;
end;
/
create or replace trigger update_emp
after update on emp
for each row
begin
update emp@L2 set emp.sal =:new.sal
where emp.empno= :new.empno;
end;
SQL> --利用触发器实现数据的同步更新 SQL> create or replace trigger syncsal 2 after update 3 on emp 4 for each row 5 begin 6 update remoteemp set sal=:new.sal where empno=:new.empno; 7 8 end; 9 / 触发器已创建 SQL> select sal from emp where empno=7839; SAL ---------- 8086 SQL> update emp set sal=sal+1 where empno=7839; 已更新 1 行。 SQL> commit; 提交完成。 SQL> select sal from emp where empno=7839; SAL ---------- 8087
快照
l定义快照维护关系表的异步副本•指在主表修改后的指定时间内刷新副本,用于主表修改少,但频繁查询的表。
create snapshot emp(
refresh start with
sysdate
next next_day(sysdate,’Monday’)
as select * from emp@L1 ;
•
快照是定义在备份端 由备份端发起
相关文章推荐
- ORACLE实现分布式数据库应用
- 分布式数据库--oracle的db-link和同义词
- Oracle:关于分布式数据库(创建数据库链路,创建触发器)
- Oracle得知(十五):分布式数据库
- Oracle学习(18)【DBA向】:分布式数据库
- oracle 分布式数据库
- 大数据将促进分布式数据库发展及去Oracle
- 大数据将促进分布式数据库发展及去Oracle
- Oracle学习(十五):分布式数据库
- oracle中NULL的特殊意义
- Oracle_Statspack性能诊断工具
- ORACLE客户端远程连接数据库
- oracle中转义字,解决like中通配符(%,_)的使用【转贴】
- [ORACLE ]学习笔记一之数据库的导入导出
- PB对于ORACLE中字段的注释处理
- Oracle之函数与触发器
- Oracle 索引可以比表大
- 教你用Linux完成Oracle自植物理备份
- Oracle:ORA-24324: 未初始化服务句柄 ORA-24323: 不允许此值 ORA-01090: 正在关闭 - 不允许连接
- oracle使用rownum跟排序的冲突问题解决