Название сам пояснительный. Есть ли способ непосредственно делать такой импорт?Как импортировать SQL-файл .bak SQL Server в MySQL?
ответ
файлы .bak с сервера SQL в Microsoft Tape Format (MTF) исх: http://www.fpns.net/willy/msbackup.htm
Файл безналу, вероятно, содержат LDF и MDF файлы, которые SQL сервер использует для хранения базы данных.
Чтобы извлечь их, вам понадобится SQL-сервер. SQL Server Express является бесплатным и будет выполнять эту работу.
Итак, установите версию SQL Server Express и откройте 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's "Sql Web Data Administrator". вместе с this export tool и вы будете иметь сценарий SQL, содержащий базу данных.
спасибо, Ричард! Вытащил меня из джема. – 2010-01-20 16:26:52
Проблема в том, что SQL Server 2008 Express Edition может обрабатывать только файлы базы данных размером 10 ГБ и меньше. У меня есть 30-гигабайтный файл, с которым мне нужно работать. Интернет-соединение на работе слишком медленное, чтобы загрузить 4-гигабайтное .iso-изображение полной версии SQL Server 2008 R2, которую я бесплатно получаю от dreampark.com в качестве студента. Поэтому у меня есть такой же вопрос. – systemovich 2011-05-12 14:21:16
Первая версия программного обеспечения для установки не работает – 2015-05-19 17:31:09
Хотя мой фон MySQL ограничен, я не думаю, что вам удалась это сделать. Однако вы должны перенести все свои данные, восстановив db на сервере MSSQL, а затем создав пакет SSIS или DTS для отправки ваших таблиц и данных на сервер MySQL.
надеюсь, что это поможет
Я очень сомневаюсь. Возможно, вы захотите использовать DTS/SSIS для этого, как говорит Леви. Можно подумать, что вы можете захотеть сделать это, не импортируя данные. Просто сделайте достаточно, чтобы собрать основные структуры таблицы. Затем вы захотите изменить структуру результирующей таблицы, потому что любая структура, которая, вероятно, будет создана, будет в лучшем случае шаткой.
Возможно, вам также понадобится сделать этот шаг дальше и создать промежуточную область, которая сначала берет все данные в форме строки (varchar). Затем вы можете создать скрипт, который выполняет проверку и преобразование, чтобы получить его в «реальной» базе данных, потому что две базы данных не всегда хорошо работают вместе, особенно при работе с датами.
Базы данных SQL Server являются собственностью Microsoft. Возможны два варианта:
Дамп базы данных в формате CSV, XML или аналогичный формат, который вы затем загрузите в MySQL.
Настройка подключения ODBC к MySQL и последующее использование данных DTS. Как предложил Чарльз Грэм, вам, возможно, придется создавать таблицы, прежде чем делать это. Но это так же просто, как вырезать и вставить из окон SQL Enterprise Manager в соответствующее окно MySQL.
Будет ли это работать, если я подготовлю дамп в формате .sql! – sandeep 2013-12-18 13:39:41
Мне не удалось найти способ сделать это напрямую.
Вместо этого я импортировал файл bak в SQL Server 2008 Express, а затем использовал MySQL Migration Toolkit.
Работал как очарование!
Метод, который я использовал включенную часть метода Ричарда Харрисона:
Таким образом, установить SQL Server 2008 Express, издания,
Это требует загрузки Platform Installer Web «wpilauncher_n.exe " После того, как вы установили это, нажмите на выбор базы данных (вам также необходимо загрузить рамки и временные ряды)
После установки перейти к t он окна командной строки и:
использование Sqlcmd -S \ SQLExpress (в то время как вошли в систему как администратор)
затем выполните следующую команду.
восстановить файл из списка: disk = 'c: \ temp \ mydbName-2009-09-29-v10.bak'; GO В этом списке будет указано содержимое резервной копии - вам нужны первые поля , которые сообщают вам логические имена - одна будет фактической базой данных, а другая - файлом журнала.
RESTORE DATABASE mydbName ОТ диска = 'C: \ Temp \ mydbName-2009-09-29-v10.bak' С MOVE 'mydbName' К ' C: \ Temp \ mydbName_data.mdf', MOVE ' mydbName_log 'TO ' c: \ temp \ mydbName_data.ldf '; GO
я запустил установщик веб-платформы и от новой вкладки то, что я установил SQL Server Management Studio и просматривать БД, чтобы убедиться, что данные были там ...
В этот момент я попробовал инструмент включен в MSSQL «Мастер импорта и экспорта SQL», но результат дампа csv включал в себя имена столбцов ...
Так что вместо этого я просто экспортировал результаты запросов, таких как «select * from users» из SQL Server Management Studio
Для тех, кто пытается использовать решение Ричарда bove, вот некоторые дополнительные сведения, которые могут помочь найти общие ошибки:
1) При запуске файла восстановления файлов вы можете получить операционную системную ошибку 5 (Доступ запрещен). Если это так, откройте диспетчер конфигурации SQL Server и измените логин для SQLEXPRESS на пользователя с правами на локальную запись.
2) @ «Это отобразит содержимое резервной копии - то, что вам нужно, это первые поля, которые сообщают вам логические имена» - если в вашем файле указано более двух заголовков, вам также нужно будет учитывать, что делать с этими файлами в команде RESTORE DATABASE. Если вы не укажете, что делать с файлами за пределами базы данных и журнала, система, по-видимому, попытается использовать атрибуты, перечисленные в файле .bak. Восстановление файла из чужой среды приведет к появлению «Путь имеет недопустимые атрибуты. Он должен быть каталогом '(поскольку этот путь не существует на вашем компьютере). Простое предложение MOVE разрешает эту проблему.
В моем случае был третий файл типа FTData.Команда MOVE Я добавил:
MOVE 'mydbName_log' TO 'c:\temp\mydbName_data.ldf',
MOVE 'sysft_...' TO 'c:\temp\other';
в моем случае, я на самом деле должен был сделать новый каталог для третьего файла. Сначала я попытался отправить его в ту же папку, что и файл .mdf, но при выполнении восстановления произошел ошибка «не удалось инициализировать правильно» в третьем файле FTData.
- Открыть SQL Server Management Studio на локальной машине.
- Щелкните правой кнопкой мыши папку «Базы данных». Во всплывающем меню выберите «Новая база данных».
- Введите имя базы данных и нажмите кнопку ОК.
- Щелкните правой кнопкой мыши значок новой базы данных. Во всплывающем меню выберите Задачи -> Восстановить -> База данных.
- Выберите опцию «От устройства», а затем нажмите кнопку обзора.
- Нажмите «Добавить» и перейдите к соответствующему файлу. Нажмите «ОК».
- В окне «Восстановить базу данных» установите флажок рядом с вашим файлом BAK.
- Перейдите на страницу параметров. Установите флажок «Перезаписать существующую базу данных». Нажмите «ОК».
- Проверьте содержимое своей базы данных, которая теперь активна на вашем локальном компьютере.
У MySql есть приложение для импорта db с сайта microsoft. Шаги:
- Открыть MySql Workbench
- Нажмите на «База данных миграции» (если он не появится, вы должны установить его с обновлением MySql)
- Следуйте список задач миграции с помощью простого мастера.
. Баковый файл с SQL Server специфичен для этого диалекта базы данных и несовместим с MySQL.
Попробуйте использовать etlalchemy для переноса базы данных SQL Server в MySQL. Это инструмент с открытым исходным кодом, который я создал для облегчения миграции между различными РСУБД.
Быстрая установка и примеры приведены здесь на the github page, а более подробное объяснение происхождения проекта можно найти here.
также [покрыто на dba.stackexchange] (http://dba.stackexchange.com/q/20078/1580) – 2012-06-28 16:55:01
Эпический вопрос bro! Я, наконец, удалось импортировать файл bak с моего дерьмового хостинг-провайдера, где все инструменты SQL были сломаны. – ppumkin 2012-09-06 13:52:20