毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc

上传人:哈尼dd 文档编号:3948949 上传时间:2019-10-10 格式:DOC 页数:27 大小:499.50KB
返回 下载 相关 举报
毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc_第1页
第1页 / 共27页
毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc_第2页
第2页 / 共27页
毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc_第3页
第3页 / 共27页
毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc_第4页
第4页 / 共27页
毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)-Oracle数据库巡检报告自动生成工具.doc(27页珍藏版)》请在三一文库上搜索。

1、通化通化师师范学院范学院 本本 科科 生生 毕毕 业业 设设 计计 ( 20112011 届)届) 题 目:oracle 数据库巡检报告自动生成工具 系 别: 计算机科学系 专 业: 信息管理与信息系统 班 级: 2007 级 3 班 作者姓名: 学号: 指导教师: 职称: 副教授 学历: 硕士 论文成绩: 2011 年 4 月 目目 录录 摘摘 要:要: 1 ABSTRACT:.1 绪绪 论论 1 第一章第一章 工具开发分析工具开发分析 2 1.1 需求分析.3 1.2 工具的性能分析.3 1.3 运行环境.3 第二章第二章 使用技术的介绍使用技术的介绍 5 2.1 所用语言简介.5 2.1

2、.1 Java 简介.5 2.1.2 HTML 简介.5 2.1.3 CSS 简介.5 2.2 数据库简介.5 2.3 JAVA SE 介绍.6 第三章第三章 总体设计分析总体设计分析 7 3.1 工具所需代码设计.7 3.2 工具的流程设计和功能模块.7 3.3 数据库设计.8 3.3.1 数据库需求分析8 3.3.2 数据库逻辑结构设计9 第四章第四章 总体设计实现总体设计实现 12 4.1 生成初始文档12 4.2 JAVA进行中英替换.14 4.3 页面最终效果.14 第五章第五章 测试与总结测试与总结 19 5.1 测试内容.19 5.2 测试中出现的问题.19 5.3 总结.21

3、结束语结束语 22 参考文献参考文献 23 指导教师评语指导教师评语 24 评阅人评语评阅人评语 25 1 Oracle 数据库巡检报告自动生成工具 计算机科学系 2007 级 3 班 摘摘 要:要:20 世纪末,随着计算机科学的发展,数据库技术在 Internet 中的应用越来越广 泛,越来越多的企业都有属于自己的数据库,对数据库的维护工作也就越发重要起来。数 据库种类繁多,几大巨头公司相继推出自己的数据库产品,其中甲骨文的 oracle 数据库更 是越来越受到各大企业的喜欢。 本文研究了一种可以自动生成 oracle 数据库巡检报告的工具,这一工具解决了耗费大 量数据库管理员时间的问题,应

4、用这一特性,可以快速的生成一个基于 HTML 格式的页面 报告,使操作更方便,也省去了繁琐的粘贴信息的操作,大大提高了数据库管理员的工作 效率。 关键词:关键词:HTML 格式;巡检报告;自动生成;Oracle Automatically Generate Tools of Oracle Database Inspection Report LV Ya-nan , Class 3,Grade 2007,Departement of Computer Science Abstract: In the end of the 20th century, along with the developm

5、ent of computer science, the application of database technology in Internet is more and more extensive, more and more enterprises have databases belonging to their own. The database maintenance work is also more important. There are a wide range of databases. Several giant companies have launched th

6、eir own database products, including Oracles oracle database which is more and more popular. This paper studies a tool which can automatically generate oracle database of inspection report. The tools can solve the database administrator balancing time problem. Application of this one character can q

7、uickly generate report based on HTML page and make the operation more convenient. It can also save a lot of paste information operations, which greatly improved the working efficiency of the database administrator. 2 Keywords: HTML format; Inspection Report ; Automatically Generate; Oracle 绪绪 论论 随着企

