毕业论文---oracle数据库巡检报告自动生成工具

题 目:oracle 数据库巡检报告自动生成工具

目 录

摘 要: ........................................................................................................................................................................ 1 ABSTRACT : . ............................................................................................................................................................ 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 J AVA 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 J AVA 进行中英替换 ......................................................................................................................................... 14 4.3 页面最终效果 . ................................................................................................................................................ 14 第五章 测试与总结................................................................................................................................................... 19 5.1 测试内容 . ........................................................................................................................................................ 19 5.2 测试中出现的问题 . ........................................................................................................................................ 19 5.3 总结 . ................................................................................................................................................................ 21 结束语 ........................................................................................................................................................................ 22 参考文献 .................................................................................................................................................................... 23 指导教师评语 ............................................................................................................................................................ 24 评阅人评语 ................................................................................................................................................................ 25

Oracle 数据库巡检报告自动生成工具

摘 要:20世纪末,随着计算机科学的发展,数据库技术在Internet 中的应用越来越广泛,越来越多的企业都有属于自己的数据库,对数据库的维护工作也就越发重要起来。数据库种类繁多,几大巨头公司相继推出自己的数据库产品,其中甲骨文的oracle 数据库更是越来越受到各大企业的喜欢。

本文研究了一种可以自动生成oracle 数据库巡检报告的工具,这一工具解决了耗费大量数据库管理员时间的问题,应用这一特性,可以快速的生成一个基于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 development 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 their own database products, including Oracle's 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 quickly 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.

Keywords: HTML format; Inspection Report ; Automatically Generate; Oracle

绪 论

随着企业信息化建设不断发展和壮大,业务支撑系统的数据成为企业的决策分析,指导企业发展的核心命脉。数据所依赖的数据库系统的选择和适用也变得尤为重要。传统关系数据库的技术发展至今,已日趋成熟,关系数据库的竞争也不仅仅是单纯的技术竞争,早已扩展到了商业智能、一体化解决方案和服务等更广阔的层面【1】。

无论企业里选择和适用的是哪种数据库产品,确保其健康、高可用运行,是企业正常运营的基础保证,因此定期的数据库健康检查,找出业务支撑系统中可能存在的隐患,保证数据的安全非常重要【2】。

目前保证数据安全的方法就是定期的对数据库进行健康检查,并对查询出的信息进行分析,掌握数据库的健康状况。

在健康检查的过程中,数据库管理员会有相关的脚本,执行即可,相应的会生成一个TXT 格式的文档。通过对收集的信息的分析,判断数据库的健康状况。听起来也并没有多少的工作量,但是上面的并不是全部的工作,最繁琐的是要把每一部分的信息手工的粘贴到正式的文档中,最终交给客户。如果只是几套数据库也还好,但有的客户会有几十套的库,管理员做这一系列的工作就需要花费大量的时间。一个可以自动生成报告的工具就显得既方便又省时了。

第一章 工具开发分析

1.1 需求分析

事务处理是计算机应用的主要领域。各种信息系统,如管理信息系统(MIS)、决策支持系统(DSS)、办公室自动化系统(OAS)以及计算机集成生产系统等的发展,使数据库成为数据的核心存储形式。数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命【3】。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。

Oracle 数据库巡检报告是数据库管理员对数据库所有健康状况的反应,这些信息的收集是对数据库性能判断的第一步。数据库管理员通过对信息的分析,对发现的报错或者警告进行处理,以避免如数据库当机等一些灾难的发生。 1.2 工具的性能分析

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

客户端:

操作系统:Windows 98/NT/2000/XP或更高版本,有Java 环境;

浏览器:IE 6.0以上或Netscape 同等版本以上; 服务器:

操作系统:windows ,linux ,AIX 等; 数据库:oracle 。

第二章 使用技术的介绍

2.1 所用语言简介

2.1.1 Java简介

Java 是一个由Sun 公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW 浏览器,哪一种计算机,哪一种操作系统,只要WWW 浏览器上面注明了“支持Java”,你就可以看到生动的主页。Java 正在逐步成为Internet 应用的主要开发语言【4】。它彻底改变了应用软件的开发模式,带来了自PC 机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。

2.1.2 HTML简介

HTML (Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。用HTML 编写的超文本文档称为HTML 文档,它能独立于各种操作系统平台(如UNIX ,WINDOWS 等)。HTML 文档(即Homepage 的源文件)是一个放置了标记的ASCII 文本文件,通常它带有.html 或.htm 的文件扩展名。

2.1.3 CSS简介

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

2.2 数据库简介

Oracle 数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用【5】。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle 作为其应用数据的处理系统。

2.3 Java SE介绍

Java SE 是Java 平台标准版的简称(Java Platform, 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 的。

第三章 总体设计分析

3.1工具所需代码设计

可以分解为如下几个部分:

1、从数据库中提取数据:这一部分主要是从目标数据库中提取分析时所需要的数据,包括用基本的SQL 语句提取的数据和对数据的一些解释,是整个文档中的最重要部分。

2、文档中的中英文替换:此时已经存在了一个文档,但是其中的一些解释信息却不能中文显示,所以需要Java 代码把文档中的英文替换成中文,达到最后的文档显示效果。

3.2工具的流程设计和功能模块

对于一份功能健全的巡检报告,你可以知道它的作者,巡检单位,和一些数据库的信息。如图3-1为本工具的功能模块图。

图3-1 功能模块图

本工具的目的是从oracle 数据库中提取信息,从而快速生成HTML 文档。流程大致如图3-2下所示:

图3-2工具流程图

用户在操作系统终端对数据库执行操作,然后会在当前路径生成一个HTML 格式的初始文档。在Java 环境下对初始文档进行替换工作,生成最终的可以交给用户的文档。

3.3 数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

3.3.1 数据库需求分析

1. 表空间的使用状况是整个巡检报告中比较重要的部分,记录数据库中各个表空间的剩余空间,把握它们的使用情况,避免没有使用空间的情况。针对本巡检报告的需求,得到表空间如下需求信息。

表空间,包括数据项:名称,类型,状态。

数据文件,包括数据项:ID ,存储路径,所属表空间,大小。 剩余可用空间,包括数据项:表空间,数据文件,可用字节数。

以上三者之间的关系如图3-3所示。

图3-3三者之间的关系图

2. 数据文件的自动扩展也是整个报告中比较关键的问题之一,如果数据文件可以自动扩展,即使出现表空间空闲使用率很低也不用担心,oracle 会自动增加它的容量。其中又包括存储正常数据的数据文件和存储临时数据的临时数据文件。针对本巡检报告的需求,得到数据文件自动扩展如下需求信息。

数据文件,包括数据项:ID ,存储路径,所属表空间,大小。

临时表空间数据文件,包括数据项:表空间,数据文件,可用字节数。

3.3.2 数据库逻辑结构设计

1. 在巡检报告中各个有关表空间使用情况的表的设计结果如下所示。

表3-1 dba_tablespaces

表3-2 dba_data_files

表3-3 dba_free_space

2. 在巡检报告中各个有关数据文件自动扩展情况表的设计结果如下所示。

表3-4 dba_data_files

表3-5 dba_temp_files

第四章 总体设计实现

4.1 生成初始文档

以上所有的代码存储在一个脚本rep.pdc 中,在服务器端的 sqlplus 下执行此脚本,过程如下

在当前目录下生成如下Liyw_Report_OracleSID+时间.HTML 文件

最初文档的效果

所用到的部分代码如下:

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", 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 * 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

select 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.2 Java进行中英替换

由上面的最初文档页面效果可以看到,数据的旁边会有一串英文,这串英文实际是对这部分数据的标题。如果这样的显示效果应该只有设计者可以明白它的意思,所以需要把英文替换成中文,让所有看到文档的人都能够一目了然。

拷贝这个初始文档到本地计算机,设置好java_home环境变量,进入你R1.java 所在路径,对R1.java 进行编译,会在此目录下生成R1.class

4.3 页面最终效果

R1.class 和orac_b.txt应在同一目录下,执行如下命令

最终页面效果

使用到的代码如下:

import java.util.regex.*; import java.io.*;

import java.lang.String.*; import java.lang.Integer;

public class R1 {

String[][] chinese =new String[1000][2] ; String outfile; if (args.length

System.out.println("ERR:请输入转换文件的名字"); return;}

if (args.length

outfile="LYN_HELCH.HTML"; }else{

outfile=args[1]; }

chinese=readFileByLines("orac_b.txt");

System.out.println("参数文件长度为:"+chinese.length+"行"); writeFileByLines(args[0],outfile,chinese); System.out.println("完毕"); }

/*读配置参数文件*/

public static String[][] readFileByLines(String fileName){ String[][] chinese =new String[1000][2] ; File file = new File(fileName); BufferedReader reader = null; try {

reader = new BufferedReader(new FileReader(file)); String headString = 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); chinese[line][0]=headString; chinese[line][1]=tempString; line++; } }

reader.close();

} catch (IOException e) { e.printStackTrace(); } finally {

if (reader != null){

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; 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 (ary[j][0]== null ){break;} p =Pattern.compile(ary[j][0]); m = p.matcher(st); b=m.find(); if(b){

chenge=m.replaceAll(ary[j][1]); fw.write(chenge); fw.write("\r\n"); break; } }

if (!b){

fw.write(st); fw.write("\r\n"); } }

