• check datagurad scripts using python


    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    import cx_Oracle  
    import string
    from email import encoders
    from email.header import Header
    from email.mime.text import MIMEText
    from email.utils import parseaddr, formataddr
    import smtplib
    import sys
    import getopt
    import re
    
    opts, args = getopt.getopt(sys.argv[1:], 'H:')
    
    p = re.compile(r"^((?:(2[0-4]d)|(25[0-5])|([01]?dd?)).){3}(?:(2[0-4]d)|(255[0-5])|([01]?dd?))$")
    ip = opts[0][1]
    flag = p.match(ip)
    if not flag:
        sys.exit()
    
    
    mail_host = 'smtp.qq.com'
    mail_user = '123123@qq.com'
    mail_pwd = '12312312'
    to_list = [ '123123@qq.com', '123123123@qq.com' ]
    
    
    conn = cx_Oracle.connect('read/read@%s/test' % ip)    
    cursor = conn.cursor ()  
    
    cursor.execute (''' select max(sequence#) from v$archived_log where dest_id=1 and thread#=%s ''' % '1')  
    #rows = cursor.fetchall()  
    rows = cursor.fetchone()  
    thread1Primary = rows[0]
    cursor.execute (''' select max(sequence#) from  v$log_history  where thread#=%s ''' % '1')  
    rows = cursor.fetchone()  
    thread1Standby = rows[0]
    
    cursor.execute (''' select max(sequence#) from v$archived_log where dest_id=1 and thread#=%s ''' % '2')  
    rows = cursor.fetchone()  
    thread2Primary = rows[0]
    cursor.execute (''' select max(sequence#) from  v$log_history  where thread#=%s ''' % '2')  
    rows = cursor.fetchone()  
    thread2Standby = rows[0]
    
    #    print (",").join(map(lambda x: str(x),row))
    cursor.close ()  
    conn.close ()  
    
    diffThread1 = thread1Primary - thread1Standby
    diffThread2 = thread2Primary - thread2Standby
    
    #msg = u'''
    #            DATAGUARD SYNC ERROR
    #              thread1Primary = %s 
    #              thread1Standby = %s
    #              thread2Primary = %s
    #              thread2Standby = %s
    #''' % (str(thread1Primary),str(thread1Standby),str(thread2Primary),str(thread2Standby))
    #
    #
    #print msg
    if diffThread1 != 0 or diffThread2 !=0:
        msg = u' DATAGUARD ERROR : thread1Primary = %s thread1Standby = %s thread2Primary = %s thread2Standby = %s ' % (str(thread1Primary),str(thread1Standby),str(thread2Primary),str(thread2Standby))
        sys.exit(2)
    else:
        msg = u' DATAGUARD OK : thread1Primary = %s thread1Standby = %s thread2Primary = %s thread2Standby = %s ' % (str(thread1Primary),str(thread1Standby),str(thread2Primary),str(thread2Standby))
        print msg
        
    
    #    send_email( msg, to_list, 'DATAGUARD SYNC ERROR')
  • 相关阅读:
    【工作总结】工作三年半的不归路,希望新人借鉴
    【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
    【OpenWRT】【RT5350】【二】烧写OpenWrt到RT5350开发板
    【OpenWRT】【RT5350】【一】OpenWrt开发环境搭建
    2013总结
    [原创]cocos2dx加载网络图片&异步加载图片
    json 对c++类的序列化(自动生成代码)
    [奇思幻想] 开发过程中的一些设想记录中(持续更新....)
    GNU Makefile编写
    c语言到汇编的学习
  • 原文地址:https://www.cnblogs.com/zhaobin022/p/5057218.html
Copyright © 2020-2023  润新知