Сведения о вопросе

Kimsanov

16:03, 1st July, 2020

Теги

mysql   sql-server   csv   sql-server-2005   bcp    

Как экспортировать данные из SQL Server 2005 в MySQL

Просмотров: 545   Ответов: 5

Я бился головой о SQL Server 2005 , пытаясь получить много данных. Мне дали базу данных с почти 300 таблицами в ней, и мне нужно превратить ее в базу данных MySQL. Мой первый вызов состоял в том, чтобы использовать bcp, но, к сожалению, он не производит допустимые CSV - строки не инкапсулируются, поэтому вы не можете иметь дело ни с одной строкой, в которой есть строка с запятой (или что бы вы ни использовали в качестве разделителя), и мне все равно придется вручную написать все инструкции create table, поскольку очевидно, что CSV ничего не говорит вам о типах данных.

Что было бы лучше, если бы существовал какой-то инструмент, который мог бы подключиться как к серверу SQL, так и к серверу MySQL, а затем сделать копию. Вы теряете представления, хранимые процедуры, триггер и т. д., но нетрудно скопировать таблицу, которая использует только базовые типы, из одного DB в другой... так ли это?

Кто-нибудь знает о таком инструменте? Я не возражаю против того, сколько предположений он делает или какие упрощения происходят, пока он поддерживает integer, float, datetime и string. Мне приходится много заниматься обрезкой, нормализацией и т. д. в любом случае, я не забочусь о сохранении ключей, отношений или чего-то подобного, но мне нужен начальный набор данных быстро!



  Сведения об ответе

ASER

18:03, 1st July, 2020

Лучший способ, который я нашел, - это набор инструментов миграции MySQL , предоставленный MySQL. Я успешно использовал его для некоторых крупных миграционных проектов.


  Сведения об ответе

lool

18:03, 1st July, 2020

SQL Server 2005 "Standard", "Developer" и "Enterprise" выпуски имеют SSIS, который заменил DTS из Sql server 2000. SSIS имеет встроенное соединение с собственным DB, и вы можете найти соединение, которое кто-то другой написал для MySQL. Вот один из примеров. После того, как у вас есть ваши соединения, вы должны быть в состоянии создать пакет SSIS, который перемещает данные между ними.

Мне не приходилось перемещать данные из SQlServer в MySQL, но я полагаю, что после установки соединения MySQl оно работает так же, как перемещение данных между двумя SQLServer DBs, что довольно прямолинейно.


  Сведения об ответе

SEEYOU

18:03, 1st July, 2020

Используя MSSQL Management Studio, я перевел таблицы с MySQL OLE DB. Щелкните правой кнопкой мыши на вашей базе данных и перейдите к "Tasks->Export Data" оттуда вы можете указать источник MsSQL OLE DB, источник MySQL OLE DB и создать сопоставления столбцов между двумя источниками данных.

Скорее всего, вы захотите заранее настроить базу данных и таблицы в пункте назначения MySQL (экспорт потребует автоматического создания таблиц, но это часто приводит к сбою). Вы можете быстро создать таблицы в MySQL, используя "Tasks->Generate Scripts", щелкнув правой кнопкой мыши на базе данных. После того, как ваши сценарии создания будут созданы, вам нужно будет выполнить пошаговый поиск и заменить ключевые слова и типы, которые существуют в MSSQL - MYSQL.

Конечно, вы также можете создать резервную копию базы данных, как обычно, и найти утилиту, которая восстановит резервную копию MSSQL на MYSQL. Однако я не уверен, что он существует.


  Сведения об ответе

SEEYOU

18:03, 1st July, 2020

Откат вашего собственного решения PHP, безусловно, будет работать, хотя я не уверен, что есть хороший способ автоматически дублировать схему от одного DB к другому (возможно, это был ваш вопрос).

Если вы просто копируете данные и / или вам все равно нужен пользовательский код для преобразования между измененными схемами между двумя DB-Ми, я бы рекомендовал использовать библиотеки PHP 5.2+ и PDO. Вы сможете подключиться с помощью PDO ODBC (и использовать драйверы MSSQL). У меня было много проблем с получением больших текстовых полей и многобайтовых символов из MSSQL в PHP, используя другие библиотеки.


  Сведения об ответе

repe

18:03, 1st July, 2020

Еще одним инструментом, который можно попробовать, будет SQLMaestro suite - http://www.sqlmaestro.com это немного сложно прибить точный инструмент, но у них есть множество инструментов, как бесплатных, так и для покупки, которые обрабатывают широкий спектр задач для нескольких платформ баз данных. Я бы предложил сначала попробовать инструмент Data Wizard для MySQL, так как я считаю, что у вас будет правильный инструмент "import", который вам нужен.


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться