学校应用系统数据库设计研究

2016-03-17 12:14杨进钊唐山工业职业技术学院河北唐山063299
工业技术与职业教育 2016年1期
关键词:Oracle数据库性能

杨进钊(唐山工业职业技术学院,河北 唐山 063299)



学校应用系统数据库设计研究

杨进钊
(唐山工业职业技术学院,河北 唐山 063299)

摘 要:学校数据库系统是学校业务应用的核心组件,它的设计至关重要。为了保障数据库系统经济、高效、可靠的运行,要尽量减少数据库类型和数据库实例。在目前大多数数据中心采用了虚拟化技术之后,以Oracle为例,从数据库性能和数据库集群部署方式两方面阐述应如何设计。

关键词:Oracle数据库;性能;集群部署方式

0 前言

学校数据库系统(例如Oracle、DB2、SQLServer)是学校业务应用的核心组件,数据库中存放着很多业务数据,而数据是学校的重要资产,所以保障数据库系统经济、高效、可靠的运行至关重要。

然而在传统信息化建设的时候,绝大部分都是采取每个应用系统对应一个专有的数据库,并且不同的应用有针对自己的一系列的数据库的需求,从而导致不同类型、不同版本、不同补丁的数据库以及不同的维护流程;从而使许多应用都拥有自己独自的数据库甚至独立的服务器和存储。这带来成本的上升,以及其它一系列的问题出现,例如数据库维护复杂化。下面就根据工作实践,发表个人见解,供同仁参考。

1 设计思路

现在学校绝大部分应用运行在服务器上,服务器的利用率不高,可以通过服务器虚拟化技术进行整合,解决服务器利用率低下、硬件基础设施运维麻烦、耗电、占地空间大等一系列问题,并且能够在虚拟化技术的支撑下很方便的创建出开发测试环境,从而使应用系统能够更快、更方便地进行测试。

对于数据库系统来说,不同类型、不同版本、不同补丁的数据库以及不同的维护流程,给管理者带来很大麻烦,所以我们要转变思想,即减少数据库类型和减少数据库实例的数量。

1.1 减少数据库类型

与应用提供商沟通,根据业务需求由提供商在他们产品的基础上进行二次开发。这样就由提供商来确定数据库类型(例如选择Oracle/DB2/SQL Server/MySQL),但是我们可以决定他们使用的数据库版本。

对于上级单位下发的应用,应用数据库类型虽不可变,但我们可以决定他们使用的数据库版本。由学校自己开发或外包给应用开发商进行开发的应用,我们可完全决定使用数据库的类型和版本。

虽说一个学校的信息化建设所依赖的数据库系统采用一个数据库的某个版本(例如Oracle Database 11G R2)是一种非常好的情况,但很多情况下会受到各方面的影响,只采用一个数据库的某个版本可能不大现实。所以我们设定以下几个基本原则:

1)对于商用的数据库:我们只选择主流的商用数据库(Oracle、DB2、SQL Server),根据学校的现实情况,例如我们只选择Oracle Database 11g R2某个稳定合适的补丁版本,不要出现数据库是同一个类型但各个数据库的小版本不一样。

如果新的应用开发需要用到新版本数据库的特定功能,则新的应用可以使用新版本的数据库,例如Oracle Database 12c。

如果我们的数据库运行很稳定,尽量不要对数据库进行升级。

2)对于开源的数据库:我们建议只选择现在最成熟、最流行的MySQL 数据库的某个合适版本。

3)操作系统的选择:数据库运行在Linux操作系统上,除非一些情况必须选择其它操作系统。

通过上面的阐述,业务应用系统所依赖的数据库从不同类型、不同版本的情况下进行相应的统一,对运维管理有很大的意义。

1.2 减少数据库实例

数据库实例数过多,对数据库的管理、备份/恢复、优化等还是比较麻烦的。所以我们需要进行进一步的优化。

在理想情况下,只建设一个高可靠、高性能的数据库集群系统来支撑所有业务应用系统是最好的。但考虑到现实应用架构体系的设计和相应的其它管控等因素,这样做是不现实的。

对于一个大类业务应用系统,如果不涉及安全管控等因素,则各个业务应用系统共享一个数据库集群。

如果在一个大类业务能力的各个业务应用系统中还存在相应的安全管控因素的话,则继续进行相应的拆分,但是必须要控制住实例数目。

