【数据库巡检】支持Oracle、MySQL、MSSQL、PG等17种数据库

2022-05-24 18:15:27 浏览数 (1)

一、巡检脚本简介

该套数据库巡检脚本多数为纯SQL脚本开发,如下所示:

  • 目前一共包含23个脚本,若脚本的扩展名为“.sql”则表示该脚本为sql脚本;若脚本的扩展名为“.pl”则表示该脚本为perl脚本;若脚本的扩展名为“.sh”则表示该脚本为shell脚本。
  • 对于Oracle的SQL脚本而言,脚本DB_Oracle_HC_lhr_v7.0.0_10g.sql适用于Oracle 10g数据库,脚本DB_Oracle_HC_lhr_v7.0.0_11g.sql适用于Oracle 11g的数据库,脚本DB_Oracle_HC_lhr_v7.0.0_12c.sql适用于Oracle 12c及其以上版本,这3个脚本都是只读版本,这3个脚本只会对数据库做查询操作,不会做DML和DDL操作,这也是很多朋友所期待的功能。
  • 脚本DB_OS_HC_lhr_v7.0.0.pl是perl脚本,执行后会对OS的信息进行收集,并且输出到html中。脚本DB_OS_HC_lhr_v7.0.0.sh是shell脚本,执行后会对OS的信息进行收集。
  • 脚本DB_MySQL_HC_lhr_v7.0.0.sql是MySQL脚本,执行后会产生MySQL的健康检查html报告,该脚本为只读脚本。
  • 脚本DB_MSSQL_HC_lhr_v7.0.0_2005.sql和DB_MSSQL_HC_lhr_v7.0.0_2008R2.sql是SQL Server脚本,存在部分DDL和DML操作,执行后会产生SQL Server的健康检查html报告。脚本DB_MSSQL_HC_lhr_v7.0.0_2005.sql最低支持2005版本,而脚本DB_MSSQL_HC_lhr_v7.0.0_2008R2.sql最低支持2008R2版本。
  • 脚本DB_PG_HC_lhr_v7.0.0.sql是PG数据库脚本,执行后会产生PostgreSQL数据库的健康检查html报告。
  • 脚本DB_GP_HC_lhr_v7.0.0.sql是Greenplum数据库脚本,执行后会产生Greenplum数据库的健康检查html报告。
  • 脚本DB_DM_HC_lhr_v7.0.0是达梦数据库脚本,执行后会产生达梦数据库的健康检查html报告。
  • 脚本DB_TiDB_HC_lhr_v7.0.0.sql是TiDB数据库脚本,执行后会产生TiDB数据库的健康检查html报告。
  • 脚本DB_openGauss_HC_lhr_v7.0.0.sql是openGauss数据库脚本,执行后会产生openGauss数据库的健康检查html报告。
  • 脚本DB_DB2_HC_lhr_v7.0.0.sql是DB2数据库脚本,执行后会产生DB2数据库的健康检查html报告。
  • 脚本DB_OceanBase_HC_lhr_v7.0.0.sql是DB2数据库脚本,执行后会产生OceanBase数据库的健康检查html报告。
  • 脚本DB_kingbase_HC_lhr_v7.0.0.sql是人大金仓数据库脚本,执行后会产生人大金仓数据库的健康检查html报告。
  • 脚本DB_GreatDB_HC_lhr_v7.0.0.sql是万里GreatDB数据库脚本,执行后会产生万里GreatDB数据库的健康检查html报告。
  • 脚本DB_TBase_HC_lhr_v7.0.0.sql是TDSQL for PostgreSQL(原 TBase)数据库脚本,执行后会产生TDSQL for PostgreSQL(原 TBase)数据库的健康检查html报告。
  • 脚本DB_MogDB_HC_lhr_v7.0.0.sql是MogDB数据库脚本,执行后会产生云和恩墨MogDB数据库的健康检查html报告。
  • 脚本DB_OushuDB_HC_lhr_v7.0.0.sql是OushuDB数据库脚本,执行后会产生OushuDB数据库的健康检查html报告。
  • 脚本DB_PolarDB_for_PG_HC_lhr_v7.0.0.sql是PolarDB_for_PG数据库脚本,执行后会产生PolarDB_for_PG数据库的健康检查html报告。
  • 脚本DB_OSCAR_HC_lhr_v7.0.0.sql是神州通用数据库脚本,执行后会产生神通数据库的健康检查html报告。

