数据库管理开发详细设计说明书_第1页
数据库管理开发详细设计说明书_第2页
数据库管理开发详细设计说明书_第3页
数据库管理开发详细设计说明书_第4页
数据库管理开发详细设计说明书_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

数据库管理开发

详细设计说明书

目录

1引言...............................................................4

1.1编写目的.....................................................4

1.2术语定义.....................................................4

1.3参考资料.....................................................5

2综合描述...........................................................7

2.1系统目标.....................................................7

2.2系统概述.....................................................9

2.3运行环境....................................................10

2.4程序结构说明................................................11

2.5源程序及编译链接组装说明....................................13

3系统详细设计......................................................13

3.1系统结构描述.................................................15

3.2模块名称1........................................................15

3.2.1界面结构或菜单结构.........................错误!未定义书签。

3.2.2界面原型...................................错误!未定义书签。

3.2.3界面项目列表...............................错误!未定义书签。

3.2.4页面事件列表...............................错误!未定义书签。

3.2.5提交事件...................................错误!未定义书签。

3.3模块名称2(不带界面)...........................错误!未定义书签。

3.3.1逻辑描述...................................................75

3.3.2任务类......................................................16

333数据访问层..................................................17

3.3.4类图........................................................19

3.3.5时序图.................................................41

4待定问题列表.....................................................42

1引言

1.1编写目的

依据联通总部易成云项目背景,根据公有云项目建设目标,参考《北京联通

智慧城市需求说明书》、《全行业监控管理插件版V3.0.0系统使用手册》、

《网关插件版使用方案》、《北京联通智慧城市概要设计说明书》、《总部集团

客户部(联通)联通易成云vl.O需求跟踪矩阵》组织软件开发与测试,特编写

详细设计文档,供开发人员、工程人员、项目管理人员和其他人员参考。

1.2术语定义

术语/定义解释

企业通过自己的基础设施直接向外部用户提供服务。外部

用户通过互联网访问服务,并不拥有云计算资源。公有云

能够以低廉的价格,提供有吸引力的服务给最终用户,创

公有云

造新的业务价值,公有云作为一个支撑平台,还能够整合

上游的服务(如增值业务,广告)提供者和下游最终用户,

打造新的价值链和生态系统。

实例是由访问数据库的一组进程和内存组成。而数据库则

是一系列储存数据的文件。一个数据库可以被一个实例或

Oracle实例

者多个实例打开(RAC)。访问数据库的时候,连上的是

一个实例,通过实例访问到数据库中的数据。

其实就是用户的概念,只是这个用户的权限比较大,类似

Oracle租于systemdba,一个oracle实例对应一个租户,租户可以

户向下级发展多个用户,这些用户同属于该租户,可以多个

用户共享一个表空间,也可以一个用户对应一个表空间

Oracle存就是oracle数据库实例文件系统所占用的磁盘大小,可以

储理解为表空间的大小(总和)

接口是指一组webService服务,通过接口接收请求

接口并作相应内部处理后向外提供服务,需要请求方与接口之

间的网络畅通并有对应的文件解析格式

监控是对oracle实例运行时的性能和健康状态进行侦测,

以帮助相关人员对oracle数据库有个整体的把握和了解,

帮助提高数据库运行效率,保证数据库健康运行。自动化

自动化监控监控指的是能够智能地、主动地对数据库进行监控,无需

启停程序,能够做到对新数据库实例的监控和对已销毁的

数据库的停止监控。但必须保证监控端与数据库实例端的

网络畅通。

个性化告警指的是用户根据自定义规则对数据库运行时状

个性化告警态进行告警,不必拘泥于已有规则,根据自身实际需要和

情况进行符合自身实际情况的告警,灵活可配置

是指对oracle运行时所占用内存大小、分配内存大小、实

Oracle计量例启停时间、存活时间、占用存储大小、分配存储大小、

网络10等进行统计,以帮助企业计费

整库备份指对数据库中的所有数据、逻辑结构等进行备份

依据表空间为基本单位,对表空间的逻辑结构、数据进行

表空间恢复

恢复原样的操作