1.3 对整个虚拟硬件基础设施和数据库做好监控

业务应用系统可靠、高性能的运行是业务运营成功的保证,而保障这些需要一个完善的覆盖虚拟资源(计算、存储、网络)、数据库、中间件的端到端的监控解决方案,从而可以及时的发现问题和警告、修正问题、从而让系统可靠、高性能的运行。我们必然建立统一监控解决方案来进行支撑,从而可以实时故障排除。

2 设计实现

以Oracle 数据库、虚拟化软件以(Vmware)为例,对其它数据库(例如DB2等)也具有参考意义。

2.1 Oracle 数据库性能等方面的设计规范

对于SQL 语句以及对应数据库的设计(例如索引、表分区等),如果SQL语句和相应的数据库设计实现的质量很高的话,它所体现出来的性能很有可能比一个比较差的SQL语句和相应的数据库设计会高一个数量级别,并且还会带来对CPU、内存、I/O的要求也降低从而可以让系统可以承受更多的工作负载。SQL 语句非常关键,但是相应的Oracle数据库方面的设计也非常关键。

2.1.1 操作系统方面

Oracle 数据库依赖于操作系统,所以对于操作系统来说就会有相应的很多要求,由于操作系统运行在VM中,这样的话间接对VM也具有相应的要求。

1)对于Guest OS 启用 Large Memory Pages for Hypervisor and Guest Operating System。

2)启用打开硬件辅助虚拟化功能(Hardware-Assisted Virtualization)。

3)打开NUMA,并对NUMA进行设置。

4)特定场景下启用Latency-Sensitivity Feature

5)关系型数据库安装到VM中会具有相应的VMDK文件,然而数据库的数据和日志是采用VMDK还是RDM? 现在建议采用VMDK,并且必须使用“半虚拟化 SCSI HBA”机制,不能使用缺省值。对于分配给VM的内存,设置Reservation。

操作系统调优需要以下步骤:

1)在操作系统中启用Large Memory Pages支持

3)调整系统内核参数

4)限制Oracle 用户资源

2.1.2 Oracle数据库方面

Oracle数据库方面的一些优化设计规则非常关键,经过相应的优化让物理的I/O次数、随机I/ O的次数越少越好,因为数据库的瓶颈永远在I/O,我们需要借助其它机制来减少。

1)Oracle 数据库相应的参数调优,例如SGA、PGA、Shared Pool、Database Buffer Cache等等方面。

2)Oracle 数据库的信息采集。当Oracle 数据库性能出现问题时,要进行正取的数据采集,建议峰值期间按照15分钟为周期块进行采集。

2.1.3 Oracle 数据库的物理结构设计方面

Oracle数据库的物理结构对性能产生比较大的影响的关键点是Data Files和Redo Log Files。

一般情况下,大多数Oracle 没有数据库性能诉求或者诉求不高,并且都指望依赖存储设备来解决。存储设备的高性能很重要,但是数据库的设计更重要,应该是由数据库的设计来决定存储设备的设计和规划。

在本实验教学中,教师先创设情境,展示过氧化氢溶液,提出问题:“在哪些条件下可以加快过氧化氢分解?”以问题引导学生回忆其分解过程,调动已有知识基础,思考、分析并得出结论:过氧化氢在加热、加入催化剂FeCl3溶液和过氧化酶时均能加快分解,且不同条件下分解速率不同。由此明确实验课题——比较过氧化氢在不同条件下的分解速率。

1)启用Oracle数据库中自动存储管理功能ASM。

2)Data Files(数据)和Redo Log Files(日志)的I/O必须分离,即分配给Redo Log Files、Data Files的磁盘必须是不同的。

3)Redo Log Files(日志文件)的要求:建议给Redo Log Files分配SSD,并且做RAID1+0(条带化、镜像、可恢复), 启用归档模式Archivclog。

4)Data Files(数据)的要求:建议给Data Files 分配HDD,并且做RAID5,在一些情况下也可以使用存储设备提供的SSD+HDD的混合阵列功能以加速数据I/O。

一定要把数据(Data)表空间和索引(Index)表空间给分开对应不同的RAID5磁盘组,也就意味着在数据库中必须至少要有两个表空间,一个是数据表空间来存储表的业务数据,一个是索引表空间来存储索引数据。

