Я пытаюсь перенести старую базу данных MySQL моей компании на SQL Server 2008.
Я использую помощник по миграции SQL Server для программного обеспечения MySQL, и все работает отлично, за исключением больших таблиц (некоторые из которых содержат около 150 миллионов строк). at Migrating myTable > myTable with 0 of 159216578 rows processed
- Он остается таким примерно 1-2 часа, затем вылетает и говорит, что не может создать файл ошибки.
Есть ли что-то/настройки, которые я могу изменить, чтобы это работало? Есть ли лучший способ (у меня есть доступ к файлам .frm
, .MYD
, .MYI
, если есть что-то, что я могу сделать таким же образом) - я открыт для всего, пока я перенесу эти таблицы.
Спасибо!!
0
, а затем падает). Сколько оперативной памяти у машины, на которой вы используете SSMA? Сколько данных содержится в одной строке этой таблицы, т. е. много ли широких или бинарных столбцов, или схема относительно легкая и простая? - person mellamokb   schedule 01.02.2013localhost
— а SQL Server находится на удаленном сервере. Что касается настроек по умолчанию, я и размер партии 1000 - есть мысли?? Что касается таблиц с 5 миллионами строк, они работают нормально... Похоже, проблема заключается в таблицах со 100 миллионами строк... - person John Bustos   schedule 01.02.2013OpenQuery
через соединение ODBC непосредственно в MySQL, например: blog.jamesrossiter.co.uk/2011/03/ 07/а>. Проблема в том, что вам придется самостоятельно решать любые проблемы с переводом данных из MySQL в SQL Server. Я полагаю, вы могли бы попробовать разбить исходную таблицу на20
таблиц с 5 миллионами строк. Есть ли в вашей таблице естественный ключ раздела? Насколько велика таблица на диске? - person mellamokb   schedule 01.02.2013OpenQuery
заключается в том, что вы могли бы технически включитьWHERE
, чтобы ограничить количество строк. Например, что-то вродеINSERT SQLServerdatabasename.dbo.tablename SELECT * FROM openquery(MYSQL, ‘SELECT * FROM databasename.tablename WHERE PK BETWEEN 1 AND 1000000’)
для захвата первых 1 000 000 значений идентификатора. Затем просто обновите минимальные/максимальные значения и запустите, пока не пройдете всю таблицу (или используйте циклFOR
для всех необходимых # миллионов). - person mellamokb   schedule 01.02.2013set identity [TableName] off
. И вы можете найти проблемы с переводом в некоторых столбцах, с которыми вам придется иметь дело. - person mellamokb   schedule 01.02.2013