1.3参考资料

《北京联通智慧城市需求说明书》

《全行业监控管理插件版V3O0系统使用手册》

《网关插件版使用方案》

《北京联通智慧城市概要设计说明书》

《总部集团客户部(联通)联通易成云vl.O需求跟踪矩阵》

2综合描述

2.1系统目标

2.1.1发展现状

公有云被认为是云计算的主要形态。在国内发展如火如荼,根据市场参与者

类型分类,可以分为四类:

一类为传统电信基础设施运营商,包括中国移动、中国联通和中国电信;

一类为政府主导下的地方云计算平台,如各地如火如荼的各种“XX云”项目;

一类为互联网巨头打造的公有云平台,如盛大云;

一类为部分原IDC运营商,如世纪互联;

一类为具有国外技术背景或引进国外云计算技术的国内企业,如风起亚洲云。

由于目前国内并未开放外国公司在中国直接进行云计算业务,因此像亚马逊、

IBM、Joyent、Rackspaces等国外已有多年云计算业务经验的厂商在进入中国市

场途中仍障碍重重。2012年11月1日,微软终于实现旗下公有云计算平台

WindowsAzure在中国的落地,这将掀开外资企业进军中国云计算市场的序幕

2.1.2规划原则

实现对联通总部公有云研发建设的系统层面、数据库层面的有效强有力的支

持,为公有云环境提供稳定的可信赖的系统脚本层面的支持,为公有云环境提供

准确的可依赖的数据库监控、计量服务,实现贴合用户需求的个性化的告警

2.1.3业务目标

1、实现数据库实例快速一键式创建、销毁、变更

2、实现对数据库全面、完整的监控、计量、告警

3、实现对数据库的个性化告警配置

4、实现对数据库的自动化监控

5、实现程序化、自动化创建、销毁管理数据库

2.1.4技术目标

实现公有云试点、积累经验

完善网管插件版系统,学习mysql监控告警管理功能

尝试自动化监控和个性化告警

2.1.5技术标准

1、安全。云计算提供了最可靠、最安全的数据存储中心,用户不用再担心数据丢

失、病毒入侵等麻烦

2、方便。云计算对用户端的设备要求最低,使用起来也最方便。

3、数据共享。云计算可以轻松实现不同设备间的数据与应用共享。

4、无限可能。云计算为我们使用网络提供了几乎无限多的可能。

2.1.6担忧

1、安全:允许谁查看企业的专有数据?

2、性能:应用程序系统性能在处理峰值时刻会如预期那样吗?

3、数据数据所有权:“云”的所有权就是系统平台上数据的所有权吗?

4、可靠性:一个企业可以部署很多数据中心和冗余系统,来满足正常运转时间

的需要。提供“云”服务的公司会提供相同的服务吗?

5、一致性:越来越多的公共企业、金融服务和健康部门的公司都面临着严格的

条例规范;他们需要能够证明谁访问了数据、在何时或者何处处理过这些

数据,当处理这些数据的时候,就需要哪些软件和硬件。在企业内部的数据

库中,做到这些就非常困难。在云中他们能够允许做同样的工作吗?更有

可能的是对于重要的应用程序,企业将会部署基于网页的访问机制,让这些

应用程序在当前宿主的位置运行。至于应用程序的更新,企业可能会创建企

业内部云。只有在他们充分体验这种即时需求资源服务和按使用量付费的

工作环境之后,他们才可能会分配一些工作到外部云如果对在外部云上部署

部分工作负载非常必须的话,他们会考虑这样去做。这些企业在这个方向

上跨出下一步之前,会非常尽力地去找到合适的工具来创建他们自己的内部

2.2系统概述

“智慧城市以智慧城市为核心,突出“开启城市智时代'’的理念,通过打造云

平台,汇集信息资源,聚合智慧应用,塑造中国联通城市信息化新形象。

为了更好地规划“智慧城市”未来,满足各省“智慧城市”行业应用发展需要,

中国联通致力于做好云平台的搭建。目前,中国联通集团斥资几个亿打造的“智慧

城市云平台“已落地上海。

