数据库管理开发详细设计说明书模板.docx
《数据库管理开发详细设计说明书模板.docx》由会员分享,可在线阅读,更多相关《数据库管理开发详细设计说明书模板.docx(36页珍藏版)》请在冰豆网上搜索。
![数据库管理开发详细设计说明书模板.docx](https://file1.bdocx.com/fileroot1/2023-1/26/88a5dfe7-eb5c-4eba-bfc0-a5ca953b208e/88a5dfe7-eb5c-4eba-bfc0-a5ca953b208e1.gif)
数据库管理开发详细设计说明书模板
数据库管理开发
详细设计说明书
1引言
1.1编写目的
依据联通总部易成云项目背景,根据公有云项目建设目标,参考《北京联通智慧城市需求说明书》、《全行业监控管理插件版V3.0.0系统使用手册》、
《网关插件版使用方案》、《北京联通智慧城市概要设计说明书》、《总部集团客户部(联通)联通易成云v1.0需求跟踪矩阵》组织软件开发与测试,特编写详细设计文档,供开发人员、工程人员、项目管理人员和其他人员参考。
1.2术语定义
术语/定义
解释
公有云
企业通过自己的基础设施直接向外部用户提供服务。
外部用户通过互联网访问服务,并不拥有云计算资源。
公有云能够以低廉的价格,提供有吸引力的服务给最终用户,创造新的业务价值,公有云作为一个支撑平台,还能够整合上游的服务(如增值业务,广告)提供者和下游最终用户,打造新的价值链和生态系统。
Oracle实例
实例是由访问数据库的一组进程和内存组成。
而数据库则是一系列储存数据的文件。
一个数据库可以被一个实例或者多个实例打开(RAC)。
访问数据库的时候,连上的是一个实例,通过实例访问到数据库中的数据。
Oracle租户
其实就是用户的概念,只是这个用户的权限比较大,类似于systemdba,一个oracle实例对应一个租户,租户可以向下级发展多个用户,这些用户同属于该租户,可以多个用户共享一个表空间,也可以一个用户对应一个表空间
Oracle存储
就是oracle数据库实例文件系统所占用的磁盘大小,可以理解为表空间的大小(总和)
接口
接口是指一组webService服务,通过接口接收请求并作相应内部处理后向外提供服务,需要请求方与接口之间的网络畅通并有对应的文件解析格式
自动化监控
监控是对oracle实例运行时的性能和健康状态进行侦测,以帮助相关人员对oracle数据库有个整体的把握和了解,帮助提高数据库运行效率,保证数据库健康运行。
自动化监控指的是能够智能地、主动地对数据库进行监控,无需启停程序,能够做到对新数据库实例的监控和对已销毁的数据库的停止监控。
但必须保证监控端与数据库实例端的网络畅通。
个性化告警
个性化告警指的是用户根据自定义规则对数据库运行时状态进行告警,不必拘泥于已有规则,根据自身实际需要和情况进行符合自身实际情况的告警,灵活可配置
Oracle计量
是指对oracle运行时所占用内存大小、分配内存大小、实例启停时间、存活时间、占用存储大小、分配存储大小、网络IO等进行统计,以帮助企业计费
整库备份
指对数据库中的所有数据、逻辑结构等进行备份
表空间恢复
依据表空间为基本单位,对表空间的逻辑结构、数据进行恢复原样的操作
1.3参考资料
《北京联通智慧城市需求说明书》
《全行业监控管理插件版V3.0.0系统使用手册》
《网关插件版使用方案》
《北京联通智慧城市概要设计说明书》
《总部集团客户部(联通)联通易成云v1.0需求跟踪矩阵》
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软件环境
软件名称
功能
版本
ESXi
VMware虚拟化宿主机
5.0
VMwarevSpherevCenter
集中管理VMware虚拟化主机及资源
5.0
XCP
Xen虚拟化宿主机
1.6
XenCenter
集中管理Xen虚拟化主机及资源
6.0
JDK
Java运行环境
jdk1.6.0_45
Tomcat
Web应用运行容器
apache-tomcat-6.0.37
Mysql
数据库
5.5
RabbitMQ
消息中间件
rabbitmq-server-3.1.0
WindowsServer2008
vCenter服务器操作系统
SqlServer2008
vCenter服务器数据库
RedHat6.4X64
应用服务器、RabbitMQ服务器
Oracle10g
Oracle数据库
10g
2.3.2硬件环境
2.4程序结构说明
本系统也采用了StrutsModel2,中心控制器(BaseAction)控制所有的程序流转,是MVC三个相对独立的部分协调工作,它接受所有来自客户端的请求,并根据系统的配置(Struts.xml)发送HTTP请求到其他Action对象(开发者实现的com.sitech.ismp.util.struts.BaseAction的子类),在这些Action对象中会进行所有的业务操作,比如添加用户,删除用户,修改一条记录。
把其中的处理的结果封装在domain包下自定义的实体类或HashMap,处理完毕后由BaseServlet转向到JSP页面,将处理结果返回给客户端视图JSP。
具体流程见下图:
2.5源程序及编译链接组装说明
1、配置文件概述:
序号
配置文件名称
作用说明
1
Web.xml
1.配置struts拦截器
2.配置单点登录拦截器
3.Struts配置文件加载
2
Struts.xml
配置多个struts文件
3
applicationContext.xml
配置实体类
4
DBConfig.Properties
配置数据库连接
5
webUrl.properties
配置接口程序连接、vCenter连接等
6
SqlMap.config
配置操作数据库xml文件
2、web工程目录结构:
3系统详细设计
3.1系统结构描述
3.2监控计量告警(不带界面)
3.2.1逻辑描述
运行MainScheduler.java,会解析rsmu-jobs.properties,根据配置的时间规则运行相应的调度,只有当RequireDBInstanceJob.java运行完成获取到监控实例之后才会开始监控调度的作业和计量调度的作业,而告警调度的作业则要在规则调度作业完成之后才能进行
3.2.2任务类
3.2.2.1运行频率
实例调度:
15分钟一次
监控调度:
1分钟一次
规则调度:
15分钟一次
告警调度:
3分钟一次
计量调度:
15分钟一次
3.2.2.2Request输入
编号
项目名称
属性名称
项目类型
项目描述
1
CollOracleKPIBySqlJob
无
Void
监控调度
2
RequireDBInstanceJob
无
Void
实例调度
3
AchiveCollRuleJob
无
Void
规则调度
4
OracleAlarmJob
无
Void
告警调度
5
OracleMeasurementJob
无
Void
计量调度
3.2.2.3Response输出
编号
项目名称
属性名称
项目类型
项目描述
1
CollOracleKPIBySqlJob
无
Void
监控调度
2
RequireDBInstanceJob
无
Void
实例调度
3
AchiveCollRuleJob
无
Void
规则调度
4
OracleAlarmJob
无
Void
告警调度
5
OracleMeasurementJob
无
Void
计量调度
3.2.2.4逻辑
从MainScheduler.java开始起调度,当时间满足时间配置时,触发以下逻辑处理程序
实例调度:
publicvoiddoJob(){…},获取数据库监控实例作业开始调度,从接口获取存活的数据库实例进行监控
监控调度:
publicvoiddoJob(){…},监控调度开始作业,开始监控数据库实例
规则调度:
publicvoiddoJob(){…},规则调度开始作业,从接口获取告警项和告警规则
告警调度:
publicvoiddoJob(){…},依据告警规则文件的配置,如果满足条件,则触发告警
计量调度:
publicvoiddoJob(){…},计算数据库运行时所占用的资源和预配置资源的大小,服务提供商据此向企业收取服务费用
3.2.3数据访问层
3.2.3.1Request输入
编号
项目名称
属性名称
项目类型
项目描述
1
MonitorOracleService
monitorThread
Void
监控调度
2
CollDBInstanceService
dbList
Void
实例调度
3
AchiveCollRuleService
Array、ruleKpiSet、
ruleEntryMap
Void
规则调度
4
OracleAlarmService
alarmThread
Void
告警调度
5
OracleMeasurementService
measurementThread
Void
计量调度
3.2.3.2Response输出
编号
项目名称
属性名称
项目类型
项目描述
1
MonitorOracleService
monitorThread
Void
监控调度
2
CollDBInstanceService
dbList
Void
实例调度
3
AchiveCollRuleService
Array、ruleKpiSet、
ruleEntryMap
Void
规则调度
4
OracleAlarmService
alarmThread
Void
告警调度
5
OracleMeasurementService
measurementThread
Void
计量调度
3.2.3.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)fromv$rowcache
3、selectround(sum(pinhits)/sum(pins),4)fromv$librarycache
4、selectround(value/1024/1024,2)fromv$parameterwherename='db_cache_size'
5、selectround(value/1024/1024,2)fromv$parameterwherename='log_buffer'
6、selectround(value/1024/1024,2)fromv$parameterwherename='sga_max_size'
7、selectcount(*)fromall_users
8、selectcount(*)fromdba_usersdwhered.DEFAULT_TABLESPACE<>'SYSTEM'
9、selectround(sum(bytes)/1024/1024,2)fromdba_data_fileswhereTABLESPACE_NAMEnotin('UNDOTBS1','SYSAUX','SYSTEM','USERS')
10、selectround(sum(bytes)/1024/1024,2)fromdba_free_spacewhereTABLESPACE_NAMEnotin('UNDOTBS1','SYSAUX','SYSTEM','USERS')
11、selectcount(*)fromv$session
12、selectcount(*)KPI_VALUEfromv$locked_object
13、selectcount(*)fromv$lockwhererequest<>0
3.2.4类图
3.2.4.1类一览表
编号
包名
类名
类说明
1.1
Com.sitech.monitor.base.c3p0Encrypt
C3p0EncryptProperties
数据库连接解密
2.
Com.sitech.monitor.dao.oraclecoll
CollOracleBySqlDao、CollOracleBySqlDaoImpl
数据库访问
3.
Com.sitech.monitor.depend.RuleConstants
RuleConstants
构造规则配置文件工具类
4.
Com.sitech.monitor.domain.dbinstance
DBInstanceObj
数据库实例实体类
5.
Com.sitech.monitor.jobs.alarm
OracleAlarmJob
Oracle数据库实例告警调度器
6.
Com.sitech.monitor.job.coll
CollOracleKPIBySqlJob
Oracle数据库实例监控调度器
7
Com.sitech.monitor.dbinstance
RequireDBInstanceJob
获取数据库实例调度器
8
Com.sitech.monitor.delfile
DelUnExsitDBFileJob
维护监控文件调度器
9
Com.sitech.monitor.measurement
OracleMeasurementJob
Oracle数据库实例计量调度器
10
Com.sitech.monitor.rule
AchiveCollRuleJob
获取告警规则调度器
11
Com.sitech.monitor.service.alarm
OracleAlarmService
Oracle数据库告警逻辑层
12
Com.sitech.monitor.service.alarm.thread
OracleAlarmThread
Oracle数据库告警线程类
13
Com.sitech.monitor.service.coll
MonitorOracleService
Oracle监控逻辑层
14
Com.sitech.monitor.Service.coll.thread
MonitorOracleThread
Oracle监控线程类
15
Com.sitech.monitor.Service.dbinstance
CollDBInstanceService
获取监控实例逻辑层
16
Com.sitech.monitor.Service.delfile
DelUnExsitDBFileService
维护监控文件逻辑层
17
Com.sitech.monitor.service.measurement
OracleMeasurementService
Oracle计量逻辑层
18
Com.sitech.monitor.service.measurement.thread
MeasurementOracleThread
Oracle计量线程类
19
Com.sitech.monitor.service.rule
AchiveCollRuleService
获取告警规则逻辑层
20
Com.sitech.monitor.util
AppContext
获取bean
21
Com.sitech.monitor.util
BASE64Util
加密解密
22
Com.sitech.monitor.util
DBUtil
数据库连接工具类
23
Com.sitech.monitor.util
DoubleFormater
Double类型数字处理类
24
Com.sitech.monitor.util
HttpClientUtil
模拟浏览器工具类
25
Com.sitech.monitor.util
ImitateHttpClient
模拟浏览器
26
Com.sitech.monitor.util
JacksonUtil
Json类型处理类
27
Com.sitech.monitor.util
PropertiesUtil
Properties文件处理类
28
Com.sitech.monitor.util
ScheduledThreadPool
线程池
29
Com.sitech.monitor.util
VirtualHttpClient
模拟浏览器
30
Com.sitech.monitor.util
XmlProperties
Xml文件处理类
31
Com.sitech.monitor.util
XmlUtil
构造xml文件工具类
32
Com.sitech.monitor.scheduler
MainScheduler
调度器入口
33
Cmonjobs
ChangesMonitorJob
更改调度job
34
Cmonjobs
ShellJob
脚本job
35
Cmonjobs
SQLJob
Sql语句job
3.2.4.2类说明
3.2.4.2.1C3p0EncryptProperties类
类摘要
Com.sitech.monitor.
base.c3p0Encrypt.C3p0EncryptProperties
此类对数据库连接进行解密
字段摘要
PrivateProperties
Properties配置文件
构造方法摘要
C3p0EncryptProperties(){}。
方法摘要
PrivateString
passwordDecode(int w,int h)
密码解析
PrivateString
base64DecodeString()
密码使用base64转码
3.2.4.2.2CollOracleBySqlDao类
类摘要
Com.sitech.monitor.dao.oraclecoll.CollOracleBySqlDao
访问数据库接口
方法摘要
publicObject
executeSql(Stringsql,