Как открыть большой файл sql

Обновлено: 21.11.2024

Я экспортировал файл abc.sql из таблицы MySQL. Этот файл abc.sql имеет размер 16 ГБ и содержит около 28 миллионов операторов вставки.

Я ищу возможность сохранить его в базе данных SQL Server.

Пара вопросов:

  1. Как открыть файл размером 16 ГБ?
  2. Можно ли загрузить 28 миллионов операторов Insert из MySQL в SQL Server?

4 ответа 4

Однажды я столкнулся с похожей проблемой при импорте файла SQL размером 5 ГБ. Максимальный размер большинства редакторов составляет 256 МБ или 512 МБ, единственный известный мне редактор (для Windows), который может без проблем открывать файлы в ГБ, — это emEditor (есть пробная версия). Моя старая установка с 8 ГБ ОЗУ (в два раза больше, чем у вас, но большая ее часть использовалась до 80% все время) и ~20-25 ГБ свободного места на диске C могла открыть ее примерно за 2 минуты (имейте в виду, что мой оборудование было очень старым DDR3 с процессором gen2 или gen3 i7 и медленными дисками).

Самым большим преимуществом (даже если вам придется ждать загрузки) является возможность просмотра схем и кода в случае, если экспорт не включал DDL для таблиц (как это было в моем случае). .

