Ejemplo n.º 1
0
        sta_id)
    s_conn_str = mysql.GetSingleValue(mysql_conn, s_str)

    s_str = """select concat(username, '/', password, '@', host, ':', port, '/', dsn) from db_cfg_oracle where id=%s """ % (
        sta_id)
    s_nopass_str = mysql.GetSingleValue(mysql_conn, s_str)

    logger.info("The standby database is: " + s_nopass_str + ", the id is: " +
                str(sta_id))

    s_conn = oracle.ConnectOracleAsSysdba(s_conn_str)

    try:
        common.operation_lock(mysql_conn, group_id, 'SNAPSHOT_STOP')

        common.init_op_instance(mysql_conn, group_id,
                                'SNAPSHOT_STOP')  #初始化切换实例

        if s_conn is None:
            logger.error("Connect to standby database error, exit!!!")
            common.update_op_reason(mysql_conn, group_id, 'SNAPSHOT_STOP',
                                    '连接数据库失败')
            common.update_op_result(mysql_conn, group_id, 'SNAPSHOT_STOP',
                                    '-1')
            sys.exit(2)

        common.log_dg_op_process(mysql_conn, group_id, 'SNAPSHOT_STOP',
                                 '准备退出演练模式', 10, 2)
        res = stop_mrp(mysql_conn, group_id, s_conn, s_conn_str, sta_id)
        if res == 0:
            update_mrp_status(mysql_conn, sta_id)
            common.update_op_result(mysql_conn, group_id, 'SNAPSHOT_STOP', '0')
Ejemplo n.º 2
0
    s_nopass_str = mysql.GetSingleValue(mysql_conn, s_str)
	
    p_dest_str = """select (case when t.primary_db_id = %s then t.primary_db_dest else t.standby_db_dest end) as dest_id from db_cfg_oracle_dg t where t.id = %s """ %(pri_id, group_id)
    p_dest_id = mysql.GetSingleValue(mysql_conn, p_dest_str)

    logger.info("The primary database is: " + p_nopass_str + ", the id is: " + str(pri_id))
    logger.info("The standby database is: " + s_nopass_str + ", the id is: " + str(sta_id))
	
    p_conn = oracle.ConnectOracleAsSysdba(p_conn_str)
    s_conn = oracle.ConnectOracleAsSysdba(s_conn_str)
	
		
    try:
        common.operation_lock(mysql_conn, group_id, 'MRP_START')
    
        common.init_op_instance(mysql_conn, group_id, 'MRP_START')					#初始化操作实例
    
        if s_conn is None:
            logger.error("Connect to standby database error, exit!!!")
            
            common.update_op_reason(mysql_conn, group_id, 'MRP_START', '连接数据库失败')
            common.update_op_result(mysql_conn, group_id, 'MRP_START', '-1')
            sys.exit(2)
        
        common.log_dg_op_process(mysql_conn, group_id, 'MRP_START', '准备开始启动同步进程', 10, 2)
        res = start_mrp(mysql_conn, group_id, s_conn, s_conn_str, sta_id)
        if res ==0:
            update_mrp_status(mysql_conn, sta_id)
            common.update_op_result(mysql_conn, group_id, 'MRP_START', '0')
            
        enable_rfs(mysql_conn, p_conn, p_dest_id)
Ejemplo n.º 3
0
    shift_vip_str = """select t.shift_vip from db_cfg_oracle_dg t where id = %s """ % (
        group_id)
    is_shift = mysql.GetSingleValue(mysql_conn, shift_vip_str)

    dg_pid_str = """select t.primary_db_id from db_cfg_oracle_dg t where id = %s """ % (
        group_id)
    dg_pid = mysql.GetSingleValue(mysql_conn, dg_pid_str)

    dg_sid_str = """select t.standby_db_id from db_cfg_oracle_dg t where id = %s """ % (
        group_id)
    dg_sid = mysql.GetSingleValue(mysql_conn, dg_sid_str)

    try:
        common.operation_lock(mysql_conn, group_id, 'SWITCHOVER')  # 加锁

        common.init_op_instance(mysql_conn, group_id, 'SWITCHOVER')  #初始化切换实例

        # connect to oracle
        p_conn = oracle.ConnectOracleAsSysdba(p_conn_str)
        s_conn = oracle.ConnectOracleAsSysdba(s_conn_str)
        if p_conn is None:
            common.log_dg_op_process(mysql_conn, group_id, 'SWITCHOVER',
                                     '连接主库失败,请根据相应日志查看原因', 10, 5)
            logger.error("Connect to primary database error, exit!!!")

            common.update_op_reason(mysql_conn, group_id, 'SWITCHOVER',
                                    '连接主库失败')
            common.update_op_result(mysql_conn, group_id, 'SWITCHOVER', '-1')
            sys.exit(2)
        if s_conn is None:
            common.log_dg_op_process(mysql_conn, group_id, 'SWITCHOVER',
Ejemplo n.º 4
0
    
    s_str = """select concat(username, '/', password, '@', host, ':', port, '/', dsn) from db_cfg_oracle where id=%s """ %(sta_id)
    s_conn_str = mysql.GetSingleValue(mysql_conn, s_str)

    s_str = """select concat(username, '/', password, '@', host, ':', port, '/', dsn) from db_cfg_oracle where id=%s """ %(sta_id)
    s_nopass_str = mysql.GetSingleValue(mysql_conn, s_str)
	
    logger.info("The standby database is: " + s_nopass_str + ", the id is: " + str(sta_id))
	
    s_conn = oracle.ConnectOracleAsSysdba(s_conn_str)
	
	
    try:
        common.operation_lock(mysql_conn, group_id, 'MRP_STOP')
    
        common.init_op_instance(mysql_conn, group_id, 'MRP_STOP')					#初始化切换实例
        
        if s_conn is None:
            logger.error("Connect to standby database error, exit!!!")
            
            common.update_op_reason(mysql_conn, group_id, 'MRP_STOP', '连接数据库失败')
            common.update_op_result(mysql_conn, group_id, 'MRP_STOP', '-1')
            sys.exit(2)
        
        common.log_dg_op_process(mysql_conn, group_id, 'MRP_STOP', '准备开始停止同步进程', 10, 2)
        res = stop_mrp(mysql_conn, group_id, s_conn, s_conn_str, sta_id)
        if res ==0:
            update_mrp_status(mysql_conn, sta_id)
            common.update_op_result(mysql_conn, group_id, 'MRP_STOP', '0')
        else:
            common.update_op_result(mysql_conn, group_id, 'MRP_STOP', '-1')