8、业信息化建设不断发展和壮大,业务支撑系统的数据成为企业的决策分析, 指导企业发展的核心命脉。数据所依赖的数据库系统的选择和适用也变得尤为重要。传 统关系数据库的技术发展至今,已日趋成熟,关系数据库的竞争也不仅仅是单纯的技术 竞争,早已扩展到了商业智能、一体化解决方案和服务等更广阔的层面【1】。 无论企业里选择和适用的是哪种数据库产品,确保其健康、高可用运行,是企业正 常运营的基础保证,因此定期的数据库健康检查,找出业务支撑系统中可能存在的隐患, 保证数据的安全非常重要【2】。 目前保证数据安全的方法就是定期的对数据库进行健康检查,并对查询出的信息进 行分析,掌握数据库的健康状况。 在健康检查的

9、过程中,数据库管理员会有相关的脚本,执行即可,相应的会生成一 个 TXT 格式的文档。通过对收集的信息的分析,判断数据库的健康状况。听起来也并没 有多少的工作量,但是上面的并不是全部的工作,最繁琐的是要把每一部分的信息手工 的粘贴到正式的文档中,最终交给客户。如果只是几套数据库也还好,但有的客户会有 几十套的库,管理员做这一系列的工作就需要花费大量的时间。一个可以自动生成报告 的工具就显得既方便又省时了。 3 第一章第一章 工具开发分析工具开发分析 1.11.1 需求分析需求分析 事务处理是计算机应用的主要领域。各种信息系统,如管理信息系统(MIS)、决策支 持系统(DSS)、办公室自动化系统

10、(OAS)以及计算机集成生产系统等的发展,使数据库成 为数据的核心存储形式。数据库技术从诞生到现在,在不到半个世纪的时间里,形成了 坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数 据库的诞生和发展给计算机信息管理带来了一场巨大的革命【3】。三十多年来,国内外已 经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活 的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的 研究领域也已经大大地拓广和深化了。 Oracle 数据库巡检报告是数据库管理员对数据库所有健康状况的反应,这些信息的 收集是对数据库性能判断的第一步。数

11、据库管理员通过对信息的分析,对发现的报错或 者警告进行处理,以避免如数据库当机等一些灾难的发生。 1.21.2 工具的工具的性能性能分析分析 Oracle 数据库巡检报告自动生成工具的总体设计目标是为了让数据库管理员能够通 过简单的操作步骤,从而快速的自动生成所需报告。传统的对于数据库巡检的这一工作 步骤过于繁琐,从对数据库信息的提取到生成可以提交给客户的报告这一过程,一个单 节点的数据库也需要 1 个小时左右,大部分的客户会有很多套库,可想而知其中的工作 量之大。最主要是这一个过程所用的大部分时间和维护数据库的健康是没关系的。而自 动生成巡检报告的这一工具就是针对过于耗时的问题出发,减少数据

12、库管理员的工作量, 更提高了巡检数据库这一工作的效率。 1.31.3 运行环境运行环境 操作系统环境 4 客户端: 操作系统:Windows 98/NT/2000/XP 或更高版本,有 Java 环境; 浏览器:IE 6.0 以上或 Netscape 同等版本以上; 服务器: 操作系统:windows,linux,AIX 等; 数据库:oracle 。 5 第二章第二章 使用技术的介绍使用技术的介绍 2.12.1 所用语言所用语言简介简介 2.1.12.1.1 JavaJava 简介简介 Java 是一个由 Sun 公司开发而成的新一代编程语言。使用它可在各式各样不同种机 器、不同种操作平台的

13、网络环境中开发软件。不论你使用的是哪一种 WWW 浏览器,哪一 种计算机,哪一种操作系统,只要 WWW 浏览器上面注明了“支持 Java” ,你就可以看到生 动的主页。Java 正在逐步成为 Internet 应用的主要开发语言【4】。它彻底改变了应用软 件的开发模式,带来了自 PC 机以来又一次技术革命,为迅速发展的信息世界增添了新的 活力。 2.1.22.1.2 HTMLHTML 简介简介 HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档 的简单标记语言。用 HTML 编写的超文本文档称为 HTML 文档,它能独立于各种操作系统 平台

