分布式数据库实验三:Oracle分布式分片技术实现

一、实验目的:

以分布式数据库管理系统Oracle为例,掌握利用相关技术实现多场地环境下数据的分布式存储,从而理解Oracle分布式数据库体系结构特有的水平分片方法。

  1. 掌握Oracle数据库管理系统对多场地下的分布式数据的访问技术
  2. 掌握依据站点特性对数据库进行水平分片的方法,实现不同的分区策略。

二、实验内容:

以Oracle分布式数据库为例,掌握Oracle通过分区技术对多个场地数据的划分。

  1. 单机模拟Oracle分布式数据库环境的搭建
  2. 创建到另一个数据库的链接
  3. 访问远程数据库的数据
  4. 表的建立以及分片技术的分析与实现  

实验重点:创建到不同场地数据库的链接

实验难点:单机模拟Oracle分布式数据库环境的搭建,以及依据站点特性对数据库水平分片的实现。基于Oracle数据库管理系统,对数据库链接的创建、远程访问以及有关分区技术实现的语言操作层。

三、实验结果:

1.分布式环境搭建过程的简要描述

1.1 在虚拟机Windows10 X64安装oracle

①创建win10系统的虚拟机Windows10 X64

②联网下载oracle安装包,在虚拟机对oracle软件进行安装

运行setup.exe

对oracle进行安装配置

安装oracle

oracle在虚拟机上安装成功!

1.2 在虚拟机上安装oracle图形化工具SQLDeveloper

①下载SQLDeveloper安装包,并进行解压缩

②点击sqldeveloper应用程序,进行安装

③安装成功后,新建数据库连接test3

测试通过!

④成功连接到oracle数据库

1.3搭建Oracle分布式数据库环境

①对本机与虚拟机上的系统信息描述如下

本机服务器

IP:192.168.43.161

数据库:Oracle 11g

服务名:orcl

用户名:system

虚拟机服务器

IP:192.168.155.129

数据库:Oracle 11g

服务名:oracle

用户名:system

②启动oracle相关服务:OracleOraDB19Home1TNSListener与OracleServiceORCL

③对虚拟机oracle上的tnsnames.ora与listener.ora文件进行配置

④对本机oracle上的tnsnames.ora与listener.ora文件进行配置

⑤在虚拟机上打开Net Manager进行连接,服务命名为oracle111

使用用户system登录连接测试

连接测试成功!

2.在分布式环境下建立示例表

①考虑到在本机和虚拟机上分别使用SQL Developer工具分别进行数据库操作不太方便,此处使用Navicat工具连接本机oracle数据库与虚拟机的oracle数据库。

此处将与本机的oracle数据库连接命名为guoxu_B,将与虚拟机的oracle数据库连接命名为guoxu_虚拟机

②虚拟机连接本机oracle数据库

此处需注意using后的命名不是本机oracle数据库的服务名orcl,而是在虚拟机上使用Net Manager连接本机数据库时的连接服务命名oracle111

create database link link5 connect to system identified by GuoXu1025 using 'oracle111';

③通过远程连接对本机oracle数据库的表进行select、delete等操作

查询本机oracle服务器上的数据库用户system拥有的表的数量

查询本机oracle服务器上Emp表的内容

使用delete命令删除Emp表中id为2001的整行数据

delete from “Emp” @link5 where ID = 2001;

删除后使用select命令重新查询Emp表

④本机连接虚拟机oracle数据库

在本机Net Manager上进行与虚拟机oracle的连接,服务命名为oracle222

利用Navicat连接虚拟机oracle数据库,连接命名为link9

create database link link9 connect to system identified by GuoXu102 using 'oracle222';

⑤通过远程连接虚拟机oracle数据库的表进行select、delete等操作

查询虚拟机oracle服务器上的数据库用户system拥有的表的数量

select table_name, tablespace_name, status from user_tables @link9;

查询虚拟机oracle服务器上Student表的内容

使用delete命令删除Student表中id为1001的整行数据

删除后使用select命令重新查询Student表

delete from "Student" @link9 where "id" = 1001;

select * from "Student" @link9;

至此,整个Oracle分布式数据库的环境已经搭建完成。

3.分布式数据库的详细设计过程——分区规则策略的实现

①分布式数据库详细设计概述

假设现有一个软件公司,公司总部在北京,另外在上海还有一个分公司。公司总部数据库中有一张公司全体员工的信息表EMP_ALL,里面包括所有员工的信息,对这张表基于部门进行水平分区。规定总部和分部员工的薪资情况只能在各部门下看到,基于此进行垂直分片。以本机oracle数据库模拟公司总部数据库,以虚拟机oracle模拟公司分部数据库。