二、巡检脚本特点

1、可以巡检Oracle、MySQL、SQL Server、PostgreSQL、Greenplum、OceanBase、TiDB、openGauss、DB2、达梦、人大金仓、万里GreatDB、TDSQL_for_PG(原 TBase)、MogDB、OushuDB、PolarDB_for_PG、神通等17个数据库,也可以巡检Linux操作系统(后续会免费逐步增加MongoDB、PolarDB、TDSQL、GBase等数据库) 2、脚本为绿色版、免安装、纯SQL文本 3、跨平台,只要有SQL*Plus(Oracle)、mysql(MySQL、TiDB、OceanBase)、MSSQL客户端(SSMS、Navicat皆可)、psql(PG、Greenplum、openGauss、TBase、MogDB、OushuDB)、gisql(国产达梦)、gsql(openGauss、MogDB)、db2(DB2数据库)、obclient(OceanBase)环境即可运行脚本 4、脚本内容可视化,可以看到脚本内容,因此可供学习数据库使用 5、兼容Oracle 10g、11g、12c、18c、19c、20c、21c等高版本Oracle数据库 6、对Oracle 10g、11g、12c、18c、19c、20c、21c等版本分别提供了只读版(只对数据库查询,不做DDL和DML操作) 7、MySQL最低支持5.5版本 8、SQL Server最低支持2005版本 9、增删监控项非常方便,只需要提供相关SQL即可 10、一次购买,所有脚本终身免费升级 11、检查内容非常全面 12、针对每种数据库,只有1个SQL脚本,不存在嵌套调用脚本等其它问题 13、最终生成html文件格式的健康检查结果 14、Oracle数据库对巡检结果进行过滤,列出了数据库有问题的内容 15、对OS的信息提供了收集(单独脚本)

三、巡检结果展示

这里只列出部分结果,其它的详细内容可以参考:https://share.weiyun.com/5lb2U2M

1、Oracle数据库

鼠标经过相关连接时会有相应的解释,如下图所示:

该脚本检查的内容较多,所以我对结果进行了过滤,如下:

点击链接即可查看结果:

数据库基本信息一目了然:

其它不再列举。

2、MySQL数据库

其它不再列举。

3、SQL Server数据库

其它不再列举。

4、PG数据库

其它不再列举。

5、达梦数据库

其它不再列举。

6、TiDB数据库

其它不再列举。

7、openGauss数据库

其它不再列举。

8、DB2数据库

其它不再列举。

9、OceanBase数据库

10、OS信息

其它不再列举。

11、Greenplum数据库

其它不再列举。

12、人大金仓数据库

其它不再列举。

13、万里GreatDB数据库

其它不再列举。

14、TDSQL for PostgreSQL(原 TBase)数据库

其它不再列举。

15、MogDB数据库

16、OushuDB数据库

其它不再列举。

17、PolarDB_for_PG数据库

其它不再列举。

18、神通数据库

其它不再列举。

四、脚本运行方式

1、Oracle数据库

只要有sqlplus的客户端即可。

为了防止乱码,需要先配置环境变量。

代码语言:javascript复制
# Linux环境设置
export LANG=en_US.GB2312
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

# Windows环境配置
set NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

服务器端直接运行:

代码语言:javascript复制
sqlplus / as sysdba @DB_Oracle_HC_lhr_v7.0.0_12c.sql

sqlplus客户端运行:

代码语言:javascript复制
sqlplus sys/lhr@192.168.59.130:1521/orcl as sysdba @DB_Oracle_HC_lhr_v7.0.0_12c.sql

