Oracle 一键巡检自动生成 Word 报告

前言

Oracle 数据库巡检通常需要消耗大量时间和精力,包括收集数据库以及主机的相关信息。针对 Word 报告的样式调整,也是重复和费事的,所以我针对 Oracle 巡检所需检查的信息以及报告模板,写了一套自动巡检并且生成报告的脚本。巡检人员只需要执行脚本,脚本会自动生成一个完整的 Word 报告(样式格式都无需调整),只需要检查报告中是否存在问题即可。

本文演示一套 19C RAC 的集群数据库自动巡检。

介绍

Oracle 一键巡检脚本可将巡检结果一键生成为 Word 报告!本脚本通过 python 将巡检结果生成为 Word 报告,分为两部分:

  • 第一部分通过 shell 和 sql 脚本生成巡检压缩包
  • 第二部分通过 python 解析巡检压缩包生成 Word 巡检报告

Word 报告内容主要包括:主机巡检,数据库巡检,DataGuard 同步检查,Rman 备份检查, rac 集群检查,数据库性能分析(awr 内部 sql 获取),抓取 alert日志,抓取 awr 报告等,内容极其丰富。如果是 rac,会抓取所有节点报告。

  • 报告可选:周/月/季三种类型,生成的 Word 可直接交付客户
  • 支持所有操作系统,所有版本
  • 支持Oracle 10/11/12/18/19/21 等版本
  • 支持 non-cdb/cdb 架构
  • 如果一台主机有多个实例,支持一键巡检多个实例,生成一个巡检文件,方便快捷
  • 支持一键生成多个数据库 Word 报告
  • Word 报告生成支持自定义客户名称,巡检公司名称,巡检人员名称,巡检公司 LOGO等,直接解放双手
  • Word 报告生成后根据数据库巡检结果,在 Word 中直接提供巡检建议,全程智能巡检
  • 数据库主机无需安装任何第三方软件,只需要上传巡检脚本,一键执行生成巡检文件即可
  • 脚本持续更新

咨询巡检脚本可扫码进微信群或者添加作者微信 Lucifer-0622

Oracle 数据库主机只需需要上传对应 DB 的巡检脚本:

[oracle@rac01:/home/oracle/check]$ ll
-rw-r--r-- 1 root root 202369 Mar 15 09:12 dbcheck10g.sql
-rw-r--r-- 1 root root 206342 Mar 15 09:12 dbcheck11g.sql
-rw-r--r-- 1 root root 207786 Mar 15 09:12 dbcheck12c.sql
-rw-r--r-- 1 root root  24819 Mar 15 09:13 oscheck.sh

oscheck.sh 是用来巡检主机相关信息以及配置检查。
dbcheck*.sql 是用来巡检数据库相关信息,12c 包括 12c 以后的版本。

演示

Oracle 数据库巡检

Oracle 数据库其中一个节点上传巡检脚本(本文选择节点一):

[root@rac01:/root]$ chown -R oracle:oinstall /home/oracle/check/
[oracle@rac01:/home/oracle/check]$ chmod +x oscheck.sh 
[oracle@rac01:/home/oracle/check]$ ll
total 232
-rw-r--r-- 1 oracle oinstall 207786 Mar 15 09:12 dbcheck12c.sql
-rwxr-xr-x 1 oracle oinstall  24819 Mar 15 09:13 oscheck.sh

执行脚本一键巡检 Oracle 数据库:

