毕业论文---oracle数据库巡检报告自动生成工具_第1页
毕业论文---oracle数据库巡检报告自动生成工具_第2页
毕业论文---oracle数据库巡检报告自动生成工具_第3页
毕业论文---oracle数据库巡检报告自动生成工具_第4页
毕业论文---oracle数据库巡检报告自动生成工具_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、题目:oracle 数据库巡检报告自动生成工具 目目 录录 摘摘 要:要: . 1 ABSTRACTABSTRACT:. 1 绪绪论论 . 2 第一章第一章 工具开发分析工具开发分析. 3 1.1 需求分析. 3 1.2 工具的性能分析. 3 1.3 运行环境. 3 第二章第二章 使用技术的介绍使用技术的介绍. 5 2.1 所用语言简介. 5 2.1.1 Java 简介 . 5 2.1.2 HTML 简介 . 5 2.1.3 CSS 简介 . 5 2.2 数据库简介. 5 2.3 JAVASE 介绍 . 6 第三章第三章总体设计分析总体设计分析. 7 3.1 工具所需代码设计 . 7 3.2

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 结束语结束语 . 22 参考文献参考文献 . 23 指导教师评语指导教师评语 . 24 评阅人评语评阅人评语 . 25 Oracle 数据库巡检报告自动生成工具 摘摘 要:要:20 世纪末,随着

3、计算机科学的发展,数据库技术在Internet 中的应用越来越 广泛,越来越多的企业都有属于自己的数据库,对数据库的维护工作也就越发重要起来。 数据库种类繁多,几大巨头公司相继推出自己的数据库产品,其中甲骨文的 oracle 数据 库更是越来越受到各大企业的喜欢。 本文研究了一种可以自动生成 oracle 数据库巡检报告的工具,这一工具解决了耗费 大量数据库管理员时间的问题,应用这一特性,可以快速的生成一个基于 HTML 格式的页 面报告,使操作更方便,也省去了繁琐的粘贴信息的操作,大大提高了数据库管理员的工 作效率。 关键词:关键词:HTML 格式;巡检报告;自动生成;Oracle Auto

4、matically Generate Tools of Oracle Database Inspection Report LV Ya-nan , Class 3,Grade 2007,Departement of Computer Science AbstractAbstract: In the end of the 20th century, along with the development of computer science, the application of database technology in Internet is more and more extensive

5、, 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 their own database products, including Oracles oracle database which is more and more popular. This pape

6、r 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 quickly generate report based on HTML page and make the operation more convenient. It can also save a l

7、ot of paste information operations, which greatly improved the working efficiency of the database administrator. Keywords:Keywords: HTML format; Inspection Report ; Automatically Generate; Oracle 1 绪绪论论 随着企业信息化建设不断发展和壮大,业务支撑系统的数据成为企业的决策分析,指 导企业发展的核心命脉。数据所依赖的数据库系统的选择和适用也变得尤为重要。传统关 系数据库的技术发展至今,已日趋成熟,关

8、系数据库的竞争也不仅仅是单纯的技术竞争, 早已扩展到了商业智能、一体化解决方案和服务等更广阔的层面【1】。 无论企业里选择和适用的是哪种数据库产品,确保其健康、高可用运行,是企业正常 运营的基础保证,因此定期的数据库健康检查,找出业务支撑系统中可能存在的隐患,保 证数据的安全非常重要【2】。 目前保证数据安全的方法就是定期的对数据库进行健康检查,并对查询出的信息进行 分析,掌握数据库的健康状况。 在健康检查的过程中,数据库管理员会有相关的脚本,执行即可,相应的会生成一个 TXT 格式的文档。通过对收集的信息的分析,判断数据库的健康状况。听起来也并没有多 少的工作量,但是上面的并不是全部的工作,