2、MySQL数据库

只要有mysql客户端即可,使用MariaDB的客户端也可以,如下:

代码语言:javascript复制
mysql -uroot -plhr -P3306 -s -f <  DB_MySQL_HC_lhr_v7.0.0.sql  > lhr_mysql_check.html

3、SQL Server数据库

脚本DB_MSSQL_HC_lhr_v7.0.0_2005.sql和DB_MSSQL_HC_lhr_v7.0.0_2008R2.sql是SQL Server脚本,存在部分DDL和DML操作,执行后会产生SQL Server的健康检查html报告。脚本DB_MSSQL_HC_lhr_v7.0.0_2005.sql最低支持2005版本,而脚本DB_MSSQL_HC_lhr_v7.0.0_2008R2.sql最低支持2008R2版本。

3.1、命令行方式

代码语言:javascript复制
-- 在本机直接运行
sqlcmd -d tempdb -y 0 -m 1 -i D:DB_MSSQL_HC_lhr_v7.0.0_2008R2.sql -o D:MSSQL_CHECK_LHR_20210914.html

-- 远程运行
sqlcmd -S 192.168.1.28 -U sa -P lhr -d tempdb -y 0 -m 1 -i D:DB_MSSQL_HC_lhr_v7.0.0_2008R2.sql -o D:MSSQL_CHECK_LHR_20210914.html

3.2、SSMS图形界面

需要使用SQL Server Management Studio (SSMS)或Navicat for SQLServer客户端软件,直接运行脚本,然后将输出结果保存为html文件即可。

4、PG数据库

需要有psql客户端,运行方式如下:

代码语言:javascript复制
psql -U postgres -h 192.168.66.35 -p 54324 -d postgres -W -H -f D:DB_PG_HC_lhr_v7.0.0.sql > d:a.html

输入密码,回车即可。

注意: 1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

5、达梦数据库

在Windows下运行:

代码语言:javascript复制
disql -S SYSDBA/SYSDBA@192.168.1.35 `d:DB_DM_HC_lhr_v7.0.0.sql

在Linux下运行:

代码语言:javascript复制
disql -S SYSDBA/SYSDBA `/home/dmdba/DB_DM_HC_lhr_v7.0.0.sql > /dev/null

6、TiDB数据库

只要有mysql客户端即可,使用MariaDB的客户端也可以,如下:

代码语言:javascript复制
mysql -uroot -plhr -P4000 -s -f <  DB_TiDB_HC_lhr_v7.0.0.sql  > lhr_mysql_check.html

7、openGauss数据库

需要有华为的gsql客户端,或PostgreSQL数据库的psql客户端都可以,运行方式如下:

若是openGauss或华为的GaussDB数据库的gsql客户端,则执行:

代码语言:javascript复制
gsql -U gaussdb -h 192.168.66.35 -p 15432 -d postgres -W'lhr@123XXT' -H -f D:DB_openGauss_HC_lhr_v7.0.0.sql > d:a.html

若是PostgreSQL数据库的psql客户端,则执行:

代码语言:javascript复制
psql -U gaussdb -h 192.168.66.35 -p 54324 -d postgres -W -H -f D:DB_openGauss_HC_lhr_v7.0.0.sql > d:a.html

psql需要输入密码,回车即可。

注意:

1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

2、建议使用omm用户在服务器本地跑脚本。

8、DB2数据库

需要有db2数据库客户端,运行方式如下:

① 客户端在Windows平台,连接到本地db2数据库:

代码语言:javascript复制
db2cmd
db2 connect to lhrdb && db2 -txf D:DB_DB2_HC_lhr_v7.0.0.sql >  d:lhr_db2_health_check.html

② 客户端在Linux平台,连接到本地db2数据库:

代码语言:javascript复制
db2 connect to lhrdb; db2 -txf DB_DB2_HC_lhr_v7.0.0.sql > lhr_db2_health_check_`date  '%Y%m%d%H%M%S'`.html

