Какие есть варианты, если мне нужно переместить базу данных из SQL Server 2012 (32-разрядная версия) в SQL Server 2005 (64-разрядная версия)?
Я знаю, что не могу:
- восстановить резервную копию базы данных на SQL Server 2005
- отсоединить и прикрепить
Я знаю что могу:
- использовать мастер импорта данных, и я попробовал его на одной базе данных, но он только перемещает данные, и даже это было хлопотно, так как мне нужно было проделать большую работу, создавая временные таблицы для поддержки столбцов идентификаторов, воссоздавая все FK, индексы и т. д.
Есть ли более простой вариант?
sql-server
migration
downgrade
Грег Балаевич
источник
источник
Ответы:
Вы можете использовать любой метод ниже:
Примечание. Если вы используете какие-либо новые функции, такие как новые типы данных и т. Д., Вам придется протестировать, так как это приведет к ошибкам.
МЕТОД 1: Использование нативных инструментов
Сценарий базы данных SCHEMA_ONLY и воссоздать пустую базу данных на конечном сервере. Ниже приведены скриншоты:
Используйте BCP OUT и BULK INSERT для вставки данных.
Ниже приведен скрипт, который поможет вам с частью 2.
Способ 2: использование сторонних инструментов
Создайте пустую базу данных на конечном сервере. Используйте сравнение схем Redgate и сравнение данных для создания и загрузки данных на целевой сервер.
Примечание: я использовал схему и сравнение данных Redgate, и они являются лучшими инструментами для такого рода задач, и поэтому, если вы используете инструменты сторонних производителей, то я бы порекомендовал Redgate.
источник
В дополнение к методам, уже предложенным здесь, вы также можете попробовать создать файл BACPAC и импортировать его в место назначения. Это похоже на то, как Microsoft рекомендует переносить ваши базы данных из локальных в облачные базы данных Azure.
Преимущество этого состоит в том, что это комбинация экспорта схемы и данных, и она не зависит от версии базы данных, поэтому вы можете теоретически импортировать базы данных из любой версии в любую версию.
Недостатком является то, что перед тем, как сгенерировать файл BACPAC в источнике, он запускает какой-то строгий процесс проверки, который может легко потерпеть неудачу, если у вас есть ссылки на объекты вне вашей базы данных (будь то пользовательские или системные базы данных), или если у вас есть зашифрованные объекты. Но если вам повезет, и это не удастся, то это может быть довольно простым решением.
Все, что вам нужно, это одна из более новых версий SSMS (17 или 18): https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms
Чтобы начать создание файла BACPAC, щелкните правой кнопкой мыши базу данных и выберите «Экспортировать приложение уровня данных ...» (не путайте с «Извлечь приложение уровня данных ...», которое отличается):
Вам будет представлен простой мастер, который проведет вас по шагам. Когда вы закончите, вы можете использовать «Импортировать приложение уровня данных ...» на вашем конечном сервере, что вы можете увидеть, щелкнув правой кнопкой мыши на узле «Базы данных» (опять же, не путайте с «Развертывание данных»). Приложение ... "):
Это также покажет вам простой мастер, который проведет вас по шагам.
источник
Уменьшить версию Sql Server очень тяжело.
Есть несколько вариантов, чтобы уменьшить как;
Прежде всего, создайте все сценарии объекта базы данных и запустите на конечном сервере.
После этого вы можете использовать;
Но для инструмента сравнения данных RedGate ,
источник
Невозможно понизить версию базы данных на SQL Server. Тем не менее, обходной путь заключается в сценарии всех объектов БД и применении сценария в целевой базе данных. SSIS - отличный способ помочь выполнить это.
источник