Как я удостоверяюсь, что репликация sql server работает?

Вы можете присвоить fieldset или div идентификатор и привязать к нему событие изменения ... событие должно распространяться от внутренних потомков.

var somethingChanged = false;
$('#fieldset_id').change(function(e)
{
    // e.target is the element which triggered the event
    // console.log(e.target);
    somethingChanged = true;
});

Кроме того, если вы хотите иметь функцию прослушивания одного события, вы можете поместить событие изменения в форму, а затем проверить, какой набор полей изменился:

$('#form_id').change(function(e)
{
    var changedFieldset = $(e.target).parents('fieldset');
    // do stuff
});
1
задан Damovisa 16 June 2009 в 23:50
поделиться

2 ответа

Мы получили электронные письма, отправленные нам в случае сбоев репликации слиянием. Я не использовал репликацию транзакций, но полагаю, что вы можете настроить аналогичные предупреждения.

Самый простой способ - настроить его через Replication Monitor.

Перейдите в Replication Monitor и выберите конкретную публикацию. Затем выберите вкладку «Предупреждения и агенты» и настройте конкретное предупреждение, которое хотите использовать. В нашем случае это Replication: Agent Failure.

Для этого предупреждения у нас есть Response, настроенный на выполнение задания, которое отправляет электронное письмо. Это задание может также выполнять некоторую работу по включению сведений о том, что не удалось, и т. Д.

Это работает достаточно хорошо, чтобы предупредить нас о проблеме, чтобы мы могли исправить ее сразу.

1
ответ дан 3 September 2019 в 01:23
поделиться

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

Если у вас есть какая-либо форма таблицы аудита, то есть очень регулярно обновляется (т.е. в нашем основном продукте есть базовая таблица аудита, в которой перечислены все действия, которые приводят к обновлению или удалению данных), тогда вы можете запросить эту таблицу на обоих серверах и убедиться, что результат, который вы получите, тот же. Что-то вроде:

SELECT CHECKSUM_AGG(*) 
FROM   audit_base 
WHERE  action_timestamp BETWEEN <time1> AND BETWEEN <time2> 

где и - округленные значения, чтобы учесть различные задержки при обращении к базам данных. Например, если вы проверяете в десять часов второго часа, вы можете проверять элементы с начала последнего часа до начала этого часа. Теперь у вас есть два небольших значения, которые вы можете куда-то передать и сравнить. Если они разные, то, скорее всего, что-то пошло не так в процессе репликации - пусть при проверке / сравнении вам будет отправлено электронное письмо и SMS, чтобы вы знали, что нужно проверить и исправить любую проблему, которая требует внимания.

При использовании SELECT CHECKSUM_AGG (*) объем данных для каждой таблицы очень и очень мал, поэтому использование полосы пропускания проверками будет незначительным. Вам просто нужно убедиться, что ваши проверки не слишком дороги в нагрузке, которая применяется к серверам, и что вы не проверяете данные, которые могут быть частью транзакций открытой репликации, поэтому в этот момент можно ожидать, что они будут другими (следовательно, проверка контрольный журнал на несколько минут назад, а не сейчас, как в моем примере), иначе вы получите слишком много ложных срабатываний.

В зависимости от структуры вашей базы данных приведенное выше может оказаться непрактичным. Для таблиц, которые не предназначены только для вставки (без обновлений или удалений) в течение периода времени вашей проверки (например, контрольный журнал, как указано выше), выяснение того, что можно безопасно сравнивать, избегая ложных срабатываний, вероятно, будет сложным и дорогостоящим, а то и невозможным.

Если у вас его еще нет, вы можете изготовить роликовый стол только для вставок, имея небольшая таблица (содержащая только индексированный столбец с меткой времени), в которую вы регулярно добавляете одну строку - эти данные не служат никакой цели, кроме как существовать, поэтому вы можете проверить, что обновления таблицы реплицируются. Вы можете удалить данные старше вашего окна проверки, чтобы таблица не увеличивалась. Только тестирование одной таблицы не доказывает, что все остальные таблицы реплицируются (или любые другие таблицы, если на то пошло), но обнаружение ошибки в этой таблице было бы хорошей проверкой (если эта таблица не обновляется в реплике, то другие, вероятно, не

1
ответ дан 3 September 2019 в 01:23
поделиться
Другие вопросы по тегам:

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