③ 客户端在Windows平台,需要连接到远程的linux服务器:

代码语言:javascript复制
db2cmd
db2 connect to test user db2inst1 using lhr && db2 -txf D:DB_DB2_HC_lhr_v7.0.0.sql >  D:lhr_db2_health_check.html

注意:

1、建议直接在服务端运行,因为个别巡检命令只支持在服务端运行。

2、该脚本只能对当前的数据库进行检测,若需要检查其它数据库,请重新跑脚本,并修改连接到的数据库名称,例如:db2 connect to test;

9、OceanBase数据库

有mysql客户端或者obclient都可以,如下:

代码语言:javascript复制
-- 使用obclient客户端
obclient -uroot@sys -p -h192.168.66.35 -P2883  -f --silent  <  DB_OceanBase_HC_lhr_v7.0.0.sql > lhr_OceanBase_check.html

-- 使用mysql客户端
mysql -uroot@sys -p -h192.168.66.35 -P2883  -f --silent  <  DB_OceanBase_HC_lhr_v7.0.0.sql > lhr_OceanBase_check.html

10、OS信息

操作系统信息的收集是perl脚本,运行方式如下所示。

代码语言:javascript复制
[root@OCPLHR lhr]# ll
total 28
-rw-r--r-- 1 oracle oinstall 25791 Jul 10 17:15 DB_OS_HC_lhr_v7.0.0.pl
[root@OCPLHR lhr]# perl DB_OS_HC_lhr_v7.0.0.pl 
[root@OCPLHR lhr]# ll
total 56
-rw-r--r-- 1 oracle oinstall 25791 Jul 10 17:15 DB_OS_HC_lhr_v7.0.0.pl
-rw-r--r-- 1 root   root     26289 Jul 10 17:19 LHR_OSCHECK_REPORT_OCPLHR_20190710171939.html
[root@OCPLHR lhr]# 

11、Greenplum数据库

和PostgreSQL数据库相似,需要有psql客户端,运行方式如下:

代码语言:javascript复制
psql -U gpadmin -h 192.168.66.35 -p 64340 -d lhrgpdb -W -H -f D:DB_GP_HC_lhr_v7.0.0.sql > d:a.html

输入密码,回车即可。

注意: 1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

12、人大金仓

和PostgreSQL数据库相似,需要有psql客户端或者有人大金仓的ksql客户端都可以,运行方式如下:

代码语言:javascript复制
ksql -U kingbase -h 192.168.66.35 -p 54321 -d test -W -H -f D:DB_kingbase_HC_lhr_v7.0.0.sql > d:a.html
psql -U kingbase -h 192.168.66.35 -p 54321 -d test -W -H -f D:DB_kingbase_HC_lhr_v7.0.0.sql > d:a.html

输入密码,回车即可。

注意: 1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

13、万里GreatDB数据库

只要有mysql客户端即可,使用MariaDB的客户端也可以,如下:

和PostgreSQL数据库相似,需要有psql客户端,运行方式如下:

代码语言:javascript复制
1 mysql -uroot -plhr -P3306 -s -f <  DB_GreatDB_HC_lhr_v7.0.0.sql  > lhr_GreatDB_check.html

输入密码,回车即可。

14、TDSQL for PostgreSQL(原 TBase)数据库

需要有psql客户端,运行方式如下:

代码语言:javascript复制
psql -U tbase -h 192.168.66.35 -p 54324 -d postgres -W -H -f D:DB_tbase_HC_lhr_v7.0.0.sql > d:a.html

输入密码,回车即可。

注意: 1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

15、MogDB数据库

需要有华为的gsql客户端,或PostgreSQL数据库的psql客户端都可以,运行方式如下:

若是openGauss或华为的GaussDB数据库的gsql客户端,则执行:

代码语言:javascript复制
gsql -U lhr -h 192.168.66.35 -p 25432 -d postgres -W'lhr@123XXT' -H -f D:DB_MogDB_HC_lhr_v7.0.0.sql > d:MogDB_health_check.html

