Ошибка восстановления резервной копии из SQL2K в SQL2008R2 - PullRequest
0 голосов
/ 28 сентября 2010

Я восстанавливаю базу данных пользователей SQL 2000 в окне SQL 2008 R2, но иногда я получаю следующую ошибку. Это журнал SQL.

22.11.2010 09:32:00 | SPID61 | Запуск базы данных «DB_OPP_P_2».

22.11.2010 09:32:00 | SPID61 | база данных 'DB_OPP_P_2' помечена Восстановление и находится в состоянии, которое делает не разрешать запуск восстановления.

22/11/2010 09:32:33 | SPID61 | Запуск базы данных «DB_OPP_P_2».

22/11/2010 09:32:33 | SPID61 | Восстановление записывает контрольную точку в базу данных «DB_OPP_P_2» (51). Это только информационное сообщение. Никаких действий пользователя не требуется.

22.11.2010 09:32:36 | SPID61 | Ошибка: 928, серьезность: 20, состояние: 1.

22.11.2010 09:32:36 | SPID61 | Во время обновления база данных вызвала исключение 156, серьезность 25, состояние 1, адрес 0000000002225A9F. Используйте номер исключения для определения причины.

Поскольку это показывает, что исключение произошло во время фазы обновления, я думаю, что это произошло после того, как процент восстановления достиг 100%.

Я реализовал сценарий повторной попытки этого восстановления, и все 5 раз он не выполнялся. Однако, если я повторю попытку вручную с тем же сценарием восстановления, восстановление завершится. Я запустил DBCC CHECKDB на источнике, и никакой ошибки не было возвращено.

Уровень совместимости базы данных - 80 (sql 2000), а версия - 539.

Во время работы помощника по обновлению проблемной базы данных того времени я вижу 27 объектов со старым синтаксисом внешнего соединения * =, = *

К сожалению, я не смогу сменить процы, чтобы проверить, виноват ли это. Еще одна возможность состоит в том, что есть много проков, которые не имеют BEGIN и END, разграничивающих его расширения, и если я создаю их в пакете, это приводит в замешательство SQL.

UPDATE:

  • Я успешно восстановил базу данных в окне SQL 2000.
  • Я также реализовал повторную попытку на моей работе, которая не выполнялась все 5 раз.

Повторить попытку не удалось. Но странно то, что если я повторяю попытку с тем же сценарием восстановления, задание пытается выполнить восстановление успешно.

ОБНОВЛЕНИЕ 2: Я вручную восстановил базу данных при переходе на sql 2008 r2. Так что я не исправил эту проблему и не исправлю ее, так как на SQL 2008 R2 это не происходит. Спасибо за вашу помощь.

Ответы [ 2 ]

1 голос
/ 28 сентября 2010

Проверьте совместимость баз данных в SQL Server 2000: они 65?

Ошибка 156, в основном, неправильный синтаксис, и обычно это вызвано несоответствием совместимости.«65» не поддерживается в SQL Server 2008

Вы пробовали советник по обновлению перед резервным копированием / восстановлением?

Редактировать:

Внешнее соединение.Хммм

Только что заметил, что для SQL Server 2005 он прекращен , но для SQL Server 2008 он устарел .Я предполагаю, что синтаксис *0 и 0* разрушает вещи, независимо от того, что говорит консультант по обновлению и MSDN.Лично я не использовал его с тех пор, как я перешел на SQL Server 7 с 6.5 ...

0 голосов
/ 16 февраля 2011

Я вручную восстановил базу данных при переходе на sql 2008 r2.

Так что я не исправил эту проблему и не исправлю ее, так как перешел на sql 2008 r2 и этого больше не происходит.

Большое спасибо за помощь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...