Mam 250 MB zapasowego pliku SQL, ale limit na nowy hosting to tylko 100 MB ...
Czy istnieje program, który pozwala podzielić plik SQL na wiele plików SQL?
Wygląda na to, że ludzie odpowiadają na złe pytanie ... więc wyjaśnię więcej:
Mam TYLKO plik 250 MB i mam nowy hosting używając phpMyAdmin, który obecnie nie ma danych w bazie danych. Muszę wziąć plik 250 MB i przesłać go do nowego hosta, ale istnieje limit wielkości przesyłania kopii zapasowej pliku SQL 100 MB. Po prostu muszę wziąć jeden plik, który jest zbyt duży i podzielić go na wiele plików, z których każdy zawiera tylko pełne prawidłowe instrukcje SQL (żadnych instrukcji nie można podzielić na dwa pliki).
Odpowiedzi:
Od Jak podzielić dane wyjściowe z mysqldump na mniejsze pliki?
źródło
Najprostszym sposobem podziału pliku kopii zapasowej jest skorzystanie z oprogramowania
sqldumpsplitter
, które pozwala podzielić plik db na wiele plików db. Pobierz tutajAlbo użyj tego polecenia terminala.
Tutaj 600 to liczba linii, które chcesz mieć w podzielonych plikach. Dwa argumenty to odpowiednio źródło i miejsce docelowe plików.
UWAGA: musisz sprawdzić podzielone pliki, nie dzielisz żadnego polecenia.
źródło
split
polecam używaćcsplit
. Nie podzieli się zaraz po określonym numerze linii, który może znajdować sięINSERT
na przykład między listą wartości. Możesz przekazać wyrażenie regularne, aby zidentyfikować linie do podziału. Użyj go w następujący sposób, przykład : `csplit -k dump.sql '/ ^ CREATE TABLE. * /' '{900}' 'Spowoduje to podzielenie pliku zrzutu przed każdącreate table …
instrukcją. Zmień to na swoje potrzeby. (Nawiasem mówiąc,{900}
zamiast przekazać,{*}
ponieważ pojawia się błąd „csplit: *}: zła liczba powtórzeń” , może po prostu problem na MacOS?)Napisałem mysqldumpsplitter (skrypt powłoki), który dzieli bazy danych / tabele zgodnie z instrukcją w szybki i łatwy sposób. Zobacz wszystkie możliwe zastosowania wyodrębnienia z mysqldump .
źródło
Ten kod zrobi dokładnie to, co chcesz (i jest open source):
https://web.archive.org/web/20160313044916/http://rodo.nl/index.php?page=mysql-splitter
Pozwala na podzielenie dowolnego pliku SQL na kilka mniejszych plików (możesz określić maksymalny rozmiar). Składnia SQL będzie utrzymywana poprawnie i działa ze składnią zapytania „wielokrotne wstawianie”.
Mam nadzieję że to pomoże!
źródło
1) Czy masz opcję przesłania pliku inną metodą, np. Scp lub ftp, a następnie przywrócenia go z pliku lokalnego?
2) Czy twój dostawca Internetu zabierze plik na CD i załaduje go dla ciebie?
3) Czy możesz przywrócić plik na serwerze lokalnym, a następnie wykonać z niego serię plików kopii zapasowych, stosując określone kryteria, aby utrzymać indywidualne rozmiary?
4) Czy możesz podzielić plik ręcznie, a następnie uporządkować polecenia SQL na końcu plików?
źródło
4 was my first thought, but I can't even open the large file in notepad or any editor
- Notepad ++ może sobie z nimi poradzić. jeszcze spójrz na superuser.com/questions/34749/…Możesz podzielić duży plik w Eclipse. Próbowałem z powodzeniem pliku 105 GB w systemie Windows:
Wystarczy dodać bibliotekę MySQLDumpSplitter do swojego projektu: http://dl.bintray.com/verace/MySQLDumpSplitter/jar/
Szybka uwaga na temat importowania:
źródło
Miałem też ten problem i postanowiłem zakodować fragment kodu o wyjątkowo dużej pamięci i wydajności procesora, który dzieli pojedynczy plik .sql na kilka (jeden na tabelę).
Musiałem to napisać, ponieważ inne znalezione przeze mnie rozwiązanie nie działało wystarczająco dobrze. Na prawdziwym zrzutu 16 GB udało mi się go podzielić w mniej niż 2 minuty.
Kod i instrukcje są dostępne na stronie projektu na github
źródło
Istnieje kilka opcji, jeśli możesz uruchomić skrypt bash lub perl. Spróbuj tego z yoodey.com
źródło
Zamiast dzielić plik, możesz użyć klienta MySQL na komputerze lokalnym i połączyć go ze zdalną bazą danych MySQL. Używam HeidiSQL i uważam, że jest bardzo dobry.
Oczywiście przesłanie 250 MB instrukcji SQL przez Internet może chwilę potrwać.
Możesz także wypróbować BigDump
źródło