fw.close();

} catch (Exception e) {

e.printStackTrace(); }

finally { try {

fw.close();

} catch (Exception e) { e.printStackTrace(); } } } }

第五章 测试与总结

5.1 测试内容

主要包括一下几个方面: 1、操作系统平台测试。

Linux或者AIX 服务器,可以在服务器上执行信息采集脚本,将其生成的HTML 文档下载到本地,再对其进行编译,以免字符集不符出现乱码。

2、数据库版本测试。

对Oracle 9I、10g 、11g 等不同版本测试,确定其适用的版本。

3、速度测试。

记录开始执行到生成报告的整个过程中所用的时间,以评定其高效性。

5.2 测试中出现的问题

1、初始文档信息丢失问题

执行过程中没有任何报错,但是从生成的最初文档中可以看到数据库的部分信息丢失,显示效果如图5-1所示:

图5-1部分信息丢失问题

出现这个问题的原因主要是在数据库中提取信息时,执行脚本的用户没有足够的对数据库操作的权限,对执行脚本的用户授予SYSDBA 权限后显示效果如图5-2所示:

图5-2 解决信息丢失问题效果

2、乱码问题

可以在任何的操作系统中执行脚本生成初始的文档,但是运用Java 进行中英文替换时有可能因为字符集的问题出现乱码,显示效果如图5-3所示:

图5-3 乱码问题

如图可以可到,在对Java 代码编译过程中出现了乱码,无法生成相应的 .class文件,这主要是代码编写的字符集和操作系统中的编码不同,解决办法如下:

(1)把初始文档拷贝到windows 上,在windows 系统中对其进行编译。

(2)设置当前操作系统的字符集,如本测试系统是linux ,可以只对当前会话修改 export LANG="zh_CN.GB18030" ,设置后再进行编译,显示效果如图5-4所示:

图5-3 解决乱码问题显示效果

5.3 总结

通过对工具的开发,各个脚本的编写以及最后的测试,快速生成oracle 巡检报告这一工具已经可以满足当前数据库管理员的要求,当然,此工具仍然存在不完美之处,对数据库版本和操作系统的字符集仍有限定,这也是以后要进一步完善的主要目标。

结束语

经过两个多月的设计和开发,快速生成oracle 数据库巡检报告的工具基本开发完毕。在这期间,接触了Java 环境,一些代码的编写,以及oracle 数据库知识的深化。在学习相关的技术的同时,一边摸索,一边进行毕业设计的题目的制作。在6月初,已经初步完成了预先所设计的效果。

该工具具备了较好的操作系统平台的通用性,易于使用,而且经过测试,确实可以达到快速高效的设计初衷。该工具的功能还有一些不完美的部分有待改善,如数据库版本上的限定,字符集的匹配要求。一方面时间紧迫;另一方面是对于Java 和操作系统以及oracle 数据库相关知识的掌握仍有待加强。在此我要非常感谢我的指导教师:张秀萍教授。感谢她在整个毕业设计过程中给予的无私帮助以及提出的很多批改意见,教会我很多的知识,也让我收获了很多宝贵的经验,同时也感谢所有在这个过程中帮助我的老师和同学,为我提供了很多有价值的参考意见和相关的技术资料。

参考文献

