Процесс обновления с SQL Server 2000 до SQL Server 2012

8

У меня есть база данных SQL Server 2000, которую я хотел бы обновить до SQL Server 2012 (работающей на другом сервере).

Я не думаю, что есть прямой путь обновления, но если есть, что это?

Мой текущий план:

  1. Резервное копирование базы данных SQL Server 2000
  2. Восстановление на сервере с установленным SQL Server 2008
  3. Установите уровень совместимости 100(SQL Server 2008 / SQL Server 2008 R2)
  4. Резервное копирование базы данных с сервера SQL Server 2008
  5. Восстановление на сервере с установленным SQL Serevr 2012
  6. Установите уровень совместимости 110(SQL Server 2012)

Я делаю ненужные шаги? Я что-то упускаю (например, запускаю утилиты для определения использования неподдерживаемого Transact-SQL)?

автоматический
источник
Вы по-прежнему хотите делать такие вещи, как обновление статистики, но в противном случае ваш процесс кажется мне правильным.
Аарон Бертран
Не должно быть 2008 / R2 - 2005 поддерживается в 2012 году.
OMG Ponies

Ответы:

5

Нет, как я понимаю, ты ничего не пропустил. Я обновил одну из своих баз данных с SQL Server 2000 до SQL Server 2012.

Другой способ - обновить весь сервер - в этом случае вы можете использовать мастер обновления.

ОБНОВЛЕНИЕ: мой процесс обновления прошел успешно, но будьте осторожны с устаревшими и устаревшими функциями SQL Server 2008 и 2012.

Alex_L
источник
Существует ли автоматизированный способ определения этих устаревших и устаревших функций?
автомат
Что касается 2000-> 2008, этот способ заключается в использовании мастера обновления. В вашем SQL Server 2000 вы должны запустить установку SQL Server 2008, а затем выбрать Планирование -> Установить обновление adwizor. После установки попробуйте запустить его. Но я не пытался сделать это на Windows 2000, возможно, этот метод не будет работать.
Alex_L
1
Вы не можете выполнить обновление непосредственно с 2000 по 2012 год. Сначала вам нужно будет выполнить обновление до 2005/2008/2008 R2, обновить уровень совместимости ваших баз данных до 90 или 100, а затем обновить до 2012 года.
Аарон Бертран
@AaronBertrand - обязательно ли менять уровень совместимости для процесса обновления?
StanleyJohns
2
Да, потому что SQL Server 2012 не поддерживает совместимость 80 (2000). Вам не нужно менять его полностью до 110, но вы должны держать его только в 90 или 100, если у вас есть веская причина ...
Аарон Бертран
1

Обратите внимание, например, на столбцы, содержащие сообщения в блоге.

В text, ntextи imageтипы данных часто используются в SQL Server 2000, которые не рекомендуется в SQL Server 2012 (хотя они все еще доступны), и должны быть заменены varchar(max), nvarchar(max)и varbinary(max)типы данных, соответственно.

mjjjj2001
источник
1

Вот быстрый запрос, чтобы увидеть, используют ли какие-либо из ваших таблиц устаревшие типы данных.

SELECT  sys.objects.NAME AS [table_name] ,
        sys.columns.NAME AS [column_name] ,
        sys.types.NAME AS [data_type]
FROM    ( sys.columns
          INNER JOIN sys.objects ON sys.objects.object_id = sys.columns.object_id
        ) INNER JOIN sys.types ON sys.types.system_type_id = sys.columns.system_type_id
WHERE   sys.types.name IN ( 'text', 'ntext', 'image' )
RThomas
источник