Дъмп на продукционна база данни лесно може да достигне десетки гигабайти. В момента, в който се опитате да го отворите в обикновен текстов редактор, вентилаторът на вашия Mac се завърта, появява се цветното колело и в крайна сметка приложението се затваря — понякога отнасяйки незаписана работа в други прозорци със себе си.
Защо редакторите се задавят с големи дъмпове
VS Code, TextEdit, Sublime Text и подобните са проектирани да зареждат целия файл в паметта, за да могат да превъртат, търсят и оцветяват мигновено. Това е добре за файл с код от 2 MB. За дъмп от 40 GB това означава, че редакторът се опитва да задели 40 GB (плюс допълнителни ресурси за вътрешните си структури от данни) в RAM.
Вашият Mac има 16 или 32 GB. Далеч преди файлът да бъде напълно зареден, системата остава без физическа памет, започва да разменя данни на диска и се забива. Повечето редактори също отказват направо: VS Code ограничава файловете до около 50 MB за пълния редактор и преминава в опростен режим, TextEdit просто увисва, а Sublime заделя памет докато не се срине. Дори да успеете да отворите файла, синтактичното оцветяване и търсенето ще преглеждат отново гигабайти при всяко натискане на клавиш.
Основният проблем: тези инструменти предполагат произволен достъп до целия документ. Дъмпът не се нуждае от това — той е последователен списък от заявки. Нужно е само да го преминете поточно.
Начинът с командния ред
Unix инструментите на вашия Mac вече работят поточно, така че никога не зареждат целия файл. Те са класическото първо средство:
# Надникни в първите и последните редове, без да отваряш целия файл head -n 50 dump.sql tail -n 50 dump.sql # Раздели дъмпа на парчета по 100 MB с имена part_aa, part_ab, ... split -b 100m dump.sql part_ # Извади блока на една таблица между два маркера sed -n '/CREATE TABLE `users`/,/UNLOCK TABLES/p' dump.sql > users.sql
Това работи, но е крехко и досадно. split -b реже на границите на суровите байтове, така че ще пререже право през средата на INSERT заявка — получените парчета не са валиден SQL сами по себе си. Трикът с диапазона на sed зависи от точните маркери, които определен инструмент за дъмп случайно генерира; сменете версията на MySQL или преминете към PostgreSQL и шаблонът вече не съвпада. И нищо от това не ви дава представа какво всъщност е в файла — гадаете коя таблица е тази от 30 GB, преди дори да можете да я насочите.
Отворете и филтрирайте го с DumpCleaner
DumpCleaner е създаден точно за този размер файл. Той преминава дъмпа поточно, както прави командният ред, но разбира структурата на SQL, така че получавате истински списък с таблици и безопасен изход, съобразен със заявките:
- Плъзнете файла вътре. DumpCleaner отваря дъмпа, като го преминава поточно на парчета от ~1 MB — файл от 50 GB се отваря с приблизително 50 MB RAM, така че нищо не замръзва.
- Вижте всяка таблица. Той сканира дъмпа и изброява всяка таблица с нейния размер, така че веднага забелязвате коя раздува файла.
- Премахнете отметката от това, което не ви трябва. Махнете отметката от гигантските таблици с логове, сесии или аналитика. DumpCleaner запазва целите заявки непокътнати — без прерязани наполовина INSERT заявки.
- Експортирайте. Запишете нов, по-малък
.sqlфайл, който най-накрая се отваря и импортира удобно. Вашият оригинален файл никога не се променя.
Тъй като обработва дъмпове от 50 GB и по-големи с постоянна памет, изобщо не трябва да мислите за RAM паметта на вашия Mac. И тъй като чете източника и записва отделен изход, дъмпът, с който сте започнали, остава точно какъвто е бил.
Отваряйте дъмпове, които редакторът ви не може
DumpCleaner преминава поточно SQL дъмпове с всякакъв размер с постоянна памет — без срив, без размяна на памет, без чакане. Плъзнете файл от 50 GB, махнете таблиците, които не ви трябват, експортирайте по-малък. Нативно приложение за macOS и iPadOS, еднократна покупка.
Изтегляне от App StoreЧесто задавани въпроси
Колко голям SQL дъмп може да обработи DumpCleaner?
Няма фиксирано ограничение. Той обработва файла като поток на малки парчета, така че дъмпове от 50 GB и по-големи работят като малките — размерът е ограничен от диска ви, а не от RAM паметта.
Зарежда ли DumpCleaner целия файл в RAM?
Не. За разлика от текстов редактор, той чете дъмпа на малки парчета и поддържа паметта приблизително постоянна около 50 MB, независимо дали файлът е 200 MB или 50 GB.
Мога ли да разделя дъмп по таблица?
Да. Вместо split, който реже сляпо на границите на байтовете, DumpCleaner разбира структурата на таблиците. Махнете отметката от таблиците, които не искате, и експортирайте чист файл само с тези, които запазвате.
Променя ли DumpCleaner оригиналния ми файл?
Не. Изходният дъмп само се чете — DumpCleaner винаги записва нов файл, така че оригиналът ви остава непокътнат.
Спрете да се борите с редактора си
Плъзнете огромния дъмп, махнете таблиците, които не ви трябват, експортирайте файл, който действително се отваря. DumpCleaner се справя с всякакъв размер с постоянна памет.
Изтегляне от App Store