Перенос данных из SQL Server 2005 в 2016 г.

9

Я новичок в администрировании SQL Server, но мне хорошо с языком SQL и созданием пакетов служб SSIS.

Я хочу перенести данные с SQL Server 2005 на 2016 год.

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

Что было бы рекомендуемой процедурой в этом случае.

Роберт
источник
Вы пытаетесь обновить производственный экземпляр? т.е. вам нужны те же логины, индексы, хранимые процы и тд? На самом деле, ваш вопрос действительно довольно широкий. Пожалуйста, возьмите тур и прочитайте справочный центр о том, как задавать хорошие вопросы. Спасибо!
Макс Вернон

Ответы:

7

Макс дал достойный ответ, который я опрошу, когда закончу печатать этот альтернативный вид.

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

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

Вы также спросили об индексах, хранимых процедурах, представлениях. Эти элементы на уровне базы данных должны находиться внутри пользовательской базы данных. Поэтому, когда вы восстанавливаете базу данных X на новый сервер, все объекты базы данных (таблицы, пользователи, представления, процедуры, функции и т. Д.) Также будут там.

В системных базах данных имеются задания, имена входа, оповещения, связанные серверы, ключи шифрования и т. Д. Элементы уровня экземпляра.

Мне нравится просматривать их и переходить на то, что мне нужно, используя различные сценарии - в последнее время это сценарии PowerShell DBATools.Io . Мне особенно нравится использовать их скрипт для копирования логинов sql , потому что он обрабатывает аутентифицированных пользователей SQL, сохраняя их пароли и идентификаторы безопасности одинаковыми, так что пользователи базы данных из этих логинов будут работать. У них также есть целая команда миграции на SQL Server, которая выполняет свои подкоманды для копирования элементов, которые я обычно копирую.

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

Майк Уолш
источник
Спасибо за Ваш ответ. Я не хочу обновлять с 2005 до 2016 года. Я хочу перенести базу данных из экземпляра, который больше не используется на SQL Server 2005, в существующий экземпляр в 2016 году. Эта миграция еще не утверждена, но я хочу подготовиться, когда оно делает. По сути, я получил этот проект, потому что я единственный, кто имеет опыт работы с SQL в части запросов и создания пакетов служб SSIS. Я также был обеспокоен проблемами совместимости. Еще раз спасибо.
Роберт
Конечно - но при переходе с 2005 на 2016 год - вы делаете обновление. Вы делаете обновление и миграцию. Потому что вы переносите базу данных из одной версии SQL в другую - это наверняка подразумевает обновление. Вам следует запустить советник по обновлению вашей базы данных.
Майк Уолш
Что делать, если SQL Server 2005 размещается на Windows Server 2003 R2 x86, а SQL Server 2016 установлен на более новой ОС.
Роберт
@MikeWalsh Я согласен почти со всем, что вы описали в своем ответе. Я тоже следую почти всем этим при выполнении обновления / миграции SQL
nam
4

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

Мастер хранит такие элементы, как логины, сертификаты безопасности и т. Д.

msdb содержит подробную информацию о резервных копиях и хранит конфигурации заданий агента SQL Server, а также другие детали.

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

Миграция системных баз данных может быть выполнена довольно легко; подробные инструкции доступны в MSDN в разделе Резервное копирование и восстановление системных баз данных (SQL Server) .

В зависимости от ваших требований вы можете выполнить BACKUP DATABASEоперацию с пользовательскими базами данных в экземпляре 2005 года, а затем RESTORE DATABASEв экземпляре 2016 года, чтобы получить всю базу данных, включая все данные, индексы и другие объекты.

Это, по крайней мере на начальном этапе, потребует того же объема памяти, который используется базой данных в экземпляре 2005 года. Однако, как только вы восстановите базу данных, вы можете воспользоваться преимуществами сжатия данных, чтобы существенно сократить требуемый объем памяти.

Подробности о выполнении резервного копирования см. В разделе « Работа с резервными копиями SQL Server» и « Сценарии восстановления» для получения сведений о восстановлении.

Макс Вернон
источник
2

Это к 2012 или 2016 году? Разница в том, что IIRC 2012 - это проверенный путь миграции, а 2016 год - нет. Таким образом, известные проблемы задокументированы и / или будут обнаружены помощником по обновлению в 2012 году. Непроверенный путь может по-прежнему работать без проблем, он просто неизвестен. Тем не менее, настоятельно рекомендую вам перейти на 2016 год. Я подозреваю, что усилия будут почти такими же.

См. Обновляется ли вы с SQL Server 2005? в документации по вариантам обновления 2005 года и ссылкам на очень подробный процесс обновления. Процесс обновления был написан для 2014 года, но все еще применим для 2016 года.

SQLmojoe
источник
1
Это 2016. К сожалению об этом
Роберт