前言
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 的巡检脚本:
oscheck.sh 是用来巡检主机相关信息以及配置检查。dbcheck*.sql 是用来巡检数据库相关信息,12c 包括 12c 以后的版本。
演示
Oracle 数据库巡检
Oracle 数据库其中一个节点上传巡检脚本(本文选择节点一):
执行脚本一键巡检 Oracle 数据库:
执行完之后会在当前目录生成一个 tar 压缩包:
这个就是脚本获取到的所有信息集合,包含以下内容:
接下来就是将 tar 文件获取到本地,进行 word 报告一键生成程序即可。
生成 Word 报告
放入巡检文件
通过 sftp 等工具获取到 tar 报告,放到 checkfiles 目录下:
配置 Python 环境
前置工作(必须满足):
- 建议下载安装 Python 3 最新版本,并且配置好 Python 环境。
- 下载安装 chrome 浏览器以及 chromedriver。
- 需要安装以下 Python 模块,在根目录下执行:pip install -r requirements.txt 即可。
Word 报告一键生成程序是通过 Python 来写的,完整程序目录如下:
运行 Python 脚本需要安装 Python 运行环境,去官方下载最新的安装包即可:
“https://www.python.org/downloads/
注意:在安装 Python 时勾选 "Add Python to PATH" 复选框,安装程序会自动添加环境变量,否则需要手动配置。
安装好 Python 之后,运行命令安装依赖包:
等待安装完成即可。
接下来还需要下载 chromedriver 以及 Google Chrome 浏览器:
“https://googlechromelabs.github.io/chrome-for-testing/#stable。
下载稳定版本后进行安装即可,chromedriver 下载解压后放到 resources 目录下(Windows的是有后缀的):
至此,脚本所需 Python 环境就配置好了。
生成 Word 报告
进入到 main.py 所在的目录 src:
运行脚本调用图形化程序:
运行完之后会弹出一个图形化报告生成工具:
工具页面包含可编辑选项:
- 客户公司名称
- 服务公司名称
- 巡检人员
- 服务公司 logo
- 巡检类型:根据不同巡检类型生成不同的报告内容
- 周
- 月
- 季
- Word 报告保存位置(默认建议不改动)
根据自己实际情况填写后,本文按照默认配置选择季度巡检,点击 生成报告
即可,查看运行过程:
运行完成后在 reports 目录下已自动生成 Word 报告:
至此,Word 报告已经生成完成。