В настоящее время вы работаете в автономном режиме; ожидается повторное подключение к Интернету

BUG: sp_change_secondary_role сбой с 3101 ошибка, если есть, баланс журнала транзакций резервное копирование

ВНИМАНИЕ! Перевод данной статьи был выполнен не человеком, а с помощью программы машинного перевода, разработанной корпорацией Майкрософт. Корпорация Майкрософт предлагает вам статьи, переведенные как людьми, так и средствами машинного перевода, чтобы у вас была возможность ознакомиться со статьями базы знаний KB на родном языке. Однако машинный перевод не всегда идеален. Он может содержать смысловые, синтаксические и грамматические ошибки, подобно тому как иностранец делает ошибки, пытаясь говорить на вашем языке. Корпорация Майкрософт не несет ответственности за неточности, ошибки и возможный ущерб, причиненный в результате неправильного перевода или его использования. Корпорация Майкрософт также часто обновляет средства машинного перевода.

Эта статья на английском языке:294397
Эта статья помещена в архив. Она предлагается "как есть" и обновляться не будет.
ОШИБКА #: 352508 (SHILOH)
Проблема
Выполнениеsp_change_secondary_roleхранимую процедуру на резервном сервере пары доставки журналов не сообщением об ошибке 3101, если выполняются оба следующие условия:

  • Передается значение 1@ прерыванияАргумент. Обратите внимание, что это является также значением по умолчанию для данного параметра.
  • Имеется по крайней мере один журнал необработанных транзакций применение на резервном сервере.
При запуске задания RESTORE LOG на резервном сервере с помощьюxp_sqlmaintна этом этапе расширенной процедуры, выводится следующий результат:
Источник базы данных - тестирование
Целевая база данных - тестирование
[Microsoft SQL-DMO (SQLState ODBC: 42000)]
Ошибка 3101: Монопольного доступа [Microsoft] [SQL Server драйвер ODBC] [SQL Server] не может быть получен, так как база данных уже используется.
[Microsoft][Драйвер ODBC SQL Server][SQL Server]Выполняется аварийное завершение RESTORE LOG.
Загруженные файлы 0
NULL,
По завершении загрузки для плана SERVER1\INST1.test_logshipping

Сервер: Сообщение 22029, уровень 16, состояние 1, строка 0
не удалось sqlmaint.exe.
Причина
Если между двумя серверами настроена доставка журналов и нужно перенести дополнительный или резервный сервер в оперативный режим, можно запуститьsp_change_secondary_roleХранимая процедура на резервном сервере, чтобы вызвать дополнительный или резервный сервер в оперативный режим. При выполненииsp_change_secondary_roleхранимые процедуры с параметрами по умолчанию, хранимая процедура выполняет следующие задачи:

  • Задает резервной базы данных в однопользовательский режим.
  • Копирует все дополнительные файлы, которые необходимо скопировать.
  • Отключение задание копирования на резервном сервере.
  • Восстанавливает все журналы транзакций, ожидающих обработки.
  • База данных переводится в оперативный режим на сервере-получателе.
  • Выполняет некоторые организующее план таблицы доставки журналовmsdbбазы данных, так как эти данные теперь должен быть обновлен.
Еслиsp_change_secondary_roleХранимая процедура передается значение@ прерывания= 1 (который также является значением по умолчанию входные значения для@ прерыванияиспользует элемент 1 предыдущей последовательности параметр)
ALTER DATABASE dbname SET SINGLE_USER
команда изменить состояние базы данных и убедитесь, что не подключены пользователи при попытке выполнить операцию RESTORE. Тем не менее инструкция ALTER DATABASE приводит к его блокировки общей базы данных, которая остается в силе до завершения соединения. Пункты 2 и 4 выполняется с помощьюxp_sqlmaintРасширенная процедура, которая открывается отдельное подключение к серверу, так что эти действия используйте (идентификатор процесса сервераSPID), отличается отSPIDоригиналаsp_change_secondary_roleИнтернету.. В результате блокировку общей базы данных, которая удерживается блоки spid хранимой процедуры RESTORE LOG задачxp_sqlmaintпытается выполнить. Следовательноsp_change_secondary_roleпроцедура выдает сообщение об ошибке 3101.
Временное решение
Чтобы избежать этой ошибки, используйте один из следующих решений:
  • Убедитесь, что нет журналов транзакций, ожидающих обработки перед выполнениемsp_change_secondary_roleХранимая процедура. Запуск задания RESTORE на сервере-получателе, прежде чем запустить вручнуюsp_change_secondary_roleгарантирует, что нет журналов транзакций, ожидающих обработки.

    -ИЛИ-
  • Можно передать значение ноль для@ прерыванияпараметр (@ завершения = 0) во время выполненияsp_change_secondary_roleХранимая процедура. Пользователь должен убедиться, что нет пользователей, подключенных к базе данных до выполнения хранимой процедуры, чтобы убедиться, что инструкция RESTORE LOG успешно работает.
Статус
Данное поведение является подтвержденной ошибкой SQL Server 2000..
Дополнительная информация
sp_change_secondary_roleявляется системной хранимой процедуры, которые на резервном сервере требуется переведите резервный сервер в оперативный режим.

Ссылки

Электронная документация по SQL Server; раздела: «Как установить и выполнить изменение роли (Transact-SQL) доставки журналов»

Внимание! Эта статья переведена автоматически

Свойства

Номер статьи: 294397 — последний просмотр: 12/06/2015 01:43:50 — редакция: 3.0

Microsoft SQL Server 2000 Enterprise Edition, Microsoft SQL Server 2000 Developer Edition

  • kbnosurvey kbarchive kbbug kbpending kbmt KB294397 KbMtru
Отзывы и предложения