中国联通总部通过云平台可以实现集中管理、统一技术实现、统一行业应用

模板、确保应用开发全国共享;而省级可以通过子系统发布、部署行业应用及加

载地方城市信息数据等,同时以云计算为核心,水平承载平台,垂直应用孵化。

中国联通基地数据中心基础设施资源以面向云能力提供为核心,具备高利用率、

智能化、绿色节能特征。为城市数据信息存储提供安全可靠保障。依托于“智慧

城市云平台”,中国联通将实现智慧应用的快速孵化,推动智慧产业的高效发展。

我司承担此次联通易成云智慧城市项目的脚本工作和oracle数据库监控

计量告警工作,力争实现对联通总部公有云研发建设的系统层面、数据库层面的

有效强有力的支持,为公有云环境提供稳定的可信赖的系统脚本层面的支持,为

公有云环境提供准确的可依赖的数据库监控、计量服务,实现贴合用户需求的个

性化的告警,并对自己将来在公有云的研发方面积累实战经验和技巧。

2.3运行环境

2.3.1软件环境

软件名称功能版本

ESXiVMware虚拟化宿主机5.0

VMwarevSphere集中管理VMware虚5.0

vCenter拟化主机及资源

XCPXen虚拟化宿主机1.6

集中管理Xen虚拟化

XenCenter主机及资源6.0

JDKJava运行环境jdkl.6.0_45

TomcatWeb应用运行容器apache-tomcat-6.0.37

Mysql数据库5.5

RabbitMQ消息中间件rabbitmq-server-3.1.0

WindowsServervCenter服务器操作系

2008统

SqlServer2008vCenter服务器数据库

应用服务器、RabbitMQ

RedHat6.4X64服务器

Oracle10gOracle数据库10g

2.3.2硬件环境

2.4程序结构说明

Strutsaction夷(BeanAction)

ActionContext类

视图层

合D

o

m

1a

i

n

业务层

数据层

(持久化层)

SqlMapClient

本系统也采用了StrutsModel2,中心控制器(BaseAction)控制所有的程序

流转,是MVC三个相对独立的部分协调工作,它接受所有来自客户端的请求,

并根据系统的配置(Struts.xml)发送HTTP请求到其他Action对象(开发者实现

的com.sitech.ismp.util.struts.BaseAction的子类),在这些Action对象中会进行所

有的业务操作,比如添加用户,删除用户,修改一条记录。把其中的处理的结果

封装在domain包下自定义的实体类或HashMap,处理完毕后由BaseServlet转向

到JSP页面,将处理结果返回给客户端视图JSP。具体流程见下图:

2.5源程序及编译链接组装说明

1、配置文件概述:

序号配置文件名称作用说明

1Web.xml1.配置struts拦截器

2.配置单点登录拦截器

3.Struts配置文件加载

2Struts.xml配置多个struts文件

3applicationContext.xml配置实体类

4DBConfig.Properties配置数据库连接

5webUperties配置接口程序连接、vCenter连接等

6SqlMap.config配置操作数据库xml文件

2、web工程目录结构:

3系统详细设计

3.1系统结构描述

3.2监控计量告警(不带界面)

3.2.1逻辑描述

运行MainScheduler.java,会解析perties,根据配置的时间规则

运行相应的调度,只有当RequireDBInstanceJob.java运行完成获取到监控实例之

后才会开始监控调度的作业和计量调度的作业,而告警调度的作业则要在规则调

度作业完成之后才能进行

3.2.2任务类

运行频率

实例调度:15分钟一次

监控调度:1分钟一次

规则调度:15分钟一次

告警调度:3分钟一次

计量调度:15分钟一次

Request输入

食项目名称属性名称项目类型项目描述

CollOracleKP无Void监控调度

1

IBySqlJob

RequireDBIns无Void实例调度

2

tancejob

AchiveCollRu无Void规则调度

3

lejob

OracleAlarmJ无Void告警调度

4

ob

OracleMeasur无Void计量调度

5

ementJob

Response输出

乡项目名称属性名称项目类型项目描述