14、(如 UNIX,WINDOWS 等) 。HTML 文档(即 Homepage 的源文件)是一个放置了标记的 ASCII 文本文件,通常它带有.html 或.htm 的文件扩展名。 2.1.32.1.3 CSSCSS 简介简介 CSS(Cascading Style Sheet,可译为“层叠样式表”或“级联样式表” )是一组格 式设置规则,用于控制 Web 页面的外观。通过使用 CSS 样式设置页面的格式,可将页面 的内容与表现形式分离。页面内容存放在 HTML 文档中,而用于定义表现形式的 CSS 规则 则存放在另一个文件中或 HTML 文档的某一部分,通常为文件头部分。将内容与表现形式 分离

15、,不仅可使维护站点的外观更加容易,而且还可以使 HTML 文档代码更加简练,缩短 浏览器的加载时间。 2.22.2 数据库简介数据库简介 6 Oracle 数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软 件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的 应用【5】。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬 件平台的数据互操作能力,使得越来越多的用户将 Oracle 作为其应用数据的处理系统。 2.32.3 JavaJava SESE 介绍介绍 Java SE 是 Java 平台标准版的简称(Java Platform,

16、 Standard Edition) (also known as Java 2 Platform) ,用于开发和部署桌面、服务器以及嵌入设备和实时环境 中的 Java 应用程序【6】。Java SE 包括用于开发 Java Web 服务的类库,同时,Java SE 为 Java EE 提供了基础。Java SE(Java Platform, Standard Edition,Java 标准版) 就是基于 JDK 和 JRE 的。 7 第三章第三章 总体设计分析总体设计分析 3.13.1 工具所需代码设计工具所需代码设计 可以分解为如下几个部分: 1、从数据库中提取数据:这一部分主要是从目标数

17、据库中提取分析时所需要的数据, 包括用基本的 SQL 语句提取的数据和对数据的一些解释,是整个文档中的最重要部分。 2、文档中的中英文替换:此时已经存在了一个文档,但是其中的一些解释信息却不 能中文显示,所以需要 Java 代码把文档中的英文替换成中文,达到最后的文档显示效果。 3.23.2 工具的流程设计和功能模块工具的流程设计和功能模块 对于一份功能健全的巡检报告,你可以知道它的作者,巡检单位,和一些数据库的 信息。如图 3-1 为本工具的功能模块图。 巡检报告 系统 方面 数据库 方面 系 统 环 境 主 机 配 置 C P U 使 用 率 内 存 使 用 率 S G A 参 数 控 制

18、 文 件 日 志 文 件 表 空 间 管 理 数 据 库 配 置 图 3-1 功能模块图 本工具的目的是从 oracle 数据库中提取信息,从而快速生成 HTML 文档。流程大致 如图 3-2 下所示: 8 初始文档 最终文档 主代码 Sql 代码 数据说明代码 文档样式 主要数据 数据说明 页面设置代码 执行 替换 图 3-2 工具流程图 用户在操作系统终端对数据库执行操作,然后会在当前路径生成一个 HTML 格式的初 始文档。在 Java 环境下对初始文档进行替换工作,生成最终的可以交给用户的文档。 3.33.3 数据库设计数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结

19、构设计的好坏将直接 对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存 储的效率,保证数据的完整和一致。 3.3.13.3.1 数据库需求分析数据库需求分析 1.表空间的使用状况是整个巡检报告中比较重要的部分,记录数据库中各个表空间 的剩余空间,把握它们的使用情况,避免没有使用空间的情况。针对本巡检报告的需求, 得到表空间如下需求信息。 表空间,包括数据项:名称,类型,状态。 数据文件,包括数据项:ID,存储路径,所属表空间,大小。 剩余可用空间,包括数据项:表空间,数据文件,可用字节数。 9 以上三者之间的关系如图 3-3 所示。 表空间 (由一个或多个数据文件构成

20、) 数据文件 剩余 空间 已 用 空 间 图 3-3 三者之间的关系图 2. 数据文件的自动扩展也是整个报告中比较关键的问题之一,如果数据文件可以自 动扩展,即使出现表空间空闲使用率很低也不用担心,oracle 会自动增加它的容量。其 中又包括存储正常数据的数据文件和存储临时数据的临时数据文件。针对本巡检报告的 需求,得到数据文件自动扩展如下需求信息。 数据文件,包括数据项:ID,存储路径,所属表空间,大小。 临时表空间数据文件,包括数据项:表空间,数据文件,可用字节数。 3.3.23.3.2 数据库逻辑结构设计数据库逻辑结构设计 1.在巡检报告中各个有关表空间使用情况的表的设计结果如下所示。

