Перехід із SQL Server 2000 на 2012 рік без примірника 2005 або 2008


11

Я натрапив на три старі бази даних, що знаходяться на SQL Server 2000, які мені потрібно перенести до 2012 року. Я вважаю, що стандартним підходом є відновлення в екземплярі 2005 або 2008 років, оновлення, реекспорт і, нарешті, відновлення до 2012 року.

Штраф, за винятком випадків, коли ми не маємо примірників 2005 або 2008 років.

Чи існують якісь обхідні шляхи чи інші методи, які варто спробувати?

Для інформації, бази даних містять лише 15-20 таблиць і кілька переглядів, вони здаються дуже простими, а резервні копії мають розмір лише 100-200 МБ.


1
Оскільки ваша база даних невелика, ви можете скриптувати всю базу даних - схему (без даних - за допомогою PowerShell або SSMS), а потім використовувати bcp OUT та масову вставку . Як тільки ви закінчите з переміщенням даних, ви зможете дотримуватися кращих практик, викладених у цій відповіді
Кін Шах

1
це цілком законно і охоплено ліцензуванням sql для встановлення проміжного примірника як "міст" для оновлення. жоден користувач не повинен підключатися до нього. ...
Ростол

Відповіді:


21

Ні, немає шляхів оновлення бази даних безпосередньо з 2000 по 2012 рік.

Оскільки у вас немає тонни даних, ви можете робити всілякі речі для переміщення даних (але не базу даних в цілому), включаючи:

  • Майстер імпорту / експорту
  • SSIS
  • BCP
  • Вручну запити за допомогою пов'язаного сервера з 2012 року або програми

Однак це не обов'язково призведе до інших речей, таких як користувачі, дозволи, ролі тощо. І не все створить ваші об'єкти в правильному порядку залежності. Так вони більше працюють і схильні до помилок. На мій досвід, варто було б просто встановити проміжний екземпляр тимчасово, а потім зробити дві операції резервного копіювання + відновлення - що буде простішим, швидшим та менш схильним до помилок, ніж будь-який із перерахованих вище методів.

Якщо ваші бази даних менше 10 Гб, ви можете встановити копію Express (безкоштовно) за кілька хвилин і скористатися нею. Ви можете завантажити 2008 R2 Express тут . Я не думаю, що в 2000 р. Немає жодних функцій Enterprise навколо структури баз даних тощо, які б блокували це оновлення (більша стурбованість більш сучасними версіями).

Якщо ваша база даних занадто велика для Express, ви зможете знайти версію для розробників за ціною 49 доларів (або навіть дешевше - я знайшов 2005 року на eBay за 37 доларів ), або якщо у вас підписка на MSDN, ви маєте змогу отримати будь-яку SKU звідти.

Або ви можете піти з використання версії Evaluation, яка дивно все ще пропонується для завантаження для старих версій (наприклад, я знайшла тут 2008 р. ), Однак я на телефоні, тому не змогла підтвердити завантаження для цієї версії, як і раніше працює .


Спасибі. Оскільки швидкість Інтернету тут погана, я намагався уникати завантажень, але я виявив, що встановити бінарні файли 2005 року, тому я думаю, що це буде найшвидший метод.
Lunatik

ні, єдиний справді корисний - 2008 рік, інакше вам також знадобиться 2010 з 2005 року
Ростол


@AdamNofsinger я збирався сказати на 100% впевнений, що я зробив це в мільйон разів (у нас старий SQL 2000 використовується старою системою) і маю в 2008 році побудовану мету, щоб спочатку відновити дані, а потім створити резервне копіювання та відновлення до SQL 2016 ... Але якщо Пол Рандал каже інше ... але майте на увазі, що прямий метод працює з 2005 року. не для прямих 2000 та 2003 років.
Ростол

6

Заявлення про відсутність вирішення здається трохи передчасним.

Ви кажете, що ваша база даних містить лише кілька таблиць і подань. Чому б не експортувати схеми таблиць і представлень у вигляді SQL створювати заяви та запускати їх у вашу цільову базу даних? Потім можна також експортувати фактичні дані у щось на зразок формату CSV та імпортувати їх у цільову базу даних, а можливо, навіть написати щось у C # / C ++ / тощо, щоб експортувати / імпортувати фактичні дані.

Вам не потрібно витрачати копійки на нові екземпляри SQL Server, які вам в кінцевому рахунку не потрібні.


3
І включайте всі інші об'єкти, збережені процедури, тригери, функції тощо. Так само є утиліта BCP для копіювання даних із бази даних та до неї.
RLF