CollOracleKP无Void监控调度

1

IBySqlJob

RequireDBIns无Void实例调度

2

tancejob

AchiveCollRu无Void规则调度

3

lejob

OracleAlarmJ无Void告警调度

4

ob

OracleMeasur无Void计量调度

5

ementJob

逻辑

从MainScheduler.java开始起调度,当时间满足时间配置时,触发以下逻辑处

理程序

实例调度:publicvoiddoJob(){...),获取数据库监控实例作业开始调度,从

接口获取存活的数据库实例进行监控

监控调度:publicvoiddoJob(){...),监控调度开始作业,开始监控数据库实

规则调度:publicvoiddoJob(){...),规则调度开始作业,从接口获取告警项

和告警规则

告警调度:publicvoiddoJob(){...},依据告警规则文件的配置,如果满足条

件,则触发告警

计量调度:publicvoiddoJob(){...},计算数据库运行时所占用的资源和预配

置资源的大小,服务提供商据此向企业收取服务费用

3.2.3数据访问层

Request输入

乌项目名称属性名称项目类型项目描述

MonitorOraclmonitorThreVoid监控调度

1

eServicead

CollDBInstandbListVoid实例调度

2

ceService

Array、Void规则调度

AchiveCollRu

3ruleKpiSet^

1eService

ruleEntryMap

OracleAlarmSalarmThreadVoid告警调度

4

ervice

OracleMeasurmeasurementVoid计量调度

5

ementServiceThread

3・2・3・2Response输出

乌项目名称属性名称项目类型项目描述

MonitorOraclmonitorThreVoid监控调度

1

eServicead

CollDBInstandbListVoid实例调度

2

ceService

Array、Void规则调度

AchiveColIRu

3ruleKpiSet>

leService

ruleEntryMap

OracleAlarmSalarmThreadVoid告警调度

4

ervice

OracleMeasurmeasurementVoid计量调度

5

ementServiceThread

3.23.3核心SQL

1>selectround((1-(physical_reads/(db_block_gets+consistent_gets))),4)

fromv$buffer_pool_statisticswherename=,DEFAULT,

2、selectround((1-(sum(getmisses)/(sum(gets)+sum(getmisses)))),4)from

v$rowcache

3、selectround(sum(pinhits)/sum(pins),4)fromv$librarycache

4、selectround(value/1024/1024,2)fromv$parameterwhere

name=,db_cache_size,

5、selectround(value/1024/1024,2)fromv$parameterwhere

name=,log_buffer,

6、selectround(value/l024/1024,2)fromv$parameterwhere

name='sga_max_size,

7、selectcount(*)fromall_users

8、selectcount(*)fromdba_usersdwhered.DEFAULT_TABLESPACE<>

'SYSTEM'

9、selectround(sum(bytes)/1024/1024,2)fromdba_data_fileswhere

TABLESPACENAMEnotin

CUNDOTBS17SYSAUX','SYSTEM,,,USERS,)

10、selectround(sum(bytes)/1024/1024,2)fromdba_free_spacewhere

TABLESPACE.NAMEnotin

(fUNDOTBS1f;SYSAUX7SYSTEMVUSERS1)

11>selectcount(*)fromv$session

12、selectcount(*)KPI_VALUEfromv$locked_object

13>selectcount(*)fromv$lockwhererequest<>0

3.2.4类图

类一览表

包名类名类说明

Com.sitech.monitor,bas数据库连接解密

C3pOEncryptProperties

e.c3pOEncrypt

Com.sitech.monitor,daoCollOrac1eBySq1Dao、数据库访问

2.

.oraclecollCollOracleBySqlDaoImpl

Com.sitech.monitor,dep构造规则配置文件工

3.RuleConstants

end.RuleConstants具类

Com.sitech.monitor,dom数据库实例实体类

4.DBInstanceObj

ain.dbinstance

Com.sitech.monitor,jobOracle数据库实例

5.OracleAlarmJob

s.alarm告警调度器

Com.sitech.monitor,jobOracle数据库实例

6.Co11Orac1eKPIBySq1Job

.coll监控调度器