В зависимости от используемого инструмента экспорта ваши операторы вставки могут иметь `для строк вместо ', к счастью, используя emEditor, вы можете заменить их все на '. Это позволит без проблем импортировать код в SQL Server.

Я решил эту проблему, изменив файл, чтобы его можно было изначально импортировать в SQL Server и использовать SQL CMD для запуска файла сценария.

По совету других, я бы попытался импортировать данные напрямую из MySQL в SQL Server с помощью мастера импорта SSMS или служб SSIS.

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

Еще один вариант: вместо того, чтобы разбивать файл, вы можете удалить синтаксис вставки и преобразовать файл в файл массовой загрузки BCP. Вы могли бы сделать это на другом компьютере.

Третья возможность — импортировать данные в базу данных SQL на более крупной машине, которая может их обрабатывать, а затем скопировать из SQL в SQL.

Все это не идеально, но если у вас нет альтернативы, возможно, стоит поэкспериментировать.

Зачем вам его открывать?

Если вам абсолютно необходимо изменить его вручную, например, чтобы изменить оператор CREATE TABLE в начале, хорошим приемом будет использование шестнадцатеричного редактора, который не должен загружать или перезаписывать весь файл.

Но проще всего импортировать его в тестовый экземпляр MySQL. Убедитесь, что он не сбрасывает журнал фиксации при каждой транзакции, иначе это займет вечность. Вот где вы используете шестнадцатеричный редактор, чтобы изменить тип таблицы с InnoDB на MyISAM, чтобы она загружалась быстрее.

Очевидно, что "импортировать его в тестовый экземпляр MySQL" не включает "открытие файла", если это sql, просто передайте его в клиент mysql.

После загрузки в mysql экспортируйте его обратно в удобном для использования формате, например, с разделением табуляцией, по одному файлу на таблицу. Как вы заметили, экспортировать как INSERT не очень хорошая идея. Вы можете использовать mysqldump с параметрами «один файл на таблицу» и «загрузить файл данных».

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

После преобразования операторов создания таблиц в формат SQL-сервера вы можете создавать таблицы на SQL-сервере и загружать файлы, разделенные табуляцией, на SQL-сервер.

Я использую SQL Server 2012, где мне нужно запустить скрипт оператора вставки. Но размер файла 2,7 гб. когда я собираюсь открыть файл в редакторе sql, он показывает мне ошибку SystemOutOfMemory. Блокнот также не может открыть любое предложение, как его открыть.

Wordpad, textpad, notepad, notepade++ ни у кого не работает нормально. любой другой редактор также не может использовать SQL cmd или командную строку для завершения действия

18 ответов 18

Попробуйте открыть файл в браузере, а затем скопируйте нужные строки в редакторе. Мне это помогло.

Ага! Хром справляется с этим довольно хорошо. Это немного медленно, но, по крайней мере, вы можете открыть его и просмотреть содержимое.

EmEditor — лучшее решение для вас.

Я столкнулся с похожей ситуацией, когда мне пришлось редактировать файл .sql размером 3 ГБ. После долгих исследований и нескольких окон «Не отвечает» EmEditor сделал свое дело.

Перепробовал множество редакторов, ничего не помогло, все вылетали или зависали (на windows).

Однократно или на короткое время вы можете использовать пробную версию. Для более длительного/постоянного использования вам придется купить премиум.

Ниже приведена ссылка для скачивания.

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

Исходный код также присутствует (Visual Studio 2015)

Это решение позже создаст дополнительные проблемы для импорта в базу данных. Он ломает файл во многих странных местах. придется быть осторожным. Спасибо.

Во-первых, вы делаете что-то не так. Опишите, как и почему вы получили файл размером 2,7 ГБ. Скорее всего, есть альтернативное решение вашей проблемы.

Вы можете запустить файл такого размера с помощью утилиты командной строки sqlcmd.exe. Утилита MSDN sqlcmd

Но это будет очень-очень-очень медленно, так как вставка будет по одной строке

Также не вижу смысла открывать такой большой файл в редакторе. Но если хотите - я открыл файл >3Gb внутренним редактором файлового менеджера FarManager3.0 x64 (мой конфиг Win7 x64, 8Gb ram, i7-3770). И это было также довольно медленно

Возможно, стоит поискать другие варианты передачи данных:

Я сгенерировал сценарий таблицы из другой базы данных, потому что мне не разрешено делать резервную копию всей базы данных, а в этой таблице много записей, что делает ее очень большим файлом. Я не могу использовать cmd. Мне нужно открыть этот файл, выполнить требуемое действие

Мне легко открылся файл размером 4 ГБ

Редактор SQL может открыть файл размером до 500 МБ без очень хороших спецификаций, похоже, что-то идет не так, если вы хотите вставить данные из одной базы данных в другую, попробуйте использовать мастер импорта/экспорта, пакет SSIS или Утилита командной строки, создающая сценарий таблицы, а затем вставляющая, не является хорошим подходом.

Вы всегда можете использовать утилиту командной строки.

Откройте cmd и введите:

Я только что успешно запустил файл размером 7 ГБ с 8 миллионами вставок.

Это определенно работает - медленно, да, но работает.. хотя пользователь 4725980 предложил лучший способ, когда вы делаете передачу самостоятельно с доступом к нему, а не просто получаете большой файл - проще. но ваш метод работает - имя файла может быть в кавычках. Было бы неплохо узнать, сколько времени заняли 8 миллионов вставок..

Я открыл файл 5.14G sql в редакторе IntelliJ IDEA. Загрузка не занимает и 30 секунд.

У меня похожая проблема с дампом .sql объемом 6 ГБ, который мне передали в колледже. Все еще удивляюсь, как он до этого дошел.

Мне удалось открыть файл через терминал в Linux с помощью vi/vim.

Почему бы вам не попробовать создать виртуальную машину с помощью centos или какой-либо другой разновидности, передать туда файл (через ssh и с помощью filezilla) и открыть его там? Установите серверную версию без графического интерфейса.

Держу пари, вы сможете открыть его там. В противном случае раскол был бы поводом для поиска.

привет, я решил эту проблему с помощью BCP (программы массового копирования) с помощью утилиты командной строки. Однако в моем сценарии у нас нет Linux. Но это хорошая информация. Спасибо

@PiyushJain Удалось ли вам открыть файл .sql с помощью этой программы или просто скопировать его? У меня есть 16GB Ram vm с сервером ubuntu и клиентом mysql + phpmyadmin и toad для проверки базы данных. Даже жаба не смогла импортировать такой файл. Поэтому я оставил виртуальную машину с импортом базы данных в mysql (или, точнее, в mariadb) в течение 3 дней. Да, это медленный металл. Но все равно круто для тестов. HP Proliant DL380 G5 с esxi 6.0.2. Я загрузил файл на сервер по ftp, если вам интересно.

010 Editor может работать с файлами любого размера. Я только что использовал его, чтобы отредактировать файл размером 3 ГБ, на котором произошел сбой Chrome, TextPad и всего остального.

У меня такая же проблема, но я ее решил.

У меня был файл .sql размером 5 ГБ. В этом файле мне пришлось редактировать из-за синтаксической ошибки. Я пытался использовать несколько редакторов, но это не сработало.

Затем после того, как я попробовал редактор кода Visual Studio. И это работает.

Похоже, это дублирует существующий ответ, хотя у вас есть дополнительные сведения. Возможно, в будущем лучше было бы предложить изменить старый ответ, чтобы добавить больше деталей.

У меня был 8-гигабайтный sql-файл, и все текстовые редакторы или sql-серверы, которые я пробовал, либо давали сбой, либо вообще не позволяли ему открываться.

Я пробовал разные программы на своем компьютере, и pycharm открыл его без каких-либо усилий, хотя однажды он разбился.

Sublime Text очень хорошо работал на Mac. Я пробовал много, PHPstorm отлично работал, но только в режиме чтения. Sublime Text фактически открывает полный файл для редактирования, но загрузка занимает некоторое время. Однако во время загрузки есть индикатор выполнения.

Большие файлы дампа mysql можно открыть с помощью приложения gVim.

Почему бы просто не импортировать файл в SQL Server и просмотреть его в Enterprise Manager? Вы можете напрямую импортировать его или использовать PowerShell, но последний, вероятно, будет работать всю ночь (это проще для небольших файлов, особенно для большого их количества). Как только он появится, вы сможете с легкостью делать все, что захотите, и размер файла не будет проблемой.

Я считаю, что для кроссплатформенных приложений лучше всего подходит VSCode. Если он заметит, что это большой файл, он автоматически отключит поиск синтаксиса и все приятные функции, но оставит, по крайней мере, базовый поиск и замену и т. д.Я регулярно использую это для файлов размером около 1-3 ГБ для Wordpress, потому что иногда постоянные ссылки не обновляются при изменении доменных имен для сайтов разработки / размещения и т. д.

Если у вас есть Linux или Git Bash, установленные в Windows, у вас будет доступ к vim, что я рекомендую для всего 4 ГБ+. Мне пришлось вручную изменить строки в файле MySQL размером 6 ГБ и выше, и он отлично работает. Вы подумаете, что это не работает, потому что чтение с диска в ОЗУ может занять около минуты, но это сработает. Вы должны быть эффективными в отношении количества сохранений, потому что при этом на диск будут записаны полные 6 ГБ, а для навигации также потребуется использовать поиск, номера строк и т. д., но это работает.

Использование редактора больших файлов, такого как ультраредактирование, является простым решением для редактирования, а затем запускать его из CMD с помощью утилиты SQLCMD.

У меня возникла та же проблема при открытии файла SQL размером 3 ГБ. Поэтому я использовал IntelliJ, чтобы открыть файл, и это сработало для меня. Я не предлагаю загружать и устанавливать IntelliJ, чтобы открыть большой файл. Но это будет самое простое решение для большого сообщества разработчиков или пользователей IDE в их повседневной жизни.

Читайте также: