Oracle 一键巡检自动生成 Word 报告
moboyou 2025-03-27 11:43 103 浏览
巡检人员只需要执行脚本,脚本会自动生成一个完整的 Word 报告(样式格式都无需调整),只需要检查报告中是否存在问题即可。本文演示一套 19C RAC 的集群数据库自动巡检。
前言
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 中直接提供巡检建议,全程智能巡检。
- 数据库主机无需安装任何第三方软件,只需要上传巡检脚本,一键执行生成巡检文件即可。
- 脚本持续更新。
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.shoscheck.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 Instance
INST_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,30182
2 4019382963 LUCIFER PRIMARY 2024-03-13 10:21:39 ARCHIVELOG READ WRITE 19.0.0.0.0 392,13105,30182
Note2: 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
╰─$ 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
╰─$ 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 运行环境,去官方下载最新的安装包即可:
“https://www.python.org/downloads/
注意:在安装 Python 时勾选 "Add Python to PATH" 复选框,安装程序会自动添加环境变量,否则需要手动配置。
安装好 Python 之后,运行命令安装依赖包:
## 命令行窗口进入到 requirements.txt 所在目录运行
╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck
╰─$ pip install -r requirements.txt 等待安装完成即可。
接下来还需要下载 chromedriver 以及 Google Chrome 浏览器:
“
https://googlechromelabs.github.io/chrome-for-testing/#stable。
Stable
Version: 122.0.6261.128 (r1250580)
Binary Platform URL HTTP status
chrome mac-arm64 https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/mac-arm64/chrome-mac-arm64.zip
chrome mac-x64 https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/mac-x64/chrome-mac-x64.zip
chrome win64 https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/win64/chrome-win64.zip
chromedriver mac-arm64 https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/mac-arm64/chromedriver-mac-arm64.zip
chromedriver mac-x64 https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/mac-x64/chromedriver-mac-x64.zip
chromedriver win64 https://storage.googleapis.com/chrome-for-testing-public/122.0.6261.128/win64/chromedriver-win64.zip下载稳定版本后进行安装即可,chromedriver 下载解压后放到 resources 目录下(Windows的是有后缀的):
╭─lucifer@Lucifer-2 /Volumes/DBA/Github/OracleHealthCheck/resources
╰─$ 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
╰─$ 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
╰─$ 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
╰─$ 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 报告已经生成完成。
相关推荐
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
-
首先介绍一下此函数:SHEETSNAME函数用于获取工作表的名称,有三个可选参数。语法:=SHEETSNAME([参照区域],[结果方向],[工作表范围])(参照区域,可选。给出参照,只返回参照单元格...
- Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
-
一、函数概述HOUR函数是Excel中用于提取时间值小时部分的日期时间函数,返回0(12:00AM)到23(11:00PM)之间的整数。该函数在时间数据分析、考勤统计、日程安排等场景中应用广泛。语...
- Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
-
原创版权所有介绍一个信息管理系统,要求可以实现:多条件、模糊查找,手动输入的内容能去空格。先看效果,如下图动画演示这样的一个效果要怎样实现呢?本文所用函数有Filter和Search。先用filter...
- FILTER函数介绍及经典用法12:FILTER+切片器的应用
-
EXCEL函数技巧:FILTER经典用法12。FILTER+切片器制作筛选按钮。FILTER的函数的经典用法12是用FILTER的函数和切片器制作一个筛选按钮。像左边的原始数据,右边想要制作一...
- office办公应用网站推荐_office办公软件大全
-
以下是针对Office办公应用(Word/Excel/PPT等)的免费学习网站推荐,涵盖官方教程、综合平台及垂直领域资源,适合不同学习需求:一、官方权威资源1.微软Office官方培训...
- WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
-
办公最常用的60个函数大全:从入门到精通,效率翻倍!在职场中,WPS/Excel几乎是每个人都离不开的工具,而函数则是其灵魂。掌握常用的函数,不仅能大幅提升工作效率,还能让你在数据处理、报表分析、自动...
- 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
-
原创版权所有全程图解,方便阅读,内容比较多,请先收藏!Xlookup是Vlookup的升级函数,解决了Vlookup的所有缺点,可以完全取代Vlookup,学完本文后你将可以应对所有的查找难题,内容...
- 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
-
批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数在电商运营、物流对账等工作中,经常需要统计快递“揽收到签收”的耗时——比如判断某快递公司是否符合“3天内送达”的服务承...
- Excel函数公式教程(490个实例详解)
-
Excel函数公式教程(490个实例详解)管理层的财务人员为什么那么厉害?就是因为他们精通excel技能!财务人员在日常工作中,经常会用到Excel财务函数公式,比如财务报表分析、工资核算、库存管理等...
- Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
-
工作中,经常需要从多个单元格区域中提取唯一值,如体育赛事报名信息中提取唯一的参赛者信息等,此时如果复制粘贴然后去重,效率就会很低。如果能合理利用Tocol函数,将会极大地提高工作效率。一、功能及语法结...
- Excel中的SCAN函数公式,把计算过程理清,你就会了
-
Excel新版本里面,除了出现非常好用的xlookup,Filter公式之外,还更新一批自定义函数,可以像写代码一样写公式其中SCAN函数公式,也非常强大,它是一个循环函数,今天来了解这个函数公式的计...
- Excel(WPS表格)中多列去重就用Tocol+Unique组合函数,简单高效
-
在数据的分析和处理中,“去重”一直是绕不开的话题,如果单列去重,可以使用Unique函数完成,如果多列去重,如下图:从数据信息中可以看到,每位参赛者参加了多项运动,如果想知道去重后的参赛者有多少人,该...
- Excel(WPS表格)函数Groupby,聚合统计,快速提高效率!
-
在前期的内容中,我们讲了很多的统计函数,如Sum系列、Average系列、Count系列、Rank系列等等……但如果用一个函数实现类似数据透视表的功能,就必须用Groupby函数,按指定字段进行聚合汇...
- Excel新版本,IFS函数公式,太强大了!
-
我们举一个工作实例,现在需要计算业务员的奖励数据,右边是公司的奖励标准:在新版本的函数公式出来之前,我们需要使用IF函数公式来解决1、IF函数公式IF函数公式由三个参数组成,IF(判断条件,对的时候返...
- Excel不用函数公式数据透视表,1秒完成多列项目汇总统计
-
如何将这里的多组数据进行汇总统计?每组数据当中一列是不同菜品,另一列就是该菜品的销售数量。如何进行汇总统计得到所有的菜品销售数量的求和、技术、平均、最大、最小值等数据?不用函数公式和数据透视表,一秒就...
- 一周热门
- 最近发表
-
- Excel技巧:SHEETSNA函数一键提取所有工作表名称批量生产目录
- Excel HOUR函数:“小时”提取器_excel+hour函数提取器怎么用
- Filter+Search信息管理不再难|多条件|模糊查找|Excel函数应用
- FILTER函数介绍及经典用法12:FILTER+切片器的应用
- office办公应用网站推荐_office办公软件大全
- WPS/Excel职场办公最常用的60个函数大全(含卡片),效率翻倍!
- 收藏|查找神器Xlookup全集|一篇就够|Excel函数|图解教程
- 批量查询快递总耗时?用Excel这个公式,自动计算揽收到签收天数
- Excel函数公式教程(490个实例详解)
- Excel(WPS表格)Tocol函数应用技巧案例解读,建议收藏备用!
- 标签列表
-
- 外键约束 oracle (36)
- oracle的row number (32)
- 唯一索引 oracle (34)
- oracle in 表变量 (28)
- oracle导出dmp导出 (28)
- 多线程的创建方式 (29)
- 多线程 python (30)
- java多线程并发处理 (32)
- 宏程序代码一览表 (35)
- c++需要学多久 (25)
- css class选择器用法 (25)
- css样式引入 (30)
- css教程文字移动 (33)
- php简单源码 (36)
- php个人中心源码 (25)
- php小说爬取源码 (23)
- 云电脑app源码 (22)
- html画折线图 (24)
- docker好玩的应用 (28)
- linux有没有pe工具 (34)
- 可以上传视频的网站源码 (25)
- 随机函数如何生成小数点数字 (31)
- 随机函数excel公式总和不变30个数据随机 (33)
- 所有excel函数公式大全讲解 (22)
- 有动图演示excel函数公式大全讲解 (32)