合适的索引设计:根据监控所发现的执行比较慢的SQL语句以及执行频率非常高的SQL语句,需要分析这些SQL语句的执行计划,从而决定出建设什么合适的索引,不是索引越多约好,而是根据实际建设合适的索引才是最好。

数据碎片重组和降低高水位线:在数据库运行较长时间后,必然出现相应的碎片以及高水位线(HWM)会较高,这将大大降低数据库的查询性能。

对超大型表进行分区以提升高性能和可用性:Oracle的分区技术(Partitioning Option)是一种处理超大型表的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能。通过屏蔽故障数据的分区,还增加了可用性。

2.1.4 Oracle 数据库的安全方面

通过减少数据库实例数目的整合后,不可能给各个应用系统提供Oracle数据库的超级用户权限或者DBA权限的,所以需要根据应用系统的不同需求提供合适的权限。

2.1.5 Oracle 数据库的备份方面

数据库的备份至关重要,我们一定要做好数据库备份,以避免以外发生时可以挽回重大损失,甚至实现灾备。

2.2 Oracle 数据库集群部署方式的设计规范建议

实现一个高可靠、高性能的数据库集群一般可以采取以下三种方式:

2.2.1 HA方式

即通过相应的HA软件或者vSphere HA机制以实现数据库的高可用性,保证数据库运行的服务器/OS出现意外时,备机可以接管。

2.2.2 Active DataGuard方式

通过Oracle 数据库的Active DataGuard方式可以实现数据库的高可用性,以及相应的读写分离机制以提高性能。甚至可以采用Active DataGuard实现数据库的容灾。

2.2.3 RAC方式

通过采用RAC集群机制(利用多台机器),从而实现数据库的高可靠性和高性能。

3 结语

本文以Oracle数据库为例,在设计思路上尽量减少数据库类型和实例。在现实应用过程中要考虑在虚拟化环境下,数据库的性能优化及集群部署方式。这样才能使数据库系统经济、高效、可靠的运行。该方案在学校信息化建设过程中建设应用系统数据库有所帮助。

【参考文献】

[1]何坤源.构建高可用VMware vSphere 5.X虚拟化架构[M].北京:人民邮电出版社,2014:56-70,86.

[2]侯松.高并发oracle数据库系统的架构与设计[M].北京:机械工业出版社,2014:319-366.

[3]饶冰,裴征峰,高文博.Oracle云管理平台——企业管理器12c实战指南[M].北京:清华大学出版社,2013: 102-203.

[4]杨传辉.大规模分布式存储系统:原理解析与架构实战[M].北京.机械工业出版社,2013:96-204.

[5]王春海.VMware vSphere企业运维实战[M].北京:人民邮电出版社,2014:38-70,96.

[6](巴西)Gustavo A.A.Santana.数据中心虚拟化技术权威指南[M].张其光,袁强,薛润忠,译.北京:人民邮电出版社,2015:323-364.

The Research on College Applied System Database Design

YANG Jingzhao
(Tangshan Polytechnic College, Tangshan 063299, China)

Abstract:College database system is the core component of college office work, which plays a vital role in college operation.In order to keep its high efficiency and stability, database should reduce its types and examples.Nowadays most database center use virtual technology.This article will set an example of Oracle to illustrate how to design the database.Two ways will be discussed: database property and way of cluster distribution.

Key words:Oracle database;property;way of cluster distribution

作者简介:杨进钊(1973-),男,河北唐山人,高级讲师,信息网络技术中心副主任,主研方向为网络技术。

收稿日期:2015-11-30

中图分类号:TP315

文献标识码:B

文章编号:1674-943X(2016)01-0013-03

猜你喜欢
Oracle数据库性能
Cd/ZnO的制备及湿敏性能研究
提供将近80 Gbps的带宽性能 DisplayPort 2.0正式发布
Oracle数据库安全管理策略的优化
Oracle数据库应用问题与解决方案分析
一种Oracle数据库表空间监控方法
《Oracle数据库》课程教学模式探究 
PP—g—GMA的制备及其增容PP/PA6共混物的性能
Al-Se双元置换的基于LGPS的thio-LISICON的制备与性能表征
强韧化PBT/PC共混物的制备与性能
RDX/POLY(BAMO-AMMO)基发射药的热分解与燃烧性能