21、 表 3-1 dba_tablespaces 字段名数据类型允许空说明 tablespace_namevarchar2(30)no 表空间名 statusvarchar2(9)yes 状态 extent_managementvarchar2(10)yes 区的管理方式 contentsvarchar2(9)yes 表空间类型 Segment_space_managementvarchar2(6)yes 段空间管理 10 表 3-2 dba_data_files 字段名数据类型允许空说明 file_nameVarchar2(513)yes 文件存储路径 file_idnumberyes 文件编号

22、 tablespace_nameVarchar2(30)yes 所属表空间 bytesnumberyes 字节数 blocksnumberyes 总块数 statusVarchar2(9)yes 当前状态 autoextensibleVarchar2(3)yes 是否可扩展 online_statusVarchar2(7)yes 在线与否 表 3-3 dba_free_space 字段名数据类型允许空说明 tablespace_namevarchar2(30)yes 表空间名 bytesnumberyes 字节数 file_idnumberyes 文件编号 block_idnumberyes

23、数据块编号 blocksnumberyes 数据块数 2. 在巡检报告中各个有关数据文件自动扩展情况表的设计结果如下所示。 表 3-4 dba_data_files 字段名数据类型允许空说明 file_nameVarchar2(513)yes 文件存储路径 file_idnumberyes 文件编号 tablespace_nameVarchar2(30)yes 所属表空间 bytesnumberyes 字节数 blocksnumberyes 总块数 statusVarchar2(9)yes 当前状态 autoextensibleVarchar2(3)yes 是否可扩展 online_statu

24、sVarchar2(7)yes 在线与否 表 3-5 dba_temp_files 字段名数据类型允许空说明 file_nameVarchar2(513)yes 文件存储路径 file_idnumberyes 文件编号 tablespace_nameVarchar2(30)no 所属表空间 bytesnumberyes 字节数 blocksnumberyes 总块数 11 statusChar(9)yes 当前状态 autoextensibleVarchar2(3)yes 是否可扩展 maxbytesnumberyes 最大字节数 maxblocksnumberyes 最大数据块数 12 第四

25、章第四章 总体设计实现总体设计实现 4.14.1 生成初始文档生成初始文档 以上所有的代码存储在一个脚本 rep.pdc 中,在服务器端的 sqlplus 下执行此脚本, 过程如下 在当前目录下生成如下 Liyw_Report_OracleSID+时间.HTML 文件 最初文档的效果 13 所用到的部分代码如下: set linesize 1000 col f.tablespace_name format a15 col d.tot_grootte_mb format a10 col ts-per format a15 select upper(f.tablespace_name) “ts-n

26、ame“, d.tot_grootte_mb “ts-bytes(m)“, d.tot_grootte_mb - f.total_bytes “ts-used (m)“, f.total_bytes “ts-free(m)“, to_char(round(d.tot_grootte_mb - f.total_bytes) / d.tot_grootte_mb * 100, 2), 990.99) “ts-per“ from (select tablespace_name, round(sum(bytes) / (1024 * 1024), 2) total_bytes, round(max(b

27、ytes) / (1024 * 1024), 2) max_bytes from sys.dba_free_space group by tablespace_name) f, (select dd.tablespace_name, round(sum(dd.bytes) / (1024 * 1024), 2) tot_grootte_mb from sys.dba_data_files dd group by dd.tablespace_name) d where d.tablespace_name = f.tablespace_name order by 5 desc; 14 select

