MySQL: Кардиостимулятор не может запустить неудавшееся ведущее устройство как новое ведомое устройство?

Они не могут быть ежедневными объектами, они могут быть еженедельно или ежемесячно, но Вы определенно хотите управлять журналами IIS, чтобы удостовериться, что они не едят слишком много пространства на жестком диске на сервере.

Кроме того, при хранении резервных копий SQL на сервере, Вы захотите управлять ими и в зависимости от Вашей модели восстановления SQL и стратегии резервного копирования, Вы захотите следить за ростом журнала транзакций также.

7
задан 14 July 2012 в 14:18
1 ответ

Эврика!

Мы оба забыли очень очень важный файл журнала, это ... /var/log/mysqld.log :

socket: '/var/lib/mysql/mysql.sock'  port: 3306  MySQL Community Server (GPL) by Atomicorp
[Note] Slave SQL thread initialized, starting replication in log 'mysql-bin.000082' at position 58569, relay log './mysqld-relay-bin.000002' position: 58715
[Note] Slave I/O thread: connected to master 'repl@192.168.6.38:3306',replication started in log 'mysql-bin.000082' at position 58569
[Warning] Aborted connection 10 to db: 'unconnected' user: 'test_user' host: 'localhost' (init_connect command failed)
[Warning] The MySQL server is running with the --read-only option so it cannot execute this statement
[Note] /usr/libexec/mysqld: Normal shutdown

Как вы можете догадаться, я отслеживал активность пользователей, объединив binlog и init-connect :

init_connect = "ВСТАВИТЬ В audit.accesslog (connect_time, user_host, connection_id) ЗНАЧЕНИЯ (СЕЙЧАС (), CURRENT_USER (), CONNECTION_ID ()); "

но serve-6192 устанавливается только для чтения при запуске в качестве ведомого, а затем, когда кардиостимулятор выполняет операцию мониторинга с помощью test_user : команда

    # Check for test table
    ocf_run -q $MYSQL $MYSQL_OPTIONS_TEST \
        -e "SELECT COUNT(*) FROM $OCF_RESKEY_test_table"

init_connect завершилась ошибкой с указанной выше ошибкой:

Сервер MySQL работает с параметром - только для чтения , поэтому он не может выполнить этот оператор

Решение состоит в том, что я должен установить для параметра init_connect пустую строку перед инициализацией действия монитора (не забудьте вернуть его обратно при назначении узла мастером)

Всем, кто использует планировщик событий : также обратите внимание, что вы должны включить его при повышении подчиненного до главного:

set_event_scheduler() {
    local es_val
    if ocf_is_true $1; then
        es_val="on"
    else
        es_val="off"
    fi
    ocf_run $MYSQL $MYSQL_OPTIONS_REPL \
        -e "SET GLOBAL event_scheduler=${es_val}"
}

get_event_scheduler() {
    # Check if event-scheduler is set
    local event_scheduler_state

    event_scheduler_state=`$MYSQL $MYSQL_OPTIONS_REPL \
        -e "SHOW VARIABLES" | grep event_scheduler | awk '{print $2}'`

    if [ "$event_scheduler_state" = "ON" ]; then
        return 0
    else
        return 1
    fi
}

mysql_promote() {
    local master_info

    if ( ! mysql_status err ); then
        return $OCF_NOT_RUNNING
    fi
    ocf_run $MYSQL $MYSQL_OPTIONS_REPL \
        -e "STOP SLAVE"

    # Set Master Info in CIB, cluster level attribute
    update_data_master_status
    master_info="$(get_local_ip)|$(get_master_status File)|$(get_master_status Position)"
    ${CRM_ATTR_REPL_INFO} -v "$master_info"
    rm -f $tmpfile

    set_read_only off || return $OCF_ERR_GENERIC
    set_event_scheduler on || return $OCF_ERR_GENERIC

Также не забудьте выключить его при понижении уровня:

    'pre-demote')
        # Is the notification for our set
        notify_resource=`echo $OCF_RESKEY_CRM_meta_notify_demote_resource|cut -d: -f1`
        my_resource=`echo $OCF_RESOURCE_INSTANCE|cut -d: -f1`
        if [ $notify_resource != ${my_resource} ]; then
            ocf_log debug "Notification is not for us"
            return $OCF_SUCCESS
        fi

        demote_host=`echo $OCF_RESKEY_CRM_meta_notify_demote_uname|tr -d " "`
        if [ $demote_host = ${HOSTNAME} ]; then
            ocf_log info "post-demote notification for $demote_host"
            set_read_only on
            set_event_scheduler off

С уважением,

2
ответ дан 2 December 2019 в 23:50

Теги

Похожие вопросы