Oracle Health Check巡检脚本使用SOP V1.0https://blog.csdn.net/weixin_45806267/article/details/161506734?spm1001.2014.3001.5501一、适用范围本 SOP 适用于Linux/Unix 类操作系统上的 Oracle 数据库服务器巡检。说明本文示例以 Linux 系统为准Windows 环境不适用oscheck.sh应使用对应的 Windows/PowerShell 版本脚本本脚本适用于 Oracle CDB/PDB 架构和非 CDB 架构数据库巡检。二、脚本组成与关系本次巡检使用 3 个脚本脚本名称作用oscheck.sh巡检入口脚本负责采集主机 OS、Oracle 环境、监听、补丁、RAC/GI 信息并自动调用数据库巡检 SQLdbcheck_cdb.sqlOracle CDB/PDB 架构数据库巡检 SQLdbcheck_noncdb.sqlOracle 非 CDB 架构数据库巡检 SQL三个脚本之间不是内容包含关系而是调用关系。oscheck.sh ├── 采集主机 OS、Oracle 环境、监听、补丁、RAC/GI 信息 └── 自动调用对应的 dbcheck 脚本 ├── CDB/PDB 架构调用 dbcheck_cdb.sql └── 非 CDB 架构调用 dbcheck_noncdb.sql注意oscheck.sh是总入口dbcheck_cdb.sql、dbcheck_noncdb.sql是被调用脚本oscheck.sh不包含两个dbcheck脚本的完整内容三个脚本必须放在同一目录下。三、ODA 多 CDB 执行原则在 ODA 环境中可能存在一套 ODA 上部署多个 CDB 的情况例如一套 ODA ├── CDB1 │ ├── PDB1 │ └── PDB2 └── CDB2 ├── PDB1 └── PDB2该场景下巡检按CDB 维度执行一个 CDB 执行一次巡检CDB 下的 PDB 信息由dbcheck_cdb.sql自动采集不需要对每个 PDB 单独执行如果一套 ODA 上有 2 个 CDB则需要分别执行 2 次巡检。-o参数后面填写的是当前节点本地 Oracle 实例名即ORACLE_SID。不要填写PDB 名业务系统名称数据库资源名。ODA 多 CDB 示例先在当前节点确认本机正在运行的 Oracle 实例ps -ef | grep [p]mon示例输出ora_pmon_ERPCDB1 ora_pmon_MESDB1说明ora_pmon_后面的内容就是当前节点本地实例名也就是需要设置的ORACLE_SID。根据上面示例当前节点有两个 CDB 实例CDB/数据库当前节点本地实例名巡检方式ERPCDBERPCDB1设置ORACLE_SIDERPCDB1后执行MESDBMESDB1设置ORACLE_SIDMESDB1后执行第一次巡检 ERPCDBexport ORACLE_SIDERPCDB1 bash oscheck.sh -o $ORACLE_SID第二次巡检 MESDBexport ORACLE_SIDMESDB1 bash oscheck.sh -o $ORACLE_SID如果在另一个节点执行也要先确认当前节点本地实例名。例如另一个节点可能显示ora_pmon_ERPCDB2 ora_pmon_MESDB2则对应执行export ORACLE_SIDERPCDB2 bash oscheck.sh -o $ORACLE_SIDexport ORACLE_SIDMESDB2 bash oscheck.sh -o $ORACLE_SID四、脚本部署脚本目录可根据现场实际情况选择/data/check只是示例路径。例如可以使用/data/check /u01/check /home/oracle/check本文以/data/check为例。使用root用户创建目录mkdir -p /data/check将以下 3 个脚本上传到同一目录oscheck.sh dbcheck_cdb.sql dbcheck_noncdb.sql检查脚本cd /data/check ll正常应看到oscheck.sh dbcheck_cdb.sql dbcheck_noncdb.sql五、脚本授权使用root用户执行cd /data/check chown -R oracle:oinstall /data/check chmod 750 /data/check chmod 750 oscheck.sh chmod 640 dbcheck_cdb.sql dbcheck_noncdb.sql如果现场 Oracle 用户组不是oinstall以实际查询结果为准id oracle授权后权限示例-rwxr-x--- 1 oracle oinstall oscheck.sh -rw-r----- 1 oracle oinstall dbcheck_cdb.sql -rw-r----- 1 oracle oinstall dbcheck_noncdb.sql六、执行前检查切换到oracle用户su - oracle cd /data/check确认 Oracle 环境echo $ORACLE_SID echo $ORACLE_HOME ps -ef | grep [p]mon确认要求ORACLE_HOME正确ORACLE_SID为当前节点本地实例名ORACLE_SID应与ora_pmon_后面的实例名一致。如果当前ORACLE_SID不正确先手动指定export ORACLE_SID当前节点本地实例名七、执行巡检执行命令bash oscheck.sh -o $ORACLE_SID也可以明确指定实例名bash oscheck.sh -o yjcs说明-o后面填写 Oracle 实例名RAC/ODA 环境填写当前节点本地实例名CDB/PDB 架构下只需要对 CDB 实例执行PDB 不需要单独执行巡检。执行过程中如检测到 CDB 架构会显示检测到 CDB 架构使用 dbcheck_cdb.sql八、查看结果执行完成后在脚本目录查看结果ls -lh /data/check正常会生成dbcheck_主机名_日期/ dbcheck_主机名_日期.tar.gz其中.tar.gz文件就是最终巡检结果包。ODA 多 CDB 场景下如果同一天在同一目录连续巡检多个 CDB结果包名称可能相同。建议每个 CDB 使用独立目录或执行完成后按 CDB 名称单独保存结果包例如dbcheck_ERPCDB1_主机名_日期.tar.gz dbcheck_MESDB1_主机名_日期.tar.gz九、注意事项本脚本主要适用于 Linux/Unix 类 Oracle 数据库服务器不建议使用root用户直接执行oscheck.sh三个脚本必须放在同一目录/data/check只是示例路径实际可按现场目录调整ODA 多 CDB 场景下按 CDB 维度执行巡检-o后填写当前节点本地实例名即ORACLE_SIDPDB 不需要单独执行巡检建议在业务低峰期执行巡检结果包含主机、数据库、用户、权限、表空间、补丁等敏感信息应妥善保存本脚本属于巡检采集类脚本不属于数据库变更脚本。十、标准执行流程汇总1. root 用户准备mkdir -p /data/check cd /data/check chown -R oracle:oinstall /data/check chmod 750 /data/check chmod 750 oscheck.sh chmod 640 dbcheck_cdb.sql dbcheck_noncdb.sql2. oracle 用户执行su - oracle cd /data/check echo $ORACLE_HOME ps -ef | grep [p]mon export ORACLE_SID当前节点本地实例名 bash oscheck.sh -o $ORACLE_SID3. 查看结果ls -lh /data/check十一、附录涉及的脚本源码说明以下源码仅用于留档和版本核对。日常执行时按前文 SOP 操作即可不建议把源码插入到操作步骤中。附录 Aoscheck.sh此处粘贴oscheck.sh脚本全文。请私信本人获取附录 Bdbcheck_cdb.sql此处粘贴dbcheck_cdb.sql脚本全文。请私信本人获取附录 Cdbcheck_noncdb.sql此处粘贴dbcheck_noncdb.sql脚本全文。请私信本人获取
Oracle Health Check巡检脚本使用SOP V2.0:从HTML原始报告→生成Word专业巡检报告→交付客户_2026-06-03
发布时间:2026/6/4 1:39:02
Oracle Health Check巡检脚本使用SOP V1.0https://blog.csdn.net/weixin_45806267/article/details/161506734?spm1001.2014.3001.5501一、适用范围本 SOP 适用于Linux/Unix 类操作系统上的 Oracle 数据库服务器巡检。说明本文示例以 Linux 系统为准Windows 环境不适用oscheck.sh应使用对应的 Windows/PowerShell 版本脚本本脚本适用于 Oracle CDB/PDB 架构和非 CDB 架构数据库巡检。二、脚本组成与关系本次巡检使用 3 个脚本脚本名称作用oscheck.sh巡检入口脚本负责采集主机 OS、Oracle 环境、监听、补丁、RAC/GI 信息并自动调用数据库巡检 SQLdbcheck_cdb.sqlOracle CDB/PDB 架构数据库巡检 SQLdbcheck_noncdb.sqlOracle 非 CDB 架构数据库巡检 SQL三个脚本之间不是内容包含关系而是调用关系。oscheck.sh ├── 采集主机 OS、Oracle 环境、监听、补丁、RAC/GI 信息 └── 自动调用对应的 dbcheck 脚本 ├── CDB/PDB 架构调用 dbcheck_cdb.sql └── 非 CDB 架构调用 dbcheck_noncdb.sql注意oscheck.sh是总入口dbcheck_cdb.sql、dbcheck_noncdb.sql是被调用脚本oscheck.sh不包含两个dbcheck脚本的完整内容三个脚本必须放在同一目录下。三、ODA 多 CDB 执行原则在 ODA 环境中可能存在一套 ODA 上部署多个 CDB 的情况例如一套 ODA ├── CDB1 │ ├── PDB1 │ └── PDB2 └── CDB2 ├── PDB1 └── PDB2该场景下巡检按CDB 维度执行一个 CDB 执行一次巡检CDB 下的 PDB 信息由dbcheck_cdb.sql自动采集不需要对每个 PDB 单独执行如果一套 ODA 上有 2 个 CDB则需要分别执行 2 次巡检。-o参数后面填写的是当前节点本地 Oracle 实例名即ORACLE_SID。不要填写PDB 名业务系统名称数据库资源名。ODA 多 CDB 示例先在当前节点确认本机正在运行的 Oracle 实例ps -ef | grep [p]mon示例输出ora_pmon_ERPCDB1 ora_pmon_MESDB1说明ora_pmon_后面的内容就是当前节点本地实例名也就是需要设置的ORACLE_SID。根据上面示例当前节点有两个 CDB 实例CDB/数据库当前节点本地实例名巡检方式ERPCDBERPCDB1设置ORACLE_SIDERPCDB1后执行MESDBMESDB1设置ORACLE_SIDMESDB1后执行第一次巡检 ERPCDBexport ORACLE_SIDERPCDB1 bash oscheck.sh -o $ORACLE_SID第二次巡检 MESDBexport ORACLE_SIDMESDB1 bash oscheck.sh -o $ORACLE_SID如果在另一个节点执行也要先确认当前节点本地实例名。例如另一个节点可能显示ora_pmon_ERPCDB2 ora_pmon_MESDB2则对应执行export ORACLE_SIDERPCDB2 bash oscheck.sh -o $ORACLE_SIDexport ORACLE_SIDMESDB2 bash oscheck.sh -o $ORACLE_SID四、脚本部署脚本目录可根据现场实际情况选择/data/check只是示例路径。例如可以使用/data/check /u01/check /home/oracle/check本文以/data/check为例。使用root用户创建目录mkdir -p /data/check将以下 3 个脚本上传到同一目录oscheck.sh dbcheck_cdb.sql dbcheck_noncdb.sql检查脚本cd /data/check ll正常应看到oscheck.sh dbcheck_cdb.sql dbcheck_noncdb.sql五、脚本授权使用root用户执行cd /data/check chown -R oracle:oinstall /data/check chmod 750 /data/check chmod 750 oscheck.sh chmod 640 dbcheck_cdb.sql dbcheck_noncdb.sql如果现场 Oracle 用户组不是oinstall以实际查询结果为准id oracle授权后权限示例-rwxr-x--- 1 oracle oinstall oscheck.sh -rw-r----- 1 oracle oinstall dbcheck_cdb.sql -rw-r----- 1 oracle oinstall dbcheck_noncdb.sql六、执行前检查切换到oracle用户su - oracle cd /data/check确认 Oracle 环境echo $ORACLE_SID echo $ORACLE_HOME ps -ef | grep [p]mon确认要求ORACLE_HOME正确ORACLE_SID为当前节点本地实例名ORACLE_SID应与ora_pmon_后面的实例名一致。如果当前ORACLE_SID不正确先手动指定export ORACLE_SID当前节点本地实例名七、执行巡检执行命令bash oscheck.sh -o $ORACLE_SID也可以明确指定实例名bash oscheck.sh -o yjcs说明-o后面填写 Oracle 实例名RAC/ODA 环境填写当前节点本地实例名CDB/PDB 架构下只需要对 CDB 实例执行PDB 不需要单独执行巡检。执行过程中如检测到 CDB 架构会显示检测到 CDB 架构使用 dbcheck_cdb.sql八、查看结果执行完成后在脚本目录查看结果ls -lh /data/check正常会生成dbcheck_主机名_日期/ dbcheck_主机名_日期.tar.gz其中.tar.gz文件就是最终巡检结果包。ODA 多 CDB 场景下如果同一天在同一目录连续巡检多个 CDB结果包名称可能相同。建议每个 CDB 使用独立目录或执行完成后按 CDB 名称单独保存结果包例如dbcheck_ERPCDB1_主机名_日期.tar.gz dbcheck_MESDB1_主机名_日期.tar.gz九、注意事项本脚本主要适用于 Linux/Unix 类 Oracle 数据库服务器不建议使用root用户直接执行oscheck.sh三个脚本必须放在同一目录/data/check只是示例路径实际可按现场目录调整ODA 多 CDB 场景下按 CDB 维度执行巡检-o后填写当前节点本地实例名即ORACLE_SIDPDB 不需要单独执行巡检建议在业务低峰期执行巡检结果包含主机、数据库、用户、权限、表空间、补丁等敏感信息应妥善保存本脚本属于巡检采集类脚本不属于数据库变更脚本。十、标准执行流程汇总1. root 用户准备mkdir -p /data/check cd /data/check chown -R oracle:oinstall /data/check chmod 750 /data/check chmod 750 oscheck.sh chmod 640 dbcheck_cdb.sql dbcheck_noncdb.sql2. oracle 用户执行su - oracle cd /data/check echo $ORACLE_HOME ps -ef | grep [p]mon export ORACLE_SID当前节点本地实例名 bash oscheck.sh -o $ORACLE_SID3. 查看结果ls -lh /data/check十一、附录涉及的脚本源码说明以下源码仅用于留档和版本核对。日常执行时按前文 SOP 操作即可不建议把源码插入到操作步骤中。附录 Aoscheck.sh此处粘贴oscheck.sh脚本全文。请私信本人获取附录 Bdbcheck_cdb.sql此处粘贴dbcheck_cdb.sql脚本全文。请私信本人获取附录 Cdbcheck_noncdb.sql此处粘贴dbcheck_noncdb.sql脚本全文。请私信本人获取