9、最繁琐的是要把每一部分的信息手工的粘贴 到正式的文档中,最终交给客户。如果只是几套数据库也还好,但有的客户会有几十套的 库,管理员做这一系列的工作就需要花费大量的时间。一个可以自动生成报告的工具就显 得既方便又省时了。 2 第一章第一章 工具开发分析工具开发分析 1.11.1 需求分析需求分析 事务处理是计算机应用的主要领域。各种信息系统,如管理信息系统(MIS)、决策支 持系统(DSS)、办公室自动化系统(OAS)以及计算机集成生产系统等的发展,使数据库成为 数据的核心存储形式。数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实 的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越

10、多的研究者加入。数据库的 诞生和发展给计算机信息管理带来了一场巨大的革命【3】。三十多年来,国内外已经开发建 设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。 同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经 大大地拓广和深化了。 Oracle 数据库巡检报告是数据库管理员对数据库所有健康状况的反应, 这些信息的收 集是对数据库性能判断的第一步。数据库管理员通过对信息的分析,对发现的报错或者警 告进行处理,以避免如数据库当机等一些灾难的发生。 1.21.2 工具的性能分析工具的性能分析 Oracle 数据库巡检报告自动生成工具的总体

11、设计目标是为了让数据库管理员能够通 过简单的操作步骤,从而快速的自动生成所需报告。传统的对于数据库巡检的这一工作步 骤过于繁琐,从对数据库信息的提取到生成可以提交给客户的报告这一过程,一个单节点 的数据库也需要 1 个小时左右, 大部分的客户会有很多套库, 可想而知其中的工作量之大。 最主要是这一个过程所用的大部分时间和维护数据库的健康是没关系的。而自动生成巡检 报告的这一工具就是针对过于耗时的问题出发,减少数据库管理员的工作量,更提高了巡 检数据库这一工作的效率。 1.31.3 运行环境运行环境 操作系统环境 客户端: 操作系统:Windows 98/NT/2000/XP 或更高版本,有 J

12、ava 环境; 3 浏览器:IE 6.0 以上或 Netscape 同等版本以上; 服务器: 操作系统:windows,linux,AIX 等; 数据库:oracle 。 4 第二章第二章 使用技术的介绍使用技术的介绍 2.12.1 所用语言简介所用语言简介 2.1.1 Java2.1.1 Java 简介简介 Java是一个由Sun公司开发而成的新一代编程语言。 使用它可在各式各样不同种机器、 不同种操作平台的网络环境中开发软件。不论你使用的是哪一种 WWW 浏览器,哪一种计算 机,哪一种操作系统,只要WWW 浏览器上面注明了“支持 Java”,你就可以看到生动的主 页。Java 正在逐步成为