②关系模式

整个公司的员工信息表为EMP_ALL={ENO,ENAME,EDEPT},此表存储在总部数据库中。

同时总部数据库用来存放总部员工的信息表为EMP_ZB={ENO,ENAME,EDEPT};

分部数据库用来存放分部员工的信息表为EMP_FB={ENO,ENAME,EDEPT};

存放总部所有员工的薪资情况的表为EMP_ZB_SAL={ENO,ENAME,SALARY} ;

存放分部所有员工的薪资情况的表为EMP_FB_SAL={ENO,ENAME,SALARY} 。

③分别创建表空间SP01与SP02

  • 在本机oracle数据库创建表空间SP01

  • 在本机oracle数据库创建表空间SP02

④在本机oracle建立EMP_ALL表,存放所有员工信息

EMP_ALL表存放的信息如下:

查看水平分区结果EMP_ZB表(存放总部员工信息)

查看水平分区结果EMP_FB表(存放总部员工信息)

⑦建立从本机oracle到虚拟机oracle的连接link9

建立虚拟机oracle到本机oracle的连接link5

⑧在本机oracle数据库上建立EMP_ZB_SAL表,用来存放总部员工的工资信息

⑨在虚拟机oracle数据库上建立EMP_FB_SAL表,用来存放分部员工的工资信息

建立垂直分布视图

  • 在本机oracle上建立视图,实现在总部透明访问所有员工的全部信息(包括薪资)

查看视图EMP_VIEW:

成功查得公司所有员工的全部信息,实现垂直分片!

注:上述的sql语句中,将两部分SELECT语句分别用于建立视图,即可分别得到公司本部员工所有信息的视图,与公司分部员工所有信息的视图

四、实验总结

此次实验我完成了模拟Oracle分布式数据库环境的搭建、创建数据库之间的链接、访问远程数据库数据以及表的建立以及分片技术的分析与实现等功能,较好地完成了实验内容,在虚拟机上部署oracle数据库时,为了方便操作,我在虚拟机创建时选择了win10系统,后续也都是在虚拟机的win10系统下进行了oracle的所有操作。

实验完成过程较为复杂,在搭建分布式数据库、创建数据库连接及创建分区等部分都有遇到较多问题,实验整体耗时较长,但在解决每个问题的过程中,我也学习到了很多知识。现将实验过程中遇到的问题及解决方案说明如下:

问题一:在Net Manager创建了连接,但在tnsnames.ora文件里未生成对应配置信息

问题原因:创建连接后未手动保存网络配置,需要点击“文件—保存网络配置”后,才能在tnsnames.ora文件里自动生成对应配置信息。

问题二:切换电脑网络后,本机oracle与虚拟机oracle连接失败

问题原因:切换网络后,本机ip地址发生变化

解决方案:第一种方案是每次切换网络后都需查看本机ip,然后重新修改tnsname.ora文件中对应的ip地址等信息。但此方法需要每次切换网络都需要更改,较为麻烦,故而选择第二种方案——指定本机ip地址,这样切换网络后也不会自动分配ip地址。

另外也想到了更好的解决方案三:对现在的虚拟机进行克隆得到新的虚拟机,在虚拟机上分别配置oracle数据库,通过本机上的Navicat工具创建连接,进行两虚拟机oracle数据库之间的通信,这样操作较为方便,ip地址也不会随意改变。

问题三:虚拟机上TNSListener的服务无法启动

问题原因:自行指定了本机ip地址,修改ip地址后需重新配置监听程序

解决方案:首先查看oracle文件夹下的\network\admin的listener.ora文件,确定HOST的命名为虚拟机的hostname后(若不是,则将其修改为虚拟机的hostname),再重新使用Net Configuration Assistant工具重新配置监听程序。

问题四:修改tnsnames.ora文件与重新配置监听程序后仍连接失败