若是PostgreSQL数据库的psql客户端,则执行:

代码语言:javascript复制
psql -U lhr -h 192.168.66.35 -p 25432 -d postgres -W -H -f D:DB_MogDB_HC_lhr_v7.0.0.sql > d:MogDB_health_check.html

psql需要输入密码,回车即可。

注意:

1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

2、建议使用omm用户在服务器本地跑脚本。

16、OushuDB数据库运行方式

需要有psql客户端,运行方式如下:

代码语言:javascript复制
psql -U gpadmin -h 192.168.66.35 -p 5432 -d postgres  -H -f D:DB_OushuDB_HC_lhr_v7.0.0.sql > d:DB_OushuDB_check.html

输入密码,回车即可。

注意: 1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

17、PolarDB_for_PG数据库运行方式

需要有psql客户端,运行方式如下:

代码语言:javascript复制
psql -U postgres -h 192.168.66.35 -p 5432 -d postgres  -H -f D:DB_PolarDB_for_PG_HC_lhr_v7.0.0.sql > d:PolarDB_for_PG_health_check.html

输入密码,回车即可。

注意: 1、该脚本的字符集为utf8,请使用utf8格式打开该文件。

18、神通数据库

需要有神州通用数据库的专用isql客户端,运行方式如下:

代码语言:javascript复制
 isql -U sysdba/lhr -h 192.168.66.35 -p 2003 -q -t -f d:DB_OSCAR_HC_lhr_v7.0.0.sql > d:a.html

回车即可。

五、其它问题

请看视频《小麦苗数据库健康检查脚本使用说明.wmv》或阅读《【DB健康巡检(Oracle MySQL MSSQL OS)】小麦苗巡检脚本使用说明_LHR.pdf》,下载地址为:https://share.weiyun.com/5lb2U2M 。

视频观看地址:https://www.bilibili.com/video/BV1K54y1U7CE

六、软件著作权登记证书

小麦苗编写的该巡检系统已申请“中华人民共和国国家版权局计算机软件著作权登记证书”,请购买的朋友不要随意传播,否则将追究法律责任,并且收回脚本,不再提供免费更新,谢谢。

相关证书见下图:

七、版本重大更新历史

对于小的bug更新不再此列出,直接修改脚本:

1、2015.10月推出Oracle巡检脚本,中间经过N次更新,2018.12.06更新一次,支持12c

2、2019.07.02重大更新,添加了10g、11g、12c版本的只读版本

3、2019.07.10加上了OS信息的收集

4、2019.07.12加上了对MySQL数据库的巡检

5、2019.09.24对Oracle的展示做了优化,修改了个别内容

6、2020.09.30加上了对SQL Server数据库的巡检

7、2020.12.16加上了对PostgreSQL数据库的巡检

8、2021.10.13加上了对达梦数据库的巡检

9、2021.10.18加上了对TiDB数据库的巡检

10、2021.10.23加上了对TiDB数据库的巡检

11、2021.10.29加上了对db2数据库的巡检

12、2021.10.31加上了对OceanBase数据库的巡检,并且去掉了MySQL和TiDB之前只能在Linux上运行的限制

13、2022.3.8加上了对Greenplum数据库的巡检

14、2022.3.28加上了对人大金仓数据库的巡检

15、2022.4.8加上了对万里数据库GreatDB的巡检

16、2022.4.11加上了对TDSQL for PostgreSQL(原 TBase)数据库的巡检

17、2022.4.18加上了对MogDB数据库的巡检

18、2022.4.20加上了对OushuDB数据库的巡检

19、2022.4.21加上了对PolarDB_for_PG数据库的巡检

20、2022.4.22加上了对PolarDB_for_PG数据库的巡检


● 本文作者:小麦苗,部分内容整理自网络,若有侵权请联系小麦苗删除 ● 最新修改时间:2022年4月 ● 版权所有,欢迎分享本文,转载请保留出处


0 人点赞