[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 语句优化[J].电脑编程技巧与维护,2010年22期.

[6]苏进胜. 初学Java 的环境变量. 福建电脑,2010-02-25.

[7]张建东.Java 程序设计教学探讨. 科技信息,2009-08-25.

[8]马岩. 用Java 实现教学网站的设计. 吉林广播电视大学学报,2009-11-15.

[9]赛奎春.JAVA 工程应用与项目实践[M]. 机械工业出版社, 2004:300-460.

[10]FLANAGAN.JAVA技术手册[M]. 中国电力出版社,2007:200-320.

[11]Timothy Budd. An Introduction to Object-Oriented Programming[M]. Addison - Wesley,2006:98-380.

指导教师评语

评阅人评语

题 目:oracle 数据库巡检报告自动生成工具

目 录

摘 要: ........................................................................................................................................................................ 1 ABSTRACT : . ............................................................................................................................................................ 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 J AVA 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 J AVA 进行中英替换 ......................................................................................................................................... 14 4.3 页面最终效果 . ................................................................................................................................................ 14 第五章 测试与总结................................................................................................................................................... 19 5.1 测试内容 . ........................................................................................................................................................ 19 5.2 测试中出现的问题 . ........................................................................................................................................ 19 5.3 总结 . ................................................................................................................................................................ 21 结束语 ........................................................................................................................................................................ 22 参考文献 .................................................................................................................................................................... 23 指导教师评语 ............................................................................................................................................................ 24 评阅人评语 ................................................................................................................................................................ 25

Oracle 数据库巡检报告自动生成工具

摘 要:20世纪末,随着计算机科学的发展,数据库技术在Internet 中的应用越来越广泛,越来越多的企业都有属于自己的数据库,对数据库的维护工作也就越发重要起来。数据库种类繁多,几大巨头公司相继推出自己的数据库产品,其中甲骨文的oracle 数据库更是越来越受到各大企业的喜欢。

本文研究了一种可以自动生成oracle 数据库巡检报告的工具,这一工具解决了耗费大量数据库管理员时间的问题,应用这一特性,可以快速的生成一个基于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 development 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 their own database products, including Oracle's 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 quickly 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.

Keywords: HTML format; Inspection Report ; Automatically Generate; Oracle

绪 论

随着企业信息化建设不断发展和壮大,业务支撑系统的数据成为企业的决策分析,指导企业发展的核心命脉。数据所依赖的数据库系统的选择和适用也变得尤为重要。传统关系数据库的技术发展至今,已日趋成熟,关系数据库的竞争也不仅仅是单纯的技术竞争,早已扩展到了商业智能、一体化解决方案和服务等更广阔的层面【1】。

无论企业里选择和适用的是哪种数据库产品,确保其健康、高可用运行,是企业正常运营的基础保证,因此定期的数据库健康检查,找出业务支撑系统中可能存在的隐患,保证数据的安全非常重要【2】。

目前保证数据安全的方法就是定期的对数据库进行健康检查,并对查询出的信息进行分析,掌握数据库的健康状况。

在健康检查的过程中,数据库管理员会有相关的脚本,执行即可,相应的会生成一个TXT 格式的文档。通过对收集的信息的分析,判断数据库的健康状况。听起来也并没有多少的工作量,但是上面的并不是全部的工作,最繁琐的是要把每一部分的信息手工的粘贴到正式的文档中,最终交给客户。如果只是几套数据库也还好,但有的客户会有几十套的库,管理员做这一系列的工作就需要花费大量的时间。一个可以自动生成报告的工具就显得既方便又省时了。

第一章 工具开发分析

1.1 需求分析

事务处理是计算机应用的主要领域。各种信息系统,如管理信息系统(MIS)、决策支持系统(DSS)、办公室自动化系统(OAS)以及计算机集成生产系统等的发展,使数据库成为数据的核心存储形式。数据库技术从诞生到现在,在不到半个世纪的时间里,形成了坚实的理论基础、成熟的商业产品和广泛的应用领域,吸引越来越多的研究者加入。数据库的诞生和发展给计算机信息管理带来了一场巨大的革命【3】。三十多年来,国内外已经开发建设了成千上万个数据库,它已成为企业、部门乃至个人日常工作、生产和生活的基础设施。同时,随着应用的扩展与深入,数据库的数量和规模越来越大,数据库的研究领域也已经大大地拓广和深化了。

Oracle 数据库巡检报告是数据库管理员对数据库所有健康状况的反应,这些信息的收集是对数据库性能判断的第一步。数据库管理员通过对信息的分析,对发现的报错或者警告进行处理,以避免如数据库当机等一些灾难的发生。 1.2 工具的性能分析

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

客户端:

操作系统:Windows 98/NT/2000/XP或更高版本,有Java 环境;

浏览器:IE 6.0以上或Netscape 同等版本以上; 服务器:

操作系统:windows ,linux ,AIX 等; 数据库:oracle 。

第二章 使用技术的介绍

2.1 所用语言简介

2.1.1 Java简介

Java 是一个由Sun 公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW 浏览器,哪一种计算机,哪一种操作系统,只要WWW 浏览器上面注明了“支持Java”,你就可以看到生动的主页。Java 正在逐步成为Internet 应用的主要开发语言【4】。它彻底改变了应用软件的开发模式,带来了自PC 机以来又一次技术革命,为迅速发展的信息世界增添了新的活力。

2.1.2 HTML简介

HTML (Hyper Text Markup Language 超文本标记语言)是一种用来制作超文本文档的简单标记语言。用HTML 编写的超文本文档称为HTML 文档,它能独立于各种操作系统平台(如UNIX ,WINDOWS 等)。HTML 文档(即Homepage 的源文件)是一个放置了标记的ASCII 文本文件,通常它带有.html 或.htm 的文件扩展名。

2.1.3 CSS简介

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

2.2 数据库简介

Oracle 数据库管理系统是一个以关系型和面向对象为中心管理数据的数据库管理软件系统,其在管理信息系统、企业数据处理、因特网及电子商务等领域有着非常广泛的应用【5】。因其在数据安全性与数据完整性控制方面的优越性能,以及跨操作系统、跨硬件平台的数据互操作能力,使得越来越多的用户将Oracle 作为其应用数据的处理系统。

2.3 Java SE介绍

Java SE 是Java 平台标准版的简称(Java Platform, 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 的。

第三章 总体设计分析

3.1工具所需代码设计

可以分解为如下几个部分:

1、从数据库中提取数据:这一部分主要是从目标数据库中提取分析时所需要的数据,包括用基本的SQL 语句提取的数据和对数据的一些解释,是整个文档中的最重要部分。

2、文档中的中英文替换:此时已经存在了一个文档,但是其中的一些解释信息却不能中文显示,所以需要Java 代码把文档中的英文替换成中文,达到最后的文档显示效果。

3.2工具的流程设计和功能模块

对于一份功能健全的巡检报告,你可以知道它的作者,巡检单位,和一些数据库的信息。如图3-1为本工具的功能模块图。

图3-1 功能模块图

本工具的目的是从oracle 数据库中提取信息,从而快速生成HTML 文档。流程大致如图3-2下所示:

图3-2工具流程图

用户在操作系统终端对数据库执行操作,然后会在当前路径生成一个HTML 格式的初始文档。在Java 环境下对初始文档进行替换工作,生成最终的可以交给用户的文档。

3.3 数据库设计

数据库在一个信息管理系统中占有非常重要的地位,数据库结构设计的好坏将直接对应用系统的效率,以及实现的效果产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致。

3.3.1 数据库需求分析

1. 表空间的使用状况是整个巡检报告中比较重要的部分,记录数据库中各个表空间的剩余空间,把握它们的使用情况,避免没有使用空间的情况。针对本巡检报告的需求,得到表空间如下需求信息。

表空间,包括数据项:名称,类型,状态。

数据文件,包括数据项:ID ,存储路径,所属表空间,大小。 剩余可用空间,包括数据项:表空间,数据文件,可用字节数。

以上三者之间的关系如图3-3所示。

图3-3三者之间的关系图

2. 数据文件的自动扩展也是整个报告中比较关键的问题之一,如果数据文件可以自动扩展,即使出现表空间空闲使用率很低也不用担心,oracle 会自动增加它的容量。其中又包括存储正常数据的数据文件和存储临时数据的临时数据文件。针对本巡检报告的需求,得到数据文件自动扩展如下需求信息。

数据文件,包括数据项:ID ,存储路径,所属表空间,大小。

临时表空间数据文件,包括数据项:表空间,数据文件,可用字节数。

3.3.2 数据库逻辑结构设计

1. 在巡检报告中各个有关表空间使用情况的表的设计结果如下所示。

表3-1 dba_tablespaces

表3-2 dba_data_files

表3-3 dba_free_space

2. 在巡检报告中各个有关数据文件自动扩展情况表的设计结果如下所示。

表3-4 dba_data_files

表3-5 dba_temp_files

第四章 总体设计实现

4.1 生成初始文档

以上所有的代码存储在一个脚本rep.pdc 中,在服务器端的 sqlplus 下执行此脚本,过程如下

在当前目录下生成如下Liyw_Report_OracleSID+时间.HTML 文件

最初文档的效果

所用到的部分代码如下:

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", 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 * 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

select 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.2 Java进行中英替换

由上面的最初文档页面效果可以看到,数据的旁边会有一串英文,这串英文实际是对这部分数据的标题。如果这样的显示效果应该只有设计者可以明白它的意思,所以需要把英文替换成中文,让所有看到文档的人都能够一目了然。

拷贝这个初始文档到本地计算机,设置好java_home环境变量,进入你R1.java 所在路径,对R1.java 进行编译,会在此目录下生成R1.class

4.3 页面最终效果

R1.class 和orac_b.txt应在同一目录下,执行如下命令

最终页面效果

使用到的代码如下:

import java.util.regex.*; import java.io.*;

import java.lang.String.*; import java.lang.Integer;

public class R1 {

String[][] chinese =new String[1000][2] ; String outfile; if (args.length

System.out.println("ERR:请输入转换文件的名字"); return;}

if (args.length

outfile="LYN_HELCH.HTML"; }else{

outfile=args[1]; }

chinese=readFileByLines("orac_b.txt");

System.out.println("参数文件长度为:"+chinese.length+"行"); writeFileByLines(args[0],outfile,chinese); System.out.println("完毕"); }

/*读配置参数文件*/

public static String[][] readFileByLines(String fileName){ String[][] chinese =new String[1000][2] ; File file = new File(fileName); BufferedReader reader = null; try {

reader = new BufferedReader(new FileReader(file)); String headString = 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); chinese[line][0]=headString; chinese[line][1]=tempString; line++; } }

reader.close();

} catch (IOException e) { e.printStackTrace(); } finally {

if (reader != null){

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; 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 (ary[j][0]== null ){break;} p =Pattern.compile(ary[j][0]); m = p.matcher(st); b=m.find(); if(b){

chenge=m.replaceAll(ary[j][1]); fw.write(chenge); fw.write("\r\n"); break; } }

if (!b){

fw.write(st); fw.write("\r\n"); } }