28、 file_name,tablespace_name,AUTOEXTENSIBLE from dba_data_files where AUTOEXTENSIBLE=YES; select file_name,tablespace_name,AUTOEXTENSIBLE from dba_temp_files where AUTOEXTENSIBLE=YES; 4.24.2 JavaJava 进行中英替换进行中英替换 由上面的最初文档页面效果可以看到,数据的旁边会有一串英文,这串英文实际是 对这部分数据的标题。如果这样的显示效果应该只有设计者可以明白它的意思,所以需 要把英文替换成中文,让所有

29、看到文档的人都能够一目了然。 拷贝这个初始文档到本地计算机,设置好 java_home 环境变量,进入你 R1.java 所 在路径,对 R1.java 进行编译,会在此目录下生成 R1.class 4.34.3 页面最终效果页面最终效果 R1.class 和 orac_b.txt 应在同一目录下,执行如下命令 15 最终页面效果 使用到的代码如下: import java.util.regex.*; import java.io.*; import java.lang.String.*; import java.lang.Integer; public class R1 public sta

30、tic void main(String args) 16 String chinese =new String10002 ; String outfile; if (args.length=0) System.out.println(“ERR:请输入转换文件的名字“); return; if (args.length=1) outfile=“LYN_HELCH.HTML“; else outfile=args1; chinese=readFileByLines(“orac_b.txt“); System.out.println(“参数文件长度为:“+chinese.length+“行“);

