分布式数据库

什么是分布数据库?

l数据物理上被存放在网络的多个节点上,逻辑上是一个总体。

分布式数据库的独立性

l分布数据的独立性指用户不必关心数据怎样切割和存储,仅仅需关心他须要什么数据。

Oracle分布式RDBMS

本地操作
远程操作
分布操作  

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcWh3YzIwMDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

本地操作

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]:是所要连接的username称。
•[PASSWORD]:是所要连接的用户的password。

•[TNS_NAME]:是所要连接的数据库的服务命名。
比如:

利用 Net Manager 配置本地命名

步骤:
1.打开Net Manager
2.出现欢迎界面
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             &nbs

posted @ 2017-05-16 11:13 wzjhoutai 阅读(...) 评论(...) 编辑 收藏

Oracle学习(18)【DBA向】:分布式数据库的更多相关文章

  1. 【Oracle】曾经的Oracle学习笔记(1-3) 数据库常见用语,常见命令,创建测试表

    一.数据库的登录 二.数据库常用语 三.测试表的创建,测试数据初始化 四.常见命令介绍 五.测试 user:jeffreysn:jeffrey user:systemsn:jeffrey 浏览器中输入 ...

  2. Oracle得知(十五):分布式数据库

    --分布式数据库的独立性:分布数据的独立性指用户不必关心数据怎样切割和存储,仅仅需关心他须要什么数据. --本地操作 SQL> sqlplus scott/tiger --远程操作 SQL> ...

  3. Oracle 学习笔记3:新建数据库没有scott用户解决办法

    新建一个数据库,若选择Oracle组件时,没有选择实例方案,完成后进行口令管理,默认列表中是找不到scott用户解锁的.若要解锁scott用户,可以进行如下操作: 使用system或者sys连接数据库 ...

  4. 【Java EE 学习 30】【闪回】【导入导出】【管理用户安全】【分布式数据库】【数据字典】【方案】

    一.闪回 1.可能的误操作 (1)错误的删除了记录 (2)错误的删除了表 (3)查询历史记录 (4)撤销已经提交了的事务. 2.对应着以上四种类型的误操作,有四种闪回类型 (1)闪回表:将表回退到过去 ...

  5. 《Oracle Database 12c DBA指南》第二章 - 安装Oracle和创建数据库(2.1 安装Oracle数据库软件和创建数据库概览)

    当前关于12c的中文资料比较少,本人将关于DBA的一部分官方文档翻译为中文,很多地方为了帮助中国网友看懂文章,没有按照原文句式翻译,翻译不足之处难免,望多多指正. 2.1 安装Oracle数据库软件和 ...

  6. Oracle学习笔记--第2章 oracle 数据库体系结构

    第2章 oracle 数据库体系结构 目录: ————————————— 2.1物理存储结构 2.1.1数据文件 2.2.2控制文件 2.1.3重做日志文件 2.1.4其他文件 2.2逻辑存储结构 2 ...

  7. Oracle学习总结(8)—— 面向程序员的数据库访问性能优化法则

    特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也 ...

  8. oracle 分布式数据库

    分布式数据库的数据库链路是单向的

  9. oracle中所有存在不存在的用户都可以使用dba连接到数据库

    oracle中所有存在不存在的用户都可以使用dba连接到数据库及解决方式 以前一直使用conn /as sysdba连接数据库,不明白里面的意思.今天无意中使用其他的用户名密码连接到dba竟然也可以( ...

随机推荐

  1. MySQL存储过程实践

    对employees数据库建立存储过程 创建不含有输入输出变量的存储过程 DELIMITER // -- 设定语句结束分隔符 DROP PROCEDURE IF EXISTS GetEmployees ...

  2. 为ubuntu(18.04)系统启用root用户

    1.使用passwd指令为root用户设置密码 2.编辑文件/usr/share/lightdm/lightdm.conf.d/50-ubuntu.confecho 'greeter-show-man ...

  3. 每日命令:(14)tune2fs

    tune2fs简介 tune2fs是调整和查看ext2/ext3文件系统的文件系统参数,Windows下面如果出现意外断电死机情况,下次开机一般都会出现系统自检.Linux系统下面也有文件系统自检,而 ...

  4. 条款9:绝不在构造和析构过程中调用virtual函数(Never call virtual functions during construction or destruction)

    NOTE:在构造和析构期间不要调用virtual函数,因为这类调用从不下降至derived class(比起当前执行构造函数和析构函数的那层)

  5. 剑指Offer(书):旋转数组的最小数字

    题目:把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转. 输入一个非减排序的数组的一个旋转,输出旋转数组的最小元素. 例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...

  6. LeetCode(73)Set Matrix Zeroes

    题目 Given a m x n matrix, if an element is 0, set its entire row and column to 0. Do it in place. cli ...

  7. NYOJ 1875 畅通工程再续 (无节点间距离求最小生成树)

    Description 相信大家都听说一个“百岛湖”的地方吧,百岛湖的居民生活在不同的小岛中,当他们想去其他的小岛时都要通过划小船来实现.现在政府决定大力发展百岛湖,发展首先要解决的问题当然是交通问题 ...

  8. php添加了环境变更,还是显示 不是内部或外部命令 (注:添加到目录即可,不加 php.exe )

    重新配置了PHP环境,要安全PEAR扩展,CMD窗口运行PHP,提示不是内部或者外部命令或者可执行文件,解决方法是把PHP目录加入系统环境变量,不然的话,你只能CD到PHP安装目录下来运行PHP命令.

  9. C#中的ComboBox实现只能选择不能输入,且下拉框中有默认值。

    下拉框有DropDownStyle这一属性,把DropDownStyle类型选为DropDownList,则下拉框只能选择不能输入了.但是这时的下拉框是没有默认值的,即使在Text属性中输入默认值,也 ...

  10. Python Tornado简单的http request

    这是关于chunk encoding传输以前相关传输编码的处理.没有做压缩解码的处理. import tornado.ioloop import tornado.iostream import soc ...