Я сталкивался с тремя старыми базами данных на SQL Server 2000, которые мне нужно перенести на 2012 год. Я считаю, что стандартный подход заключается в восстановлении экземпляра 2005 или 2008 года, обновлении, реэкспорте и, наконец, восстановлении в 2012 году.
Хорошо, за исключением того, что у нас нет доступных экземпляров 2005 или 2008 года.
Существуют ли обходные пути или другие методы, которые стоит попробовать?
Для справки, базы данных содержат только 15-20 таблиц и несколько представлений, они выглядят очень простыми, а размер резервных копий составляет всего 100-200 МБ.
Ответы:
Нет, нет обходного пути для обновления базы данных напрямую с 2000 по 2012 год.
Поскольку у вас нет тонны данных, вы можете делать все что угодно для перемещения данных (но не базы данных в целом), включая:
Однако это не обязательно приведет к появлению других вещей, таких как пользователи, разрешения, роли и т. Д. И не все будут создавать ваши объекты в правильном порядке зависимости. Таким образом, они больше работают и подвержены ошибкам. По моему опыту, было бы целесообразно просто временно создать промежуточный экземпляр, а затем выполнить две операции резервного копирования + восстановления, что будет проще, быстрее и менее подвержено ошибкам, чем любой из вышеперечисленных методов.
Если ваши базы данных меньше 10 ГБ, вы можете установить копию Express (бесплатно) за несколько минут и использовать ее. Вы можете скачать 2008 R2 Express здесь . Я не думаю, что в 2000 году были какие-либо корпоративные функции, связанные со структурой базы данных и т. Д., Которые бы блокировали это обновление (более серьезная проблема для более современных версий).
Если ваша база данных слишком велика для Express, вы сможете найти Developer Edition за 49 долларов или около того (или даже дешевле - я нашел 2005 на eBay за 37 долларов ), или если у вас есть подписка MSDN, вы сможете получить любую SKU оттуда.
Или вы можете обойтись без использования Evaluation Edition, которая на удивление все еще предлагается для загрузки для более старых версий (например, я нашел 2008 здесь ), однако я разговариваю по телефону, поэтому не смог подтвердить, что загрузка для этой версии все еще работает ,
источник
Заявление об отсутствии обходного пути выглядит немного преждевременным.
Вы говорите, что ваша база данных содержит только несколько таблиц и представлений. Почему бы не экспортировать схему таблиц и представлений в виде SQL-операторов создания и запуска их в вашей целевой базе данных? Затем вы можете также экспортировать фактические данные в нечто вроде формата CSV и импортировать их в целевую базу данных, или, возможно, даже написать что-то на C # / C ++ / etc для экспорта / импорта фактических данных.
Вам не нужно тратить ни копейки на новые экземпляры SQL Server, которые вам в конечном счете не нужны.
источник
Нет, вы не можете перенести его напрямую с 2000 на 2012.
Что вы можете сделать, это установить временный экземпляр 2005 ИЛИ 2008 или 2008R2, восстановить базу данных 2000 здесь. После этого вы можете выполнить обновление с установленного экземпляра, сделав резервную копию базы данных с этого экземпляра и восстановив его на sql server 2012.
Вам нужно будет выполнить миграцию в два этапа:
источник
Вы говорите, что «столкнулись с тремя старыми базами данных, сидящими на SQL Server 2000», что наводит меня на мысль, что вам нужны только данные. Я предполагаю, что если бы их запускали с какой-то целью, вы бы знали. Если это так, игнорируйте все вопросы пользователей, безопасности и т. Д.
Мастер импорта / экспорта всех таблиц. Сценарий хранимых процедур и представлений. Проверьте планы обслуживания и задания агентов просто для документирования процессов, которые вы, возможно, захотите просмотреть позже.
источник
Вы не можете выполнить миграцию напрямую с 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 с пакетом обновления 4 (SP4) или SQL Server 2008 с пакетом обновления 2 (SP2) или SQL Server 2008 R2 с пакетом обновления 1 (SP1) и запустить для него уровень совместимости (его можно найти в параметре базы данных). Для входа в SQL Server, пожалуйста, следуйте инструкциям в следующей ссылке .
Когда это будет завершено, теперь вам нужно перейти на SQL Server 2012, повторив те же шаги с сервера, на который вы выполнили первую миграцию.
источник
Во-первых, я согласен, что вы не должны переходить с 2000 на 2012 напрямую. Я думаю, что этот процесс хорошо освещен. Я хотел предложить вам точно узнать, использует ли кто-нибудь базы данных и для чего он их использует. Возможно, они не используются. Это происходит, и если это так, то у вас нет проблем. Возможно, что добавление 2 или 3 таблиц и данных (для 2000 используйте bcp, если вы хотите вывести данные для отдельной таблицы, ее простой и надежной) в существующую базу данных 2012 года, будет отвечать потребностям пользователей. Если вы сделаете это, то создайте новые таблицы в базе данных 2012 года и скопируйте данные, необходимые для csv, вы можете скопировать их обратно, если хотите. Если вам нужно перенести больше, чем таблицу или две, то самый простой и безопасный и лучший способ - выполнить двухэтапную миграцию. Дон»
источник