31、writeFileByLines(args0,outfile,chinese); System.out.println(“完毕“); /*读配置参数文件*/ public static String readFileByLines(String fileName) String chinese =new String10002 ; File file = new File(fileName); BufferedReader reader = null; try reader = new BufferedReader(new FileReader(file); String headString

32、 = null; String tempString = null; int char_No = 0; int line=0; while (tempString = reader.readLine() != null) char_No=tempString.indexOf(“=“); if(char_No!=-1) headString=tempString.substring(0,char_No); tempString=tempString.substring(char_No+1); chineseline0=headString; chineseline1=tempString; li

33、ne+; reader.close(); catch (IOException e) e.printStackTrace(); finally if (reader != null) try 17 reader.close(); catch (IOException e1) return chinese; public static void writeFileByLines(String fileName,String fileName1,String ary) FileWriter fw = null; File fe=null; BufferedReader reader = null;

34、 String st; String chenge; try fw = new FileWriter(fileName1); fe = new File(fileName); reader = new BufferedReader(new FileReader(fe); Pattern p; Matcher m; boolean b=true; for (int i = 0; i+) st=reader.readLine(); if (st= null )break; for(int j = 0; j+) if (aryj0= null )break; p =Ppile(aryj0); m =

35、 p.matcher(st); b=m.find(); if(b) chenge=m.replaceAll(aryj1); fw.write(chenge); fw.write(“rn“); break; if (!b) fw.write(st); fw.write(“rn“); fw.close(); 18 catch (Exception e) e.printStackTrace(); finally try fw.close(); catch (Exception e) e.printStackTrace(); 19 第五章第五章 测试与总结测试与总结 5.15.1 测试内容测试内容 主

36、要包括一下几个方面: 1、操作系统平台测试。 Linux 或者 AIX 服务器,可以在服务器上执行信息采集脚本,将其生成的 HTML 文 档下载到本地,再对其进行编译,以免字符集不符出现乱码。 2、数据库版本测试。 对 Oracle 9I、10g、11g 等不同版本测试,确定其适用的版本。 3、速度测试。 记录开始执行到生成报告的整个过程中所用的时间,以评定其高效性。 5.25.2 测试中出现的问题测试中出现的问题 1、初始文档信息丢失问题 执行过程中没有任何报错,但是从生成的最初文档中可以看到数据库的部分信息 丢失,显示效果如图 5-1 所示: 20 图 5-1 部分信息丢失问题 出现这个问

37、题的原因主要是在数据库中提取信息时,执行脚本的用户没有足够的对 数据库操作的权限,对执行脚本的用户授予 SYSDBA 权限后显示效果如图 5-2 所示: 图 5-2 解决信息丢失问题效果 2、乱码问题 可以在任何的操作系统中执行脚本生成初始的文档,但是运用 Java 进行中英文替换 时有可能因为字符集的问题出现乱码,显示效果如图 5-3 所示: 21 图 5-3 乱码问题 如图可以可到,在对 Java 代码编译过程中出现了乱码,无法生成相应的 .class 文 件,这主要是代码编写的字符集和操作系统中的编码不同,解决办法如下: (1)把初始文档拷贝到 windows 上,在 windows 系

38、统中对其进行编译。 (2)设置当前操作系统的字符集,如本测试系统是 linux,可以只对当前会话修改 export LANG=“zh_CN.GB18030“ ,设置后再进行编译,显示效果如图 5-4 所示: 图 5-3 解决乱码问题显示效果 5.35.3 总结总结 通过对工具的开发,各个脚本的编写以及最后的测试,快速生成 oracle 巡检报 告这一工具已经可以满足当前数据库管理员的要求,当然,此工具仍然存在不完美之处, 对数据库版本和操作系统的字符集仍有限定,这也是以后要进一步完善的主要目标。 22 结束语结束语 经过两个多月的设计和开发,快速生成 oracle 数据库巡检报告的工具基本开发

39、完毕。 在这期间,接触了 Java 环境,一些代码的编写,以及 oracle 数据库知识的深化。在学 习相关的技术的同时,一边摸索,一边进行毕业设计的题目的制作。在 6 月初,已经初 步完成了预先所设计的效果。 该工具具备了较好的操作系统平台的通用性,易于使用,而且经过测试,确实可以 达到快速高效的设计初衷。该工具的功能还有一些不完美的部分有待改善,如数据库版 本上的限定,字符集的匹配要求。一方面时间紧迫;另一方面是对于 Java 和操作系统以 及 oracle 数据库相关知识的掌握仍有待加强。在此我要非常感谢我的指导教师:张秀萍 教授。感谢她在整个毕业设计过程中给予的无私帮助以及提出的很多批

40、改意见,教会我 很多的知识,也让我收获了很多宝贵的经验,同时也感谢所有在这个过程中帮助我的老 师和同学,为我提供了很多有价值的参考意见和相关的技术资料。 23 参考文献参考文献 1马晓玉,孙岩. Oracle 10g 管理M.北京:清华大学出版社,2007. 2王路群. Oracle 10g 管理及应用M.北京:中国水利水电出版社,2007. 3魏亚楠等 oracle 数据库应用系统的性能优化J.制造业自动化,2010 年 08 期. 4董天龙等.用 Java 实现 HELLO WORLD 入门和常见错误分析. 电脑学习,2010-02-01. 5高攀等.基于 oracle 数据库的 SQL

41、语句优化J.电脑编程技巧与维护,2010 年 22 期. 6苏进胜.初学 Java 的环境变量.福建电脑,2010-02-25. 7张建东.Java 程序设计教学探讨.科技信息,2009-08-25. 8马岩.用 Java 实现教学网站的设计.吉林广播电视大学学报,2009-11-15. 9赛奎春.JAVA 工程应用与项目实践M. 机械工业出版社, 2004:300-460. 10FLANAGAN.JAVA 技术手册M. 中国电力出版社,2007:200-320. 11Timothy Budd. An Introduction to Object-Oriented ProgrammingM. Addison - Wesley,2006:98-380. 24 指导教师评语指导教师评语 就学生毕业论文(设计)的工作态度及论文的优点与不足、论文解决的关 键问题、论文的意义写出评语,是否同意参加论文答辩;150-300: 指导教师(签字): 年 月 日 25 评阅人评语评阅人评语 就学生对基本理论的掌握;选题完成情况;是否有创新;论文(设计)书 写规范程度等,是否达到本科专业毕业论文水平与要求,是否同意参加本 科毕业论文(设计)答辩,建议评定成绩等级等;150-300: 评阅人(签字): 年 月 日

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1