fw.close();

} catch (Exception e) {

e.printStackTrace(); }

finally { try {

fw.close();

} catch (Exception e) { e.printStackTrace(); } } } }

第五章 测试与总结

5.1 测试内容

主要包括一下几个方面: 1、操作系统平台测试。

Linux或者AIX 服务器,可以在服务器上执行信息采集脚本,将其生成的HTML 文档下载到本地,再对其进行编译,以免字符集不符出现乱码。

2、数据库版本测试。

对Oracle 9I、10g 、11g 等不同版本测试,确定其适用的版本。

3、速度测试。

记录开始执行到生成报告的整个过程中所用的时间,以评定其高效性。

5.2 测试中出现的问题

1、初始文档信息丢失问题

执行过程中没有任何报错,但是从生成的最初文档中可以看到数据库的部分信息丢失,显示效果如图5-1所示:

图5-1部分信息丢失问题

出现这个问题的原因主要是在数据库中提取信息时,执行脚本的用户没有足够的对数据库操作的权限,对执行脚本的用户授予SYSDBA 权限后显示效果如图5-2所示:

图5-2 解决信息丢失问题效果

2、乱码问题

可以在任何的操作系统中执行脚本生成初始的文档,但是运用Java 进行中英文替换时有可能因为字符集的问题出现乱码,显示效果如图5-3所示:

图5-3 乱码问题

如图可以可到,在对Java 代码编译过程中出现了乱码,无法生成相应的 .class文件,这主要是代码编写的字符集和操作系统中的编码不同,解决办法如下:

(1)把初始文档拷贝到windows 上,在windows 系统中对其进行编译。

(2)设置当前操作系统的字符集,如本测试系统是linux ,可以只对当前会话修改 export LANG="zh_CN.GB18030" ,设置后再进行编译,显示效果如图5-4所示:

图5-3 解决乱码问题显示效果

5.3 总结

通过对工具的开发,各个脚本的编写以及最后的测试,快速生成oracle 巡检报告这一工具已经可以满足当前数据库管理员的要求,当然,此工具仍然存在不完美之处,对数据库版本和操作系统的字符集仍有限定,这也是以后要进一步完善的主要目标。

结束语

经过两个多月的设计和开发,快速生成oracle 数据库巡检报告的工具基本开发完毕。在这期间,接触了Java 环境,一些代码的编写,以及oracle 数据库知识的深化。在学习相关的技术的同时,一边摸索,一边进行毕业设计的题目的制作。在6月初,已经初步完成了预先所设计的效果。

该工具具备了较好的操作系统平台的通用性,易于使用,而且经过测试,确实可以达到快速高效的设计初衷。该工具的功能还有一些不完美的部分有待改善,如数据库版本上的限定,字符集的匹配要求。一方面时间紧迫;另一方面是对于Java 和操作系统以及oracle 数据库相关知识的掌握仍有待加强。在此我要非常感谢我的指导教师:张秀萍教授。感谢她在整个毕业设计过程中给予的无私帮助以及提出的很多批改意见,教会我很多的知识,也让我收获了很多宝贵的经验,同时也感谢所有在这个过程中帮助我的老师和同学,为我提供了很多有价值的参考意见和相关的技术资料。