解决方案:每次修改tnsnames.ora文件、重新配置监听程序后,都需要手动重新启动本机或虚拟级的对应OracleOraDB19Home1TNSListener与OracleServiceORCL的服务,从而使得修改生效。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
第一章 1、世界上第一个分布式数据库系统SDD—1是由美国计算机公司(CCA)于1976年至1979年 在DEC—10和DEC—20计算机上实现。 2、分布式数据库系统是数据库系统与计算机网络相结合的产物 3、12条规则既不是相互独立的,也不是同等重要的,完全实现难度很大。 4、实现和建立分布式数据库系统绝对不是数据库技术与网络技术的简单结合。分布式数 据库系统虽然基于集中式数据库系统,但却有它自己的特色和理论基础。 5、一些商品化的数据库系统产品,如Oracle,Ingres,Sybase,Informix,IBM DB2等 6、关系技术分布式技术的一个先决条件。 7、分布式数据库系统是物理上分散而逻辑上集中的数据库系统。分布式数据库系统使用 计算机网络将地理位置分散而管理和控制又不需要不同程度集中的多个逻辑单位连接起 来,共同组成一个统一的数据库系统。因此,分布式数据库系统可以看成是计算机网络 与数据库系统的有机结合。 8、在分布式数据库系统中,被计算机网络连接的每个逻辑单位是能够独立工作的计算机 ,这些计算机称为站点也称为结点。 9、在分布式数据库系统中,一个用户或一个应用如果只访问他注册的那个站点上的数据 称为本地(或局部)用户或本地应用;如果访问涉及两个或两个以上的站点中的数据, 称为全局用户或全局应用。 10、一个分布式数据库系统应用应该具有以下几种特点: (1)物理分布性:分布式数据库系统的数据具有物理分布性,这是与集中式数据库系统 的最大差别之一 (2)逻辑整体性:区别一个数据库系统是分散式还是分布式,只需判断该数据库系统是 否支持全局应用 (3)站点自治性:各站点上的数据由本地的DBMS管理,具有自治处理能力,完成本站点 的应用(局部应用),这是分布式数据库系统与多处理机系统的区别 11、数据分布透明性是指用户不必关心数据是如何被逻辑分片的,不必关心数据及其片 段是否被复制及复制副本的个数,也不必关心数据及其片段的物理位置分布的细节,同 时也不必关心局部场地上数据库支持哪种数据模型 12、增加数据冗余度方便了检索,提高了系统的查询速度、可用性和可靠性,但不利于 数据的更新,这将增加系统维护的成本 13、按局部数据库管理系统的数据模型分类 (1)同构型:同构同质型、同构异质型 (2)异构型 14、按分布式数据库系统的全局控制系统类型分类:全局控制集中型DDBS、全局控制分 散型DDBS、全局控制可变型DDBS 15、在集中式数据库系统中,除了计算机本身的硬件和软件外,主要成分有:数据库DB 、数控管理系统DBMS和数据库管理员DBA。分布式数据库系统在次基础上做了扩充:数据 库分为局部DB和全局DB;数据库管理系统分为局部DBMS和全局DBMS;数据库管理员分为 局部DBA和全局DBA 15、分布式数据库有两部分组成:一部分是关于应用所需要的数据的集合,称为应用数 据库,它是分布式数据库的主体;另一部分是关于数据库中数据结构的定义,以及全局 数据的分片、分布的描述,称为数据字典、数据目录或元数据 16、局部数据目录是指本站点中的局部数据字典,而全局数据目录就是全局数据字典, 又称网路数据,是提供全局数据的描述和管理的相关信息,如数据的结构定义,数据的 分片、分布处理、授权、事务恢复等的必要信息 17、数据分片种基本方法:水平分片、垂直分片、混合分片 18、定义各类片段要遵守的规则:完备性条件、可重构条件、不相交条件 19、所谓数据分布是指分布式数据库中的数据不是存储在一个站点的计算机存储设备上 ,而是根据需要将数据划分成逻辑片段,按某种策略将这些片段分散地存储在各个站点 上 20、数据分布的策略有:集中式、分割式、复制式、混合式 21、集中式数据库的模式结构:内模式、模式、外模式 22、分布式数据库是多层模式结构:(1)全局外层:全局外模式(2)全局概念层:全 局概念模式、分片模式、分配模式(3)局部概念层:局部概念模式(4)局部内层:局 部内模式 23、分布式数据库管理系统的功能模块: (1)查询处理模块":查询处理模块至少由两部分组成:查询分析和优化处理 (2)完整性处理模块:该模块主要负责维护数据库的完整性和一致性规则,处理多副本 数据的同步更新等 (3)调度处理模块 (4)可靠性处理模块 24、(分布式中)所谓数据分布独立性是指用户或用户程序使用分布式数据库如同使用 集中式数据库那样,不必关心全局数据的分布情况,包括全局数据的逻辑分片情况、逻 辑片段的站点位置分配情况,以及各站点上数据库的数据模型等。 25、分布透明性有层:分片透明性、位置透明性、局部数据模型透明性 26、分片透明性是分布透明性的最高层。当分布式数据库具有分片透明性时,用户编写 应用程序只对全局关系进行操作,不必考虑数据的逻辑分

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值