Com.sitech.monitor,dbi获取数据库实例调

7RequireDBInstanceJob

nstance度器

Com.sitech.monitor,del维护监控文件调度

8DelUnExsitDBFileJob

file器

Com.sitech.monitor,meaOracle数据库实例

9Orac1eMeasurementJob

surement计量调度器

Com.sitech.monitor,rul获取告警规则调度

10AchiveColIRuleJob

e器

Com.sitech.monitor,serOracle数据库告警

11OracleAlarmService

vice,alarm逻辑层

Com.sitech.monitor,serOracle数据库告警

12OracleAlarmThread

vice,alarm,thread线程类

Com.sitech.monitor,serOracle监控逻辑层

13MonitorOrac1eService

vice.coll

Com.sitech.monitor.SerOracle监控线程类

14MonitorOrac1eThread

vice,col1.thread

Com.sitech.monitor.Ser获取监控实例逻辑

15ColIDBInstanceService

vice.dbinstance层

Com.sitech.monitor.Ser维护监控文件逻辑

16DelUnExsitDBFi1eService

vice.delfile层

包名类名类说明

Com.sitech.monitor,serOracle计量逻辑层

17OracleMeasurementService

vice.measurement

Com.sitech.monitor,serOracle计量线程类

18MeasurementOracleThread

vice.measurement,thread

Com.sitech.monitor,ser获取告警规则逻辑

19AchiveColIRuleService

vice,rule层

Com.sitech.monitor,uti获取bean

20AppContext

1

Com.sitech.monitor,uti加密解密

21BASE64Util

1

Com.sitech.monitor,uti数据库连接工具类

22DBUtil

1

Com.sitech.monitor,utiDouble类型数字处

23DoubleFormater

1理类

Com.sitech.monitor,uti模拟浏览器工具类

24HttpClientUtil

1

Com.sitech.monitor,uti模拟浏览器

25ImitateHttpClient

1

Com.sitech.monitor,utiJson类型处理类

26JacksonUtil

1

Com.sitech,monitor,utiProperties文件处

27PropertiesUtil

1理类

Com.sitech.monitor,uti线程池

28ScheduledThreadPool

1

Com.sitech.monitor,uti模拟浏览器

29VirtualHttpClient

1

Com.sitech.monitor,utiXml文件处理类

30XmlProperties

1

Com.sitech.monitor,uti构造xml文件工具

31XmlUtil

1类

Com.sitech.monitor,sch调度器入口

32MainScheduler

eduler

Com.sitech.monitor,sch更改调度job

33ChangesMonitorJob

eduler.commonjobs

Com.sitech.monitor,sch脚本job

34She11Job

eduler.commonjobs

Com.sitech.monitor,schSql语句job

35SQLJob

eduler.commonjobs

类说明

.1C3pOEncryptProperties类

类摘要

Com.sitech.monitor.此类对数据库连接进行解密

base.c3pOEncrypt.

C3pOEncryptProperties

字段摘要

PrivateProperties配置文件

Properties

构造方法摘要

C3pOEncryptProperties(){}。

方法摘要

PrivateStringpasswordDecode(intw,inth)

密码解析

r^-

PrivateStringbase64DecodeString()

密码使用base64转码

.2CollOracleBySqlDao类

类摘要

Com.sitech.monitor,dao.oracleco访问数据库接口

11.CollOracleBySqlDao

方法摘要

publicObject

executeSql(StringsqlzStringjdbcdriverzString

urlzStringusername,Stringpassword);执行sql语句

3.3,4.2.3CollOracleBySqlDaoImpl类

类摘要

Com.sitech,monitor,dao.oracleco访问数据库实现类

11.CollOracleBySqlDaoImpl

构造方法摘要

Co11Orac1eBySq1DaoImp1(){}o

方法摘要

publicObject

executeSql(StringsqlzStringjdbcdriverfString

urlzStringusername,Stringpassword);执行sql语句

.4RuleConstants类

类摘要

com.sitech.monitor,depe此类生成告警规则文件

nd.RuleConstants

字段摘要

publicstatic配置文件头