13、 Internet 应用的主要开发语言【4】。它彻底改变了应用软件的开发 模式,带来了自 PC 机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。 2.1.2 HTML2.1.2 HTML 简介简介 HTML(Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档 的简单标记语言。用 HTML 编写的超文本文档称为 HTML 文档,它能独立于各种操作系统平 台 (如 UNIX, WINDOWS 等) 。 HTML 文档 (即 Homepage 的源文件) 是一个放置了标记的 ASCII 文本文件,通常它带有.html 或.htm 的文件扩展名。

14、2.1.3 CSS2.1.3 CSS 简介简介 CSS(Cascading Style Sheet,可译为“层叠样式表”或“级联样式表”)是一组格 式设置规则,用于控制 Web 页面的外观。通过使用 CSS 样式设置页面的格式,可将页面的 内容与表现形式分离。页面内容存放在 HTML 文档中,而用于定义表现形式的 CSS 规则则 存放在另一个文件中或 HTML 文档的某一部分,通常为文件头部分。将内容与表现形式分 离,不仅可使维护站点的外观更加容易,而且还可以使 HTML 文档代码更加简练,缩短浏 览器的加载时间。 2.22.2 数据库简介数据库简介 5 Oracle 数据库管理系统是一个以关

15、系型和面向对象为中心管理数据的数据库管理软 件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应 用【5】。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平 台的数据互操作能力,使得越来越多的用户将 Oracle 作为其应用数据的处理系统。 2.3 Java SE2.3 Java SE 介绍介绍 Java SE 是 Java 平台标准版的简称 (Java Platform, Standard Edition) (also known as Java 2 Platform) ,用于开发和部署桌面、服务器以及嵌入设备和实时环境中的 Java 应用程

16、序【6】。Java SE 包括用于开发 Java Web 服务的类库,同时,Java SE 为 Java EE 提 供了基础。Java SE(Java Platform, Standard Edition ,Java 标准版)就是基于 JDK 和 JRE 的。 6 第三章第三章总体设计分析总体设计分析 3.13.1 工具所需代码设计工具所需代码设计 可以分解为如下几个部分: 1、从数据库中提取数据:这一部分主要是从目标数据库中提取分析时所需要的数据, 包括用基本的 SQL 语句提取的数据和对数据的一些解释,是整个文档中的最重要部分。 2、文档中的中英文替换:此时已经存在了一个文档,但是其中的一

17、些解释信息却不 能中文显示,所以需要 Java 代码把文档中的英文替换成中文,达到最后的文档显示效果。 3.23.2 工具的流程设计和功能模块工具的流程设计和功能模块 对于一份功能健全的巡检报告,你可以知道它的作者,巡检单位,和一些数据库的信 息。如图 3-1 为本工具的功能模块图。 巡检报告 系统 方面 数据库 方面 系 统 环 境 主 机 配 置 C P U 使 用 率 内 存 使 用 率 数 据 库 配 置 S G A 参 数 控 制 文 件 日 志 文 件 表 空 间 管 理 图 3-1 功能模块图 本工具的目的是从 oracle 数据库中提取信息,从而快速生成 HTML 文档。流程大

18、致如 图 3-2 下所示: 7 页面设置代码 主代码 Sql 代码 数据说明代码 执行 初始文档 文档样式 主要数据 替换 最终文档 数据说明 图 3-2 工具流程图 用户在操作系统终端对数据库执行操作,然后会在当前路径生成一个 HTML 格式的初 始文档。在 Java 环境下对初始文档进行替换工作,生成最终的可以交给用户的文档。 3.33.3 数据库设计数据库设计 数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对 应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的 效率,保证数据的完整和一致。 .1 数据库需求分析数据库需

19、求分析 1.表空间的使用状况是整个巡检报告中比较重要的部分,记录数据库中各个表空间的 剩余空间,把握它们的使用情况,避免没有使用空间的情况。针对本巡检报告的需求,得 到表空间如下需求信息。 表空间,包括数据项:名称,类型,状态。 数据文件,包括数据项:ID,存储路径,所属表空间,大小。 剩余可用空间,包括数据项:表空间,数据文件,可用字节数。 8 以上三者之间的关系如图 3-3 所示。 表空间 (由一个或多个数据文件构成) 剩 余 空 间 已 用 空 间 数据文件 图 3-3 三者之间的关系图 2. 数据文件的自动扩展也是整个报告中比较关键的问题之一,如果数据文件可以自 动扩展,即使出现表空间

20、空闲使用率很低也不用担心,oracle 会自动增加它的容量。其中 又包括存储正常数据的数据文件和存储临时数据的临时数据文件。针对本巡检报告的需 求,得到数据文件自动扩展如下需求信息。 数据文件,包括数据项:ID,存储路径,所属表空间,大小。 临时表空间数据文件,包括数据项:表空间,数据文件,可用字节数。 .2 数据库逻辑结构设计数据库逻辑结构设计 1.在巡检报告中各个有关表空间使用情况的表的设计结果如下所示。 表 3-1 dba_tablespaces 字段名 tablespace_name status extent_management contents Segment_s

21、pace_management 数据类型 varchar2(30) varchar2(9) varchar2(10) varchar2(9) varchar2(6) 9 允许空 no yes yes yes yes 说明 表空间名 状态 区的管理方式 表空间类型 段空间管理 表 3-2 dba_data_files 字段名 file_name file_id tablespace_name bytes blocks status autoextensible online_status 数据类型 Varchar2(513) number Varchar2(30) number number V

22、archar2(9) Varchar2(3) Varchar2(7) 允许空 yes yes yes yes yes yes yes yes 说明 文件存储路径 文件编号 所属表空间 字节数 总块数 当前状态 是否可扩展 在线与否 表 3-3 dba_free_space 字段名 tablespace_name bytes file_id block_id blocks 数据类型 varchar2(30) number number number number 允许空 yes yes yes yes yes 说明 表空间名 字节数 文件编号 数据块编号 数据块数 2. 在巡检报告中各个有关数据

23、文件自动扩展情况表的设计结果如下所示。 表 3-4 dba_data_files 字段名 file_name file_id tablespace_name bytes blocks status autoextensible online_status 数据类型 Varchar2(513) number Varchar2(30) number number Varchar2(9) Varchar2(3) Varchar2(7) 允许空 yes yes yes yes yes yes yes yes 说明 文件存储路径 文件编号 所属表空间 字节数 总块数 当前状态 是否可扩展 在线与否 表

24、3-5 dba_temp_files 字段名 file_name file_id tablespace_name bytes blocks 数据类型 Varchar2(513) number Varchar2(30) number number 10 允许空 yes yes no yes yes 说明 文件存储路径 文件编号 所属表空间 字节数 总块数 status autoextensible maxbytes maxblocks Char(9) Varchar2(3) number number yes yes yes yes 当前状态 是否可扩展 最大字节数 最大数据块数 11 第四章第

25、四章总体设计实现总体设计实现 4.14.1 生成初始文档生成初始文档 以上所有的代码存储在一个脚本 rep.pdc 中,在服务器端的 sqlplus 下执行此脚本, 过程如下 在当前目录下生成如下 Liyw_Report_OracleSID+时间.HTML 文件 最初文档的效果 12 所用到的部分代码如下: 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-name,

26、 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(bytes) / (1024

27、 * 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; 13 select file_name,ta

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

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

30、n(String args) 15 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+行); writeFileByLines(args0

31、,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 = null; String tempStri

32、ng = 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; line+; reader.close(); catch

33、 (IOException e) e.printStackTrace(); finally if (reader != null) try 16 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; String st; String chenge;

34、 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 = p.matcher(st); b=m.find()

35、; if(b) chenge=m.replaceAll(aryj1); fw.write(chenge); fw.write(rn); break; if (!b) fw.write(st); fw.write(rn); fw.close(); 17 catch (Exception e) e.printStackTrace(); finally try fw.close(); catch (Exception e) e.printStackTrace(); 18 第五章第五章 测试与总结测试与总结 5.15.1 测试内容测试内容 主要包括一下几个方面: 1、操作系统平台测试。 Linux 或

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

37、对数 据库操作的权限,对执行脚本的用户授予 SYSDBA 权限后显示效果如图 5-2 所示: 图 5-2 解决信息丢失问题效果 2、乱码问题 可以在任何的操作系统中执行脚本生成初始的文档,但是运用 Java 进行中英文替换 时有可能因为字符集的问题出现乱码,显示效果如图 5-3 所示: 20 图 5-3 乱码问题 如图可以可到, 在对 Java 代码编译过程中出现了乱码, 无法生成相应的 .class 文件, 这主要是代码编写的字符集和操作系统中的编码不同,解决办法如下: (1)把初始文档拷贝到 windows 上,在 windows 系统中对其进行编译。 (2)设置当前操作系统的字符集,如本测试系统是 linux,可以只对当前会话修改 export LANG=zh_CN.GB18030 ,设置后再进行编译,显示效果如图 5-4 所示: 图 5-3 解决乱码问题显示效果 5.35.3 总结总结 通过对工具的开发,各个脚本的编写以及最后的测试,快速生成 oracle 巡检报 告这一工具已经可以满足当前数据库管理员的要求,当然,此工具

温馨提示

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

评论

0/150

提交评论