参考文献

[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 语句优化[J].电脑编程技巧与维护,2010年22期.

[6]苏进胜. 初学Java 的环境变量. 福建电脑,2010-02-25.

[7]张建东.Java 程序设计教学探讨. 科技信息,2009-08-25.

[8]马岩. 用Java 实现教学网站的设计. 吉林广播电视大学学报,2009-11-15.

[9]赛奎春.JAVA 工程应用与项目实践[M]. 机械工业出版社, 2004:300-460.

[10]FLANAGAN.JAVA技术手册[M]. 中国电力出版社,2007:200-320.

[11]Timothy Budd. An Introduction to Object-Oriented Programming[M]. Addison - Wesley,2006:98-380.

指导教师评语

评阅人评语


相关内容

  • oracle数据库巡检报告模板
  • 系统oracle 数据库 巡检报告 文档控制 修改记录 审阅 分发 目 录 文档控制 ........................................................................................................... ...

  • 系统运维实施方案
  • 系统运维方案 一.企业面临的问题 1.缺乏集中的监控管理平台,运维管理人员无法主动掌握it 平台的运行情况,对主机 系统.网络系统.数据库.应用系统等没有合适的手段进行监控,无法做到快速的主动预警. 快速的故障定位和故障排除. 2.被动的运维管理模式导致运维人员对故障后知后觉,重复 劳动多,工作强度 ...

  • 中电投江苏公司机房维保项目规范标准
  • 协鑫(集团)控股有限公司机房设备系统 协鑫(集团)控股有限公司维保项目 招 标 文 件 目 录 一.维保范围及工作内容 . ........................................................................................ ...

  • 集成系统运维投标文件(含运维方案)
  • 目录 一.法定代表人授权书 ............................................................................................................ 2 二.法定代表人或其授权代表身份证复印件 ..... ...

  • 南昌大学毕业设计开题报告
  • 南昌大学 毕业设计(论文)开题报告 题目:研究生学籍管理信息系统设计与实现 学 专 班 学 姓级:号:名:2001级四班01081510 20050315一.选题的依据及意义: 选题的依据:随着信息科技的高速发展,当今社会步入了数字化生存的时代,各种信息和数据越来越膨胀,潜移默化地影响我们的生活.目 ...

  • OracleDBA日常工作手册
  • Oracle DBA日常工作手册 概述 .................................................................................................................................. ...

  • IDC运维方案
  • IDC运维 目 录 1信息系统运维服务内容 ....................................................................................................................... 3 1.1服务目 ...

  • 管理信息系统在电力调度生产中的应用
  • 摘 要 供电系统的电力调度生产管理是一项复杂的系统工程.为了做好这些组织和管理工作,非常有必要采用现代化的管理手段和科学的管理方法.于是电力调度管理信息系统应运而生,电力调度管理信息系统在电力企业的生产管理中发挥着举足轻重的作用.随着我国电力体制改革的不断深入和电力市场发展的不断完善,建立适应市场需 ...

  • 本科毕业论文范本
  • 论文分类号:TP306 密 级:无 软件的测试流程及案例分析 学 院.专业: 计算机学院 信息管理与信息系统专业 学 生 姓 名: 范迎迎 (1012304) 年 级 班: 2010级 3 班 指 导 教 师: 董延华 (教授 ) 2014 年 4 月 11 日 摘 要 现如今软件行业日趋成熟,软件 ...