oracle-分布式服务器
分布式数据库:物理上分开存放,逻辑上一个整体。
独立性:客户端不必关心数据如何分割和存储,只关心数据本身。
数据库的三种操作:
1.本地操作
2.远程操作
scott/tiger@192.168.1.252/orcl
3.分布式操作(借助链路)
配置分布式数据库
1.防火墙关闭或者开放oracle端口
2.开启oracle远程登录
tnsnames.ora和listener.ora中host设置为计算机名或IP地址(不是localhost)、
注意tnsnames.ora中的SERVICE_NAME是orcl还是orcl.localdomain
3.创建数据库链路:
create database link 链路名 connect to 远程用户名 identified by 远程密码 using '本地服务命名';
create database link l2vm2 connect to scott identified by tiger using 'remoteORCL';
第一次创建链路时需要授权
grant create database link to scott ;
4.创建本地服务命名:
打开 Net Manager--》服务命名--》左边+ --》 网络服务名 “remoteORCL” –-》 TCP/IP –-》 主机IP和端口 -- 》远程实例名"orcl",建好之后,保存配置
通过分布式访问远程数据库
通过链路访问远程数据库
使用同义词屏蔽分布式访问
SQL> create synonym remoteemp for emp@l2vm2 ;
同义词已创建。
SQL> select * from remoteemp;
EMPNO ENAME JOB MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
SAL COMM DEPTNO
---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80
800 20
7499 ALLEN SALESMAN 7698 20-2月 -81
1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81
1250 500 30
创建远程表的本地视图:
SQL> create view empview
2 as
3 select * from emp@l2vm2;
视图已创建。
SQL> select * from empview;
EMPNO ENAME JOB MGR HIREDATE
---------- -------------------- ------------------ ---------- --------------
SAL COMM DEPTNO
---------- ---------- ----------
7369 SMITH CLERK 7902 17-12月-80
800 20
7499 ALLEN SALESMAN 7698 20-2月 -81
1600 300 30
7521 WARD SALESMAN 7698 22-2月 -81
1250 500 30
分布式数据库的跨界点更新(备份)
a快照(实体化视图):异步(主表修改后,定期同步到副本)
create snapshot empss
refresh start with sysdate
next next_day(sysdate,'星期一') --循环,每个星期一
as select * from emp@l2vm2 ;
b触发器:修改之后立即同步
create trigger update_emp
after update on emp
for each row
begin
--将涨后的薪水备份到远程数据库中
update emp@l2vm2 set sal=:new.sal where empno=:new.empno ;
end ;
/