背景:oracle12c rac偶尔会有奇奇怪怪的问题,自己对这套集群架构也不是特别懂,主要在devops优维平台的自定义采集那里做了三个脚本做检测(ASM磁盘容量检测、集群心跳检测、集群状态检测):
1、ASM占用检测:
#!/usr/bin/python
# _*_coding: utf-8_*_
import cx_Oracle
import socket
import subprocess
import json
import platform
def oraclesql(cursor):
#这里我们使用python的open方法打开文件并读取文件内容作为SQL语句执行
#可使用绝对路径或相对路径
fp=open('/home/oracle/scripts/asm_check.sql','r')
fp1=fp.read()
cursor.execute(fp1)
data=cursor.fetchall()
return data
if __name__=="__main__":
oracle_data = {
"ipaddress": ipaddress,
"username": username,
"password": password,
"port": port,
"tnsname": tnsname
}
info_list4=[]
#这里我们利用Python的异常处理来捕获异常,具体用法请参考文章开始提到的教程
try:
db = cx_Oracle.connect(oracle_data['username']+'/'+oracle_data['password']+'@'+oracle_data['ipaddress']+':'+oracle_data['port']+'/'+oracle_data['tnsname'])
except Exception as e:
content= (oracle_data['tnsname']+' is Unreachable,The reason is '+ str(e)).strip()
print (content)