## 如果一台主机上有多个实例,可以通过参数 -o 来指定,例如:
sh oscheck.sh -o orcl,lucifer,test
## 确保 ORACLE_SID 正确后,执行脚本
[oracle@rac01:/home/oracle/check]$ sh oscheck.sh#==============================================================#                                                                                  
Oracle数据库主机检查                                                                                  
#==============================================================#                                                                                  收集主机 OS 层信息 ...                                                                                  
收集数据库补丁信息 ...                                                                                  
收集数据库监听信息 ...                                                                                  #==============================================================#                                                                                  
检查数据库实例:luciferdg1                                                                                  
#==============================================================#                                                                                  收集数据库ALERT日志 ...                                                                                  
收集数据库AWR报告 ...                                                                                  Note1: Information about InstanceINST_ID       DBID NAME       DATABASE_ROLE        CREATED              LOG_MODE      OPEN_MODE            VERSION    SESSIONID
---------- ---------- ---------- -------------------- -------------------- ------------- -------------------- ---------- --------------------1 4019382963 LUCIFER    PRIMARY              2024-03-13 10:21:39  ARCHIVELOG    READ WRITE           19.0.0.0.0 392,13105,301822 4019382963 LUCIFER    PRIMARY              2024-03-13 10:21:39  ARCHIVELOG    READ WRITE           19.0.0.0.0 392,13105,30182Note2: Information abount Recyclebin+------------------------------------------------------------------------------------------------------------+
|                                    Oracle Database health Check script                                     |
|------------------------------------------------------------------------------------------------------------+
|                              Copyright (c) 2022-2100 lpc. All rights reserved.                             |
+------------------------------------------------------------------------------------------------------------+DBHealthCheck  Author: Lucifer+----------------------------------------------------------------------------+
Now DBCheck staring, the time cost depending on size of database.
Begining ......500
+----------------------------------------------------------------------------+-----Oracle Database  Check STRAT, Starting Collect Data Dictionary Information----
start...Set Environment Variables, Configure html headers.....
start collect...Database Informaion...
start collect......Overview of Instance Informaion...
start collect......Overview of Database Informaion...
start collect......Database Version Informaion...
start collect......Database Component and Patch Informaion...
start collect......Database Parameter Informaion...
start collect......Database Resource Informaion...
start collect......Database ControlFile Informaion...
start collect......Database LogFile Informaion...
start collect......Archive Log Size in last 10 Days...
start collect......Invalid Object Informaion...
start collect......Tablespace Usage Informaion...
start collect......Top10 Index Informaion...
start collect......Range Partition Extend Check Informaion...
start collect......Object in System TableSpace Informaion...
start collect......BitCoin Attack Check...
start collect......SYSAUX Objects Informaion...
start collect......Flashback Database Parameters...
start...OverView Database User Information...
start collect......System Manager Role Informaion...
start collect......Schema Informaion...
start collect......Profile Informaion...
start collect......Directory Informaion...
start collect......Job Informaion...
start collect......Database Link Informaion...
start collect......Autotask Informaion...
start...OverView Database of Backup and Recover Information...
start collect......Dataguard Parameter...
start collect......Dataguard Applied Status...
start collect......Dataguard Status...
start collect......RMAN Backup Info...
start collect......Orphaned DataPump Jobs...
start collect......Instacne Alert Log...
start...OverView Database of ASM Information...
start collect......ASM Instance Informaion...
start collect......ASM Diskgroup Attribute...
start collect......ASM Disk Group...
start...OverView Database Performace Information...
start collect......AWR Configure Informaion...
start collect......Awrrpt Snap Informaion...
start collect......Awrrpt Load Profile Informaion...
start collect......Instance Efficiency Percentages...
start collect......TOP 10 Wait Event...
start collect......System Time Model...
start collect......TOP 10 SQL Order by Elapsed Time...
start collect......Awrcrt Informaion...
Database script execution ends....压缩包位置: /home/oracle/check/dbcheck_rac01_20240315.tar.gz  

执行完之后会在当前目录生成一个 tar 压缩包:

[oracle@rac01:/home/oracle/check]$ ll
total 640
-rw-r--r-- 1 oracle oinstall 207786 Mar 15 09:12 dbcheck12c.sql
drwxr-xr-x 2 oracle oinstall    227 Mar 15 09:28 dbcheck_rac01_20240315
-rw-r--r-- 1 oracle oinstall 417254 Mar 15 09:28 dbcheck_rac01_20240315.tar.gz
-rwxr-xr-x 1 oracle oinstall  24819 Mar 15 09:13 oscheck.sh

这个就是脚本获取到的所有信息集合,包含以下内容:

[oracle@rac01:/home/oracle/check]$ cd dbcheck_rac01_20240315/
[oracle@rac01:/home/oracle/check/dbcheck_rac01_20240315]$ ll
## 节点1的 alert 日志
-rw-r--r-- 1 oracle oinstall   54530 Mar 15 09:27 alert_luciferdg1.log
## 节点2的 alert 日志
-rw-r--r-- 1 oracle oinstall 3785318 Mar 15 09:27 alert_luciferdg2.log
## 节点1的 awrrpt 报告
-rw-r--r-- 1 oracle oinstall 1506483 Mar 15 09:27 awrrpt_luciferdg1_13_46.html
## 节点2的 awrrpt 报告
-rw-r--r-- 1 oracle oinstall 1455454 Mar 15 09:27 awrrpt_luciferdg2_13_46.html
## Oracle Database 巡检报告 html 格式
-rw-r--r-- 1 oracle oinstall  121960 Mar 15 09:28 dbcheck_4019382963_LUCIFER_19.0.0.0.0_20240315.html
## Oracle 主机巡检报告 txt 格式
-rw-r--r-- 1 oracle oinstall   12823 Mar 15 09:27 oscheck_rac01_20240315.txt

