Как импортировать SQL Server.бак файл в MySQL?



название не требует пояснений. Есть ли способ непосредственно сделать такой вид импорта?

1429   10  

10 ответов:

The .Файлы BAK из SQL server находятся в формате Microsoft Tape Format (MTF) ref:http://www.fpns.net/willy/msbackup.htm

файл bak, вероятно, будет содержать файлы LDF и MDF, которые SQL server использует для хранения базы данных.

вам нужно будет использовать SQL server, чтобы извлечь их. SQL Server Express является бесплатным и будет выполнять эту работу.

Итак, установите SQL Server Express edition и откройте SQL Server Powershell. Там выполнить sqlcmd -S <COMPUTERNAME>\SQLExpress (пока вошел в систему как администратор)

затем выполните следующую команду.

restore filelistonly from disk='c:\temp\mydbName-2009-09-29-v10.bak';
GO

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

RESTORE DATABASE mydbName FROM disk='c:\temp\mydbName-2009-09-29-v10.bak'
WITH 
   MOVE 'mydbName' TO 'c:\temp\mydbName_data.mdf', 
   MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf';
GO

в этот момент Вы извлекли базу данных-затем установите Microsoft "SQL Web Data Administrator". вместе с этот экспортный инструмент и у вас будет SQL скрипт, содержащий базу данных.

Мне не удалось найти способ сделать это напрямую.

вместо этого я импортировал файл bak в SQL Server 2008 Express, а затем использовал MySQL Migration Toolkit.

работал как шарм!

MySql есть приложение для импорта БД из microsoft sql. Шаги:

  1. Откройте MySQL Workbench
  2. нажмите на кнопку" миграция базы данных " (если он не появляется, Вы должны установить его из обновления MySql)
  3. следуйте списку задач миграции с помощью простого мастера.
  1. откройте среду SQL Server Management Studio на локальном компьютере.
  2. щелкните правой кнопкой мыши папку базы данных. Во всплывающем меню выберите Создать базу данных.
  3. введите имя базы данных и нажмите кнопку ОК.
  4. щелкните правой кнопкой мыши на значок новой базы данных. Во всплывающем меню выберите Задачи - > восстановление - > база данных.
  5. выберите параметр из устройства, а затем нажмите кнопку Обзор.
  6. Нажмите кнопку Добавить и перейдите в соответствующий файл. Щелчок Ладно.
  7. в окне восстановление базы данных, установите флажок рядом с файлом BAK.
  8. перейдите на страницу параметров. Установите флажок перезаписать существующую базу данных. нажимать OK.
  9. проверьте содержимое базы данных, которая теперь активна на локальном компьютере.

хотя мой фон MySQL ограничен, я не думаю, что вам очень повезло сделать это. Однако вы должны иметь возможность перенести все свои данные, восстановив БД на сервер MSSQL, а затем создав пакет SSIS или DTS для отправки таблиц и данных на сервер MySQL.

надеюсь, что это помогает

Я очень сомневаюсь в этом. Вы можете использовать DTS / SSIS, чтобы сделать это, как говорит Леви. Можно подумать, что вы можете сделать, это запустить процесс без фактического импорта данных. Просто сделайте достаточно, чтобы собрать основные структуры таблиц вместе. Затем вы захотите изменить структуру результирующей таблицы, потому что любая структура tat, вероятно, будет создана, в лучшем случае будет шаткой.

возможно, Вам также придется сделать этот шаг дальше и создать промежуточную область, которая принимает все данные первые n строк (тип varchar) форма. Затем вы можете создать скрипт, который выполняет проверку и преобразование, чтобы получить его в "реальных данных", потому что две базы данных не всегда хорошо работают вместе, особенно при работе с датами.

метод, который я использовал, включал часть метода Ричарда Харрисона:

Итак, установите SQL Server 2008 Express издание,

для этого требуется загрузка установщика веб-платформы "wpilauncher_n.exe" После того, как вы установили это нажмите на выбор базы данных (вы также должны загрузить фреймворки и среды выполнения)

после установки перейдите в командную строку windows и:

использовать sqlcmd-S \SQLExpress (пока вошел в систему как администратор)

затем выполните следующую команду.

восстановить filelistonly из c:\temp\mydbName-2009-09-29-v10 диск='.бак'; Перейти это будет список содержимого резервное копирование - то, что вам нужно в первую очередь поля, которые говорят вам логические имена - один будет фактической базой данных, а другой-файлом журнала.

восстановить базу данных mydbName из c:\temp\mydbName-2009-09-29-v10 диск='.bak ' с перемещением 'mydbName' в 'c:\temp\mydbName_data.МДФ', переезд 'mydbName_log' TO 'c:\temp\mydbName_data.ldf'; GO

Я запустил установщик веб-платформы и на вкладке "что нового" я установил SQL Server Management Studio и просмотрел БД, чтобы убедиться, что данные там есть...

в этот момент я попробовал инструмент, включенный в MSSQL "мастер импорта и экспорта SQL", но результат дампа csv включал только имена столбцов...

поэтому вместо этого я просто экспортировал результаты запросы типа "select * from users" из среды SQL Server Management Studio

базы данных SQL Server являются собственностью Microsoft. Я могу придумать два варианта:

  1. дамп базы данных в CSV, XML или аналогичном формате, который вы затем загрузите в MySQL.

  2. установите соединение ODBC с MySQL, а затем с помощью DTS транспортируйте данные. Как предложил Чарльз Грэм, вам может потребоваться построить таблицы, прежде чем делать это. Но это так же просто, как вырезать и вставить из окон SQL Enterprise Manager в соответствующие Окно MySQL.

для тех, кто пытается решение Ричарда выше, вот некоторые дополнительные сведения, которые могут помочь сориентироваться общие ошибки:

1) при запуске restore filelistonly вы можете получить ошибку операционной системы 5(Доступ запрещен). В этом случае откройте Диспетчер конфигурации SQL Server и измените имя входа для SQLEXPRESS на пользователя с локальными правами на запись.

2) @ " это будет список содержимого резервной копии - то, что вам нужно, это первые поля, которые говорят вам логические имена " - если ваш файл содержит более двух заголовков, вам также необходимо указать, что делать с этими файлами в команде RESTORE DATABASE. Если вы не укажете, что делать с файлами за пределами базы данных и журнала, система, по-видимому, попытается использовать атрибуты, перечисленные в списке .бак файл. Восстановление файла из чужой среды приведет к тому, что " путь имеет недопустимые атрибуты. Это должен быть каталог ' (так как путь, о котором идет речь, не существует на вашем машина.) Простое предоставление инструкции MOVE решает эту проблему.

в моем случае был третий файл типа FTData. Команды "переместить", я добавил:

MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';

в моем случае мне пришлось сделать новый каталог в третий файл. Первоначально я попытался отправить его в ту же папку, что и .mdf-файл, но это привело к ошибке "не удалось правильно инициализировать" в третьем файле FTData, когда я выполнил восстановление.

The .файл bak из SQL Server специфичен для этого диалекта базы данных и не совместим с MySQL.

попробуйте использовать etlalchemy для переноса базы данных SQL Server в MySQL. Это инструмент с открытым исходным кодом, который я создал для облегчения легкой миграции между различными СУБД.

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

Comments

    Ничего не найдено.