Oracle学习(18)【DBA向】:分布式数据库

分布式数据库

什么是分布数据库?

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

分布式数据库的独立性

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 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, [email protected]

where emp.deptno=dept.deptno;

l L2即为前面所创建的数据库链路。

透明存取-别名

lcreate synonym emp1 for [email protected] ;

selectdname,ename,sal

fromemp1, dept

whereemp1.deptno=dept.deptno;

建立远程表的视图

createview
emp

as

select * from [email protected]

union

select * from [email protected] ;

Select* from emp;

分布式数据库的其他操作

插入操作:

?insert into emp select * from [email protected];

数据复制:

?create table emp as select * from [email protected];

分布式数据库的跨节点更新

l快照

l触发器

快照

定义快照维护关系表的异步副本

?指在主表修改后的指定时间内刷新副本,用于主表修改少,但频繁查询的表。

create snapshot  emp(

refresh  start with sysdate

next  next_day(sysdate,’Monday’)

as  select * from [email protected] ;

select* from emp;    (本地数据库中查询快照的数据)

利用触发器实现数据的同步

createor replace trigger
update_emp

afterupdate on emp

foreach row

begin

update [email protected] 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, [email protected]

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 [email protected];

同义词已创建。

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;

/

时间: 2024-11-10 04:57:19

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

Oracle学习(十五):分布式数据库

--分布式数据库的独立性:分布数据的独立性指用户不必关心数据如何分割和存储,只需关心他需要什么数据. --本地操作 SQL> sqlplus scott/tiger --远程操作 SQL> sqlplus scott/[email protected]:1521/orcl --分布式操作 SQL> --创建数据库链路l2(需要权限): SQL> --remoteorcl服务命名(在net manager里配置):配置跟远程服务器的数据库的连接协议.主机名(ip地址).端口号等 SQ

oracle学习入门系列之二 数据库基础知识

oracle学习入门系列之二 数据库基础知识 本篇蛤蟆要梳理下那些被淡忘的数据库基础知识,也许根本就没被人记住过.不管是哪种情况,该记住的必须记住,记不住就把他记下来吧. 首先问几个问题如下: 数据库基础知识是什么? 好吧,蛤蟆直接吐后而不亡,看目录开始吧. 本人邮箱:[email protected] 微信公众号:HopToad 欢迎各界交流 1      基本概念 概念就是概念,大伙对这些名词不要死磕,但是对定义一定要理解,理解方能领悟,领悟方能运用自如后创新. 1.1      数据 数据

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

一.数据库的登录 二.数据库常用语 三.测试表的创建,测试数据初始化 四.常见命令介绍 五.测试 user:jeffreysn:jeffrey user:systemsn:jeffrey 浏览器中输入:http://127.0.0.1:8080/apex管理员登陆user:syssn:jeffrey 打开服务列表:win+r打开运行框,输入services.mscOracleServiceXE服务一定要是打开的,要不然oracle根本登录不了.OracleXETNSLintener服务是在我们使

大数据将促进分布式数据库发展及去Oracle

2015-09-13 张晓东 东方云洞察 点击上面的链接文字,可以快速关注"东方云洞察"公众号 分布式数据库简介 分布式数据库系统通常使用较小的计算机系统,每台计算机可单独放在一个地方,每台计算机中都可能有DBMS的一份完整拷贝副本,或者部分拷贝副本,并具有自己局部的数据库, 通过网络互相连接共同组成一个完整的.全局的逻辑上集中.物理上分布的大型数据库. 分布式并行数据库通过并行使用多个CPU和磁盘来将诸如装载数据.建立索引.执行查询等操作并行化以提升性能的数据库系统.其中最重要的关键

Oracle 学习笔记 18 -- 存储函数和存储过程(PL/SQL子程序)

PL/SQL子程序 包括函数和过程.这里的函数指的是用户自己定义的函数,和系统函数是不同的.子程序一般是完成特定功能的PL/SQL程序块,并且具有一定的通用性,可以被不同的应用程序多次调用.Oracle提供可以把PL/SQL程序存储在数据库中,并可以再任何地方来运行它.这样就叫做存储过程或者是函数.过程和函数的唯一区别就是函数总是向调用者返回数据,而过程则不返回数据. 函数 如果用户要经常执行某些操作,并且需要返回特定的数据,那么就可以将这些操作构造成一个函数. 可以使用SQL语句定义函数. 基

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

特别说明: 1.  本文只是面对数据库应用开发的程序员,不适合专业DBA,DBA在数据库性能优化方面需要了解更多的知识: 2.  本文许多示例及概念是基于Oracle数据库描述,对于其它关系型数据库也可以参考,但许多观点不适合于KV数据库或内存数据库或者是基于SSD技术的数据库: 3.  本文未深入数据库优化中最核心的执行计划分析技术. 读者对像: 开发人员:如果你是做数据库开发,那本文的内容非常适合,因为本文是从程序员的角度来谈数据库性能优化. 架构师:如果你已经是数据库应用的架构师,那本文的

oracle学习入门系列之一 数据库发展与历史

oracle学习入门系列之一 数据库发展与历史 这个oracle学习入门系列是根据本人工作中的一些笔记.项目进行回忆.整理.一方面是自己知识积累,便于技能提升:另一方面是和小伙伴们共进退互通有无,做一个爱分享的好公民.当然最后也夹杂着自己的一个小心愿,改掉自己重理不重文的臭毛病.想想读书考试的时候,当时如果语文英语多个几分,现在可能就不会落到如此...(咳咳~~),做IT也挺好.那就这样开场白切入吧. 既然学习数据库,就不能不抛几个问题了. 1.        为什么需要数据库,什么是数据库 2

oracle学习入门系列之五 内存结构、数据库结构、进程

oracle学习入门系列之五 内存结构.数据库结构.进程 上篇蛤蟆简单描述了oracle公司的数据库产品.其他产品及oracle软件的一些特点.干货虽有但是真心是比较少的,这篇开始就是以干货为主,其中夹杂一些扯淡的事情了.蛤蟆一直也在想如何能生动的通过这干巴巴的文字来描述着世界级的软件,太理论大家都看不下去,太实践又缺乏深度.想想自己上大学那会,老师的讲课,无不枯燥乏味啊,满满的兴趣尽是消耗殆尽.所以不能仿效之,我们得走自己特色的路.以最易懂的形式.比喻等手段描述深奥的计算机知识.走起~ 开篇问

oracle 分布式数据库

分布式数据库的数据库链路是单向的 定义数据库链路 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]:是所要连接的数据库的服务命名