接下来就是将 tar 文件获取到本地,进行 word 报告一键生成程序即可。

生成 Word 报告

放入巡检文件

通过 sftp 等工具获取到 tar 报告,放到 checkfiles 目录下:

╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck/checkfiles ‹main●›
╰─$ ll
total 816
-rw-r--r--  1 lucifer  staff   407K  3 15 09:38 dbcheck_rac01_20240315.tar.gz
-rw-r--r--@ 1 lucifer  staff     0B  1 22 10:19 请将巡检文件移动到此目录下.txt

配置 Python 环境

前置工作(必须满足):

  • 建议下载安装 Python 3 最新版本,并且配置好 Python 环境
  • 下载安装 chrome 浏览器以及 chromedriver
  • 需要安装以下 Python 模块,在根目录下执行:pip install -r requirements.txt 即可

Word 报告一键生成程序是通过 Python 来写的,完整程序目录如下:

╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck ‹main●›
╰─$ tree -N
.
├── README.md
├── checkfiles
│   └── 请将巡检文件移动到此目录下.txt
├── example
│   └── example.md
├── reports
│   └── word 巡检报告将在此目录下生成.txt
├── requirements.txt
├── resources
│   ├── chromedriver
│   ├── config.ini
│   ├── images
│   │   └── Oracle.png
│   ├── js
│   │   └── crt21.js
│   └── templates
│       ├── Oracle数据库巡检报告模板_周.docx
│       ├── Oracle数据库巡检报告模板_季.docx
│       └── Oracle数据库巡检报告模板_月.docx
├── scripts
│   ├── db
│   │   ├── dbcheck10g.sql
│   │   ├── dbcheck11g.sql
│   │   └── dbcheck12c.sql
│   └── os
│       └── oscheck.sh
└── src├── awrcrt.py├── create_config.py├── create_desc.py├── create_report.py├── main.py└── parse_file.py

运行 Python 脚本需要安装 Python 运行环境,去官方下载最新的安装包即可:Download Python,注意:在安装 Python 时勾选 “Add Python to PATH” 复选框,安装程序会自动添加环境变量,否则需要手动配置

安装好 Python 之后,运行命令安装依赖包:

## 命令行窗口进入到 requirements.txt 所在目录运行
╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck ‹main●›
╰─$ pip install -r requirements.txt

等待安装完成即可。

接下来还需要下载 chromedriver 以及 Google Chrome 浏览器: Chrome for Testing availability

image.png

下载稳定版本后进行安装即可,chromedriver 下载解压后放到 resources 目录下(Windows的是有后缀的):

╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck/resources ‹main●›
╰─$ ll
-rwxr-xr-x@ 1 lucifer  staff    15M  3 12 07:17 chromedriver
-rw-r--r--@ 1 lucifer  staff   2.0K  2 29 14:00 config.ini
drwxr-xr-x@ 4 lucifer  staff   128B  1 22 12:28 images
drwxr-xr-x@ 3 lucifer  staff    96B  1 22 10:19 js
drwxr-xr-x@ 5 lucifer  staff   160B  1 22 10:19 templates

至此,脚本所需 Python 环境就配置好了。

生成 Word 报告

进入到 main.py 所在的目录 src:

╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck/src ‹main●›
╰─$ ll
-rw-r--r--@ 1 lucifer  staff   3.2K  1 22 10:19 awrcrt.py
-rw-r--r--@ 1 lucifer  staff   3.0K  1 22 10:19 create_config.py
-rw-r--r--@ 1 lucifer  staff    14K  1 22 10:19 create_desc.py
-rw-r--r--@ 1 lucifer  staff   5.1K  1 22 10:19 create_report.py
-rwxr-xr-x@ 1 lucifer  staff   8.2K  1 22 10:19 main.py
-rw-r--r--@ 1 lucifer  staff   5.3K  1 22 10:19 parse_file.py

运行脚本调用图形化程序:

╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck/src ‹main●›
╰─$ python main.py

运行完之后会弹出一个图形化报告生成工具:

工具页面包含可编辑选项:

  • 客户公司名称
  • 服务公司名称
  • 巡检人员
  • 服务公司 logo
  • 巡检类型:根据不同巡检类型生成不同的报告内容
  • Word 报告保存位置(默认建议不改动)

根据自己实际情况填写后,本文按照默认配置选择季度巡检,点击 生成报告 即可,查看运行过程:

解压 /Volumes/DBA/Github/OracleHealthCheck/checkfiles/dbcheck_rac01_20240315.tar.gz 到临时目录
复制 crt21.js 到临时目录 $_tmp
启动谷歌游览器并设置宽度
访问 html 文件 file:///Volumes/DBA/Github/OracleHealthCheck/src/$_tmp/dbcheck_4019382963_LUCIFER_19.0.0.0.0_20240315.html
正在截取 awrcrt 性能分析图,请稍等...
截图已完成
关闭游览器
保存到 /Volumes/DBA/Github/OracleHealthCheck/reports/Lucifer 有限公司-Oracle数据库4019382963_LUCIFER巡检报告_20240315.docx
删除图片临时目录
删除临时目录
执行完成!

运行完成后在 reports 目录下已自动生成 Word 报告:

╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck/reports ‹main●›
╰─$ ll
total 1192
-rw-r--r--@ 1 lucifer  staff   594K  3 15 09:59 Lucifer 有限公司-Oracle数据库4019382963_LUCIFER巡检报告_20240315.docx
-rw-r--r--@ 1 lucifer  staff     0B  1 22 10:19 word 巡检报告将在此目录下生成.txt

至此,Word 报告已经生成完成。

Word 报告演示

Word 报告可以查看:Lucifer 有限公司-Oracle数据库4019382963_LUCIFER巡检报告_20240315.pdf

注意:脚本默认读取 checkfiles 下的所有 dbcheck 开头的 html 和 tar.gz 文件,并根据一个数据库一个 word 报告的方式批量生成报告。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/748351.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux动态库*.so函数名修改

在某些学习或者特殊需求的情况下要对linux下动态库*.so文件内部的函数名进行修改。 比如一个函数ADD(int a,int b);修改为Add(int a,int b); 通过这篇文章你将了解到在linux下动态库函数名寻址的规则,截止2024年3月linux动态库的寻址规则已经出现多种,这…

C++语法、Linux命令查询网站

文章目录 1.cplusplus2.cppreference3.Linux命令查询网站 1.cplusplus 网址:https://legacy.cplusplus.com/ 2.cppreference 1.cppreference中文网站:https://zh.cppreference.com/w/首页 2.cppreference英文原站:https://en.cppreference…

服务器生产环境问题解决思路

游戏服务器开发节奏比较快,版本迭代很频繁,有一些项目甚至出现了周更新(每周准时停服更新维护)。由于功能开发时间短,研发人员本身技术能力等原因,线上出现bug很常见。笔者经历过的游戏项目,一年到头没几次更新不出现bug的(当然,配置问题也算bug)。那当出现bug,我们…

C++ ezOptionParse的用法