1
Спасибі. Можливо, на це я сподівався саме такої речі, але спір з БД - це не моя щоденна робота, і я не дуже впевнений, чи є якісь інші залежності чи налаштування (дозволи користувачів та ін.), Які не будуть скопійовані, якщо я просто експортували таблиці тощо.
Lunatik

4
Досить справедливо, оновив мою відповідь. Все-таки думаю, що вирішення проблеми - це набагато більше роботи, ніж просто тимчасове встановлення екземпляра та виконання двох надійних операцій резервного копіювання + відновлення, не схильних до помилок. (Крім того, це, мабуть, не стосується грошей , оскільки в ОП вже є бінарні файли 2005 року, а база даних, яка мала, має бути здатна перенести за допомогою SQL Express у будь-якому разі.)
Аарон Бертран

3

Ні, ви не можете перенести його безпосередньо з 2000 по 2012 рік.

Що ви можете зробити, це встановити тимчасовий примірник 2005 або АБО 2008R2 2008, відновити тут базу даних 2000. Після завершення тепер можна оновити встановлений екземпляр, взявши резервну копію бази даних з цього примірника і відновивши його на sql-сервер 2012.

Вам доведеться зробити міграцію в два етапи:

  • Крок 1: Зробіть, наприклад, першу міграцію з SQL 2000 на SQL 2008. Потрібно бути SQL 2000 SP4, після чого виконайте цей крок: Перехід SQL Server 2000 на SQL Server 2008

  • Крок 2: Зробіть другу міграцію з SQL Server 2008 на 2012 рік.


0

Ви кажете, що "натрапили на три старі бази даних, що сидять на SQL Server 2000", що приводить мене до думки, що вам потрібні лише дані. Я б здогадався, що якби вони керували ціллю, ви знали б. Якщо це так, ігноруйте всі запитання користувачів, безпеку тощо.

Майстер імпорту / експорту всіх таблиць Сценарій збережених процедур та подань Перевірте наявність планів технічного обслуговування та завдань агента просто для документування процесів, які ви можете переглянути згодом.


0

Ви не можете перейти безпосередньо з SQL Server 2000 до SQL Server 2012, і якщо ви спробуєте це зробити, ви отримаєте наступну помилку № 3169, яка пов’язана з проблемами сумісності.

Перехід на SQL Server 2012 можна здійснити з однієї з наступних версій (мінімальні версії) SQL Server 2005 SP4 або SQL Server 2008 SP2 або SQL Server 2008 R2 SP1.

Отже, на першому кроці з переходу з SQL Server 2000 на одну з цих версій я знайшов одного із порадників з оновлення для SQL Server 2008 за наступним посиланням . Щоб переконатися, що все буде працювати безперебійно перед початком процесу відновлення, потрібно запустити додаток. Потім «Запустіть майстер аналізу оновлення порадника» та виконайте кроки майстра.

Після отримання звіту потрібно відновити базу даних на цільовому SQL Server 2005 SP4 або SQL Server 2008 SP2 або SQL Server 2008 R2 SP1 та запустити на ній рівень сумісності (ви можете знайти її в опції бази даних). Для входу в систему SQL Server, будь ласка, дотримуйтесь інструкцій за наступним посиланням .

Коли це буде завершено, тепер вам потрібно перейти на SQL Server 2012, повторивши ті ж дії з сервера, на який ви здійснили першу міграцію.


0

По-перше, я згоден, вам не слід мігрувати безпосередньо з 2000 по 2012 рік. Я думаю, що цей процес був добре висвітлений. Я хотів би запропонувати вам дізнатися напевно, чи хтось використовує бази даних і для чого він використовує. Можливо, вони не використовуються. Це трапляється, і якщо це так, то у вас немає ніяких турбот. Можливо, додавання 2 або 3 таблиць та даних (для 2000 використання bcp, якщо ви хочете отримати дані для окремої таблиці її простою та надійною) до існуючої бази даних 2012 буде задовольняти потреби користувачів. Якщо ви це зробите, то створіть нові таблиці в базі даних 2012 року та виконайте bcp дані, які вам потрібні для csv, якщо ви хочете, їх можна повернути назад. Якщо вам потрібно перенести більше таблиці або двох, то найпростіший і безпечний і найкращий спосіб - це зробити двоступеневу міграцію. Дон '


Ви повинні знати, що сценарій схеми в 2000 році не був на 100% точним. Пам’ятаю, завжди доводилося редагувати сценарій.
dkh63493
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.