finalString

XMLHEADER

1

publicstatic配置文件尾

finalString

XMLTAIL

构造方法摘要

RuleConstants(){}。

3.2・4.2.3DBInstanceObj类

类摘要

com.sitech,monitor,domain,dbinstanoracle实例实体

ce.DBInstanceObj

字段摘要

privateString数据库服务器ip地址

SERVERIP;

privateString数据库实例所占的端口

INSTANCEPORT;//

privateString数据库实例名称

INSTANCENAME;//

privateString当前数据库实例systemdba用户名

DBANAME;//

privateString当前数据库dba密码

DBAPASSWORD;//

构造方法摘要

DBInstanceObj(){}。

.4OracleAlarmJob类

类摘要

com.sitech.monitor,jobs,alaoracle数据库告警调度任务

rm.OracleAlarmJob

构造方法摘要

OracleAlarmJob(){}。

方法摘要

execute

执行调度

.5CollOracleKPIBySqlJob类

类摘要

com.sitech.monitor,jobs,co采用Sql语句监控oracle数据库,调度任务

11.

CollOracleKPIBySqlJob

构造方法摘要

CollOracleKPIBySqlJob(){},,

方法摘要

execute

执行调度

.6RequireDBInstanceJob类

类摘要

com.sitech.monitor,jobs,dbinstan获取需要监控的数据库实例

ce.RequireDBInstanceJob

构造方法摘要

RequireDBInstanceJob(){}o

方法摘要

execute

执行调度

.7DelUnExsitDBFileJob类

类摘要

com.sitech,monitor,jobs,delfi删除己经不存在的实例的监控文件

le.DelUnExsitDBFileJob

构造方法摘要

DelUnExsitDBFileJob(){}<,

方法摘要

execute

执行调度

.8OracleMeasurementJob类

类摘要

com.sitech.monitor,jobs,measuremeOracle计量调度入口

nt.Orac1eMeasurementJob

构造方法摘要

OracleMeasurementJob(){}。

方法摘要

execute

执行调度

.9AchiveCollRuleJob类

类摘要

com.sitech,monitor,jobs,ru获取告警规则调度

le.AchiveColIRuleJob

构造方法摘要

AchiveCo11Ru1eJob(){}o

方法摘要

execute

执行调度

.10OracIeAlarmService类

类摘要

com.sitech,monitor,service,alaoracle告警

rm.Orac1eA1armService

字段摘要

privatealarmThread线程池

ScheduledThreadPool

privateLoggerLogger打印日志

构造方法摘要

Orac1eA1armService(){}o

方法摘要

i

privatebooleanDecidelfFileExists()判断告警规则文件、监控文

件是否存在

privateachiveMonitorData()

List<JSONObject>取出监控数据

privatevoidgoToAlarmThread(List<JSONObject>list)开启线程

执行告警

privatevoidstartAlarm()开始处理数据库告警

.11OracleAlarmThread类

类摘要

com.sitech,monitor,service,alarm,thre开启多线程进行监控

ad.Orac1eA1armThread

字段摘要

privateLoggerLogger打印日志

i

privatealarmKpi告警项配置值

XmlProperties;

r-

privatealarmMap告警配置项

Map<StringJ

String>;

privatejsonListjson集合

List<OSONObject>

privateStringipIp地址

privateArray告警数据

DSONArray

1

privateStringType类型

type;

r^―

privateStringId标识

构造方法摘要

Orac1eA1armThread(List<JSONObject>list){}«

方法摘要

privatevoidexecuteAlarm(List<JSONObject>

list)执行告警

r-

privatevoid

alarmConnDB()告警连接状态

privatevoid

alarmLock()锁告警

privatevoid

alarmSession()会话告警

privatevoid

alarmTableSpace()表空间告警

privatevoid

alarmllsers()用户告警

r~-

privatevoid

alarmConfig()配置告警

privatevoid

alarmHitRadio()命中率告警

privatevoiddecideAlarm(String

entryKey,StringalarmDescription)

判断是否告警

privatevoidpushAlarmData(JSONObject

jsonz

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论