在网上找了一下,发现并没有很多关于这个小型头文件的资料 只好自己上了 int main(int argc, const char * argv[]) {ezOptionParser opt;opt.overview "Demo of parsers features."; //概要说明,一般需要填写,简要介绍程序的作用opt.synta…

Java获取视频封面图,利用FFmpegFrameGrabber获取视频封面图

依赖 <dependency><groupId>org.bytedeco</groupId><artifactId>javacv-platform</artifactId><version>1.5.9</version></dependency>传入视频流获取图片byte /*** 获取视频截图** param frameNumber 视频的指定帧数* param …

关于Qt中的信号与槽

在Qt中&#xff0c;信号与槽是一种用于对象间通信的机制。信号是在特定事件发生时被发射的&#xff0c;而槽是在接收到信号时执行的函数。通过信号与槽&#xff0c;一个对象可以告诉其他对象某个事件已经发生&#xff0c;并提供有关该事件的信息。 以下是关于Qt中信号与槽的一…

Unity AI Navigation插件快速使用方法

AI Navigation插件使您能够创建能够在游戏世界中智能移动的角色。这些角色利用的是根据场景几何结构自动生成的导航网格。障碍物可以让您在运行时改变角色的导航路径。 演示使用的Unity版本为Tuanjie 1.0.0,团结引擎是Unity中国的引擎研发团队基于Unity 2022 LTS版本为中国开发…

C#,图论与图算法,双连通图(Biconnected Components of Graph)的算法与源代码

1 双连通图(Biconnected Components of Graph) 如果任意两个顶点之间有两条顶点不相交的路径,则无向图称为双连通图。在双连通图中,有一个通过任意两个顶点的简单循环。 按照约定,由边连接的两个节点构成双连通图,但这并不验证上述属性。对于具有两个以上顶点的图,必须…

Python Learn day05

Python Learn day05 本文主要讲解 继承、多态、定制类 继承和多态 什么是继承 当新类想要拥有现有类的功能结构&#xff0c;可以使用继承。继承的前提是新类 is a 现有类&#xff0c;即&#xff1a; 子类 is 父类 总是从某个类继承&#xff1a; class Myclass(object):pass…

Hello,Spider!入门第一个爬虫程序

在各大编程语言中&#xff0c;初学者要学会编写的第一个简单程序一般就是“Hello, World!”&#xff0c;即通过程序来在屏幕上输出一行“Hello, World!”这样的文字&#xff0c;在Python中&#xff0c;只需一行代码就可以做到。我们把这第一个爬虫就称之为“HelloSpider”&…

springcloud五大组件:Eureka:注册中心、Zuul:服务网关、Ribbon:负载均衡、Feign:服务调用、Hystix:熔断器

你提到的这些组件都是Spring Cloud生态系统中非常关键和常用的组件。但是&#xff0c;关于这些组件的命名&#xff0c;有一点需要更正&#xff1a; Eureka 应该是 Eureka 或者 Eureka Server&#xff1a;Eureka是Netflix开源的一个服务发现组件&#xff0c;它本身是一个基于RE…

【Git】Github 上commit后,绿格子contribution却不显示?不知道怎么弥补?解决方法在这里

github 上commit后&#xff0c;绿格子&#xff08;contribution&#xff09;却不显示 问题描述 今天一直在github上面commit代码&#xff0c;但是github中并没有显示自己的contribution&#xff08;没有绿色的格子&#xff09;&#xff0c;全是空白&#xff0c;网上一查是因为…

免费分享一套SpringBoot+Vue自习室(预约)管理系统,帅呆了~~

大家好&#xff0c;我是java1234_小锋老师&#xff0c;看到一个不错的SpringBootVue自习室预约)管理系统&#xff0c;分享下哈。 项目视频演示 【免费】SpringBootVue自习室预约(预约)管理系统 Java毕业设计_哔哩哔哩_bilibili【免费】SpringBootVue自习室预约(预约)管理系统…

大语言模型(LLM)Token 概念

1. 概念&#xff1a; Token概念&#xff1a;在大型语言模型中&#xff0c;Token是对输入文本进行分割和编码时的最小单位。它可以是单词、子词、字符或其他形式的文本片段。 2. 分类&#xff1a; 词级Token&#xff08;Word-level Tokens&#xff09;&#xff1a;将文本分割…

Java项目企业设备管理系统

java项目企业设备管理系统javaweb项目ssm框架项目 运行环境:idea/eclipse tomcat jdk mysql navicat 系统用户分为员工和管理员两类用户。两类用户都可以进行系统的登录&#xff0c;虽然进入的系统主页结构相似&#xff0c;但是在功能上有不同。员工的密码可以自己进入系统后…

【目标检测-数据集准备】DIOR转为yolo训练所需格式

【目标检测】DIOR遥感影像数据集&#xff0c;转为yolo系列模型训练所需格式。 标签文件位于Annotations下&#xff0c;格式为xml&#xff0c;yolo系列模型训练所需格式为txt&#xff0c;格式为 class_id x_center,y_center,w,h其中&#xff0c;train&#xff0c;text&#xff…

企业微信托管集成语聚AI,做AI智能客服助手,实现精准回答用户问题、创建群组自动化场景

场景描述 当前商业环境下&#xff0c;企业正面临着为客户提供高效而精确服务的迫切需求&#xff0c;这是提升客户满意度和增强品牌忠诚的关键。随着互联网时代的到来&#xff0c;无论是企业还是个人&#xff0c;都在努力加强与顾客的连接和互动&#xff0c;以期达到卓越的用户…

Python笔记|字符串的转义

重新梳理一遍python的基础知识 除了数字&#xff0c;Python 还可以操作字符串。字符串有多种表现形式&#xff0c;用单引号&#xff08;……&#xff09;或双引号&#xff08;"……"&#xff09;标注的结果相同 。反斜杠 \ 用于转义&#xff1a; >>>spam e…

摩尔定律对于计算机行业有什么重要意义?

摩尔定律对计算机行业有着极其深远的影响&#xff0c;主要体现在以下几个方面&#xff1a; 技术进步预期&#xff1a; 摩尔定律提供了一个指导性的预测模型&#xff0c;表明处理能力大约每两年翻一番。这个预期帮助行业对未来的技术发展和市场需求进行规划。 硬件性能提升&…

java抽象类的作用及解析

在 Java 中&#xff0c;抽象类是一种特殊的类&#xff0c;它可以用于定义一些抽象的方法和属性&#xff0c;这些方法和属性可能在子类中有不同的实现。 抽象类的主要作用包括&#xff1a; 提供抽象方法&#xff1a;抽象类可以包含一些没有具体实现的抽象方法&#xff0c;这些…