У меня есть база данных на экземпляре SQL Sever 2012, которую я хотел бы скопировать на сервер 2008. Сервер 2008 года не может восстановить резервные копии, созданные сервером 2012 года (я пробовал).
В 2012 году я не могу найти никаких вариантов для создания резервной копии, совместимой с 2008 годом. Я что-то пропустил?
Есть ли простой способ экспортировать схему и данные в независимый от версии формат, который я могу затем импортировать в 2008?
База данных не использует какие-либо особенности 2012 года. Он содержит таблицы, данные и хранимые процедуры.
Вот что я пробовал до сих пор
Я попытался « Задачи» → « Создать сценарии» на сервере 2012 года и смог создать схему (включая хранимые процедуры) в виде сценария SQL. Это не включает никаких данных, хотя.
После создания этой схемы на моем компьютере 2008 года я смог открыть мастер «Экспорт данных» на компьютере 2012 года, и после настройки 2012 года в качестве исходного компьютера и 2008 года в качестве целевого компьютера мне был представлен список таблиц, которые я мог скопировать. Я выбрал все свои таблицы (более 300) и щелкнул по мастеру. К сожалению, он тратит целые годы на генерацию своих сценариев, а затем терпит неудачу с такими ошибками, как «Ошибка вставки в столбец только для чтения« FOO_ID »».
Я также попробовал «Мастер копирования базы данных», который утверждал, что может копировать «с 2000 года или позже до 2005 года или позже». Имеет два режима:
«Отсоединить и присоединить», что привело к ошибке:
Message: Index was outside the bounds of the array. StackTrace: at Microsoft.SqlServer.Management.Smo.PropertyBag.SetValue(Int32 index, Object value) ... at Microsoft.SqlServer.Management.Smo.DataFile.get_FileName()
Метод объекта управления SQL, который завершился ошибкой
Не удается прочитать свойство IsFileStream. Это свойство недоступно в SQL Server 7.0. "
Ответы:
Щелкните правой кнопкой мыши базу данных в SQL Management Studio 2012 и выберите «Задачи -> Создать сценарии». Нажмите мимо экрана приветствия, выберите «Сценарий всей базы данных и всех объектов базы данных». На странице «указать, как следует сохранять сценарии», нажмите «Дополнительно». В разделе «Общие» на странице свойств всплывающего окна измените «Типы данных в сценарии» с «Только схема» на «Схема и данные» и измените «Сценарий для версии сервера» с «2012» на «2008».
Затем мне нужно было найти способ отредактировать начало этого массивного файла SQL, чтобы настроить способ создания базы данных - см. Этот вопрос: https://stackoverflow.com/questions/102829/best-free-text-editor Поддержка-больше-чем-4gb-файлов
И, наконец, мне нужно было найти какой-нибудь способ запуска сценария SQL, который был слишком велик для его открытия в SQL Management Studio - см. Этот q: https://stackoverflow.com/questions/431913/how-do-you-run- а-300MB-MS-SQL-SQL-файл
источник
Для миграции SQL используйте мастер миграции базы данных SQL с открытым исходным кодом.
У меня была база данных 5 ГБ с парой ~ 10 миллионов записей, и я попробовал маршрут через Generate Script, а затем запустил его с помощью sqlcmd.exe. Прежде всего, сгенерированный скрипт не всегда работал правильно. Во-вторых, sqlcmd.exe также может не работать с большими файлами, жалуясь на доступную память. osql.exe работает, но требует времени (и имеет те же аргументы командной строки).
Затем я наткнулся на замечательный инструмент для миграции SQL Server на базы данных SQL Azure. Это работает и для SQL Server в SQL Server, например, если вы хотите перенести базу данных SQL 2012 в 2008 R2. Он использует bcp.exe, который использует массовое копирование. Доступна версия с графическим интерфейсом и командной строкой (Batch) с открытым исходным кодом. Смотрите http://sqlazuremw.codeplex.com/ . В моем случае операция заняла 16 минут.
На расширенном экране вы можете выбрать, что ваша цель - SQL Server, а не SQL Azure.
источник
Я новичок в SQL, но мне удалось перейти с 2012 на 2008 год. Для этого я использовал утилиту импорта и экспорта SQL. Я выбрал сервер SQL 2012 и базу данных, которую я хочу перенести, и, наконец, сервер 2008 года и создал новую базу данных в качестве базы данных назначения. Это сработало.
источник
Попробуйте инструменты APEXSQL . У них есть инструмент, который будет сценарий базы данных и сценарий данных также.
источник
Проблема в том, что он не может вставить столбцы идентификаторов, поэтому:
источник
Я следовал решению Рича https://superuser.com/a/469597/312310 выше, и оно отлично работало! Спасибо - я не могу голосовать еще здесь!
Дополнительные шаги, которые я должен был сделать, чтобы заставить это работать:
Измените логические имена файлов и убедитесь, что путь указан правильно. Мне также пришлось изменить сгенерированное имя журнала, иначе он попытался перезаписать файл mdf с журналом, а затем выдал эту ошибку https://stackoverflow.com/questions/7534664/sql-server-script-error-database-is- Уже в использовании
Мне пришлось закомментировать сгенерированный раздел и вручную добавить разрешения пользователя
Запустил его, и вот, теперь я могу восстановить свою новую базу данных Umbraco 7.1.2 на своем веб-сервере, на котором установлен только SQL Server 2008 R2!
источник
Взгляните на xSQL Schema Compare и xSQL Data Compare . Вы можете сначала синхронизировать схему со схемой сравнения, а затем скопировать данные.
Отказ от ответственности: я связан с xSQL.
источник