Jaki jest najprostszy sposób na uzyskanie danych dla pojedynczej tabeli, usunięcie pojedynczej tabeli lub podzielenie całego pliku zrzutu na pliki, z których każdy zawiera pojedyncze tabele? Zwykle robię dużo męczących wyrażeń regularnych, ale założę się, że są prostsze sposoby na robienie tych rzeczy za pomocą awk/perl itd. Pierwsza strona wyników Google przywraca masę niedziałających skryptów perl.Manipulowanie gigantycznymi plikami zrzutu MySQL
Odpowiedz
Jeśli możesz, oszczędzaj sobie wiele kłopotów i używaj mysqldump -T
.
--tab = droga, -T ścieżka
Produce rozdzielone tabulatorami plików danych. Dla każdej zrzuconych tabel mysqldump tworzy plik tbl_name.sql, który zawiera instrukcję CREATE TABLE , która tworzy tabelę i plik tbl_name.txt, który zawiera dane . Wartość opcji to katalog, w którym należy zapisać pliki.
Domyślnie pliki danych .txt są formatowane za pomocą znaków tabulacji między wartościami kolumn i znakiem nowej linii na końcu każdej linii. Format można określić jawnie, korzystając z opcji --fields-xxx i - lines-ended-by.
Uwaga Ta opcja powinna być używana tylko wtedy, gdy mysqldump jest uruchomiony na tym samym komputerze co serwer mysqld. Musisz mieć uprawnienie FILE, , a serwer musi mieć uprawnienia do zapisu plików w podanym katalogu.
Kiedy trzeba wyciągnąć pojedynczy stół ze zrzutu sql, używam kombinacji grep, head and tail.
Np
grep -n "CREATE TABLE" dump.sql
To wtedy daje numery linii dla każdego z nich, więc jeśli stół jest na linii 200, a jeden po jest na linii 269, robię:
head -n 268 dump.sql > tophalf.sql
tail -n 69 tophalf.sql > yourtable.sql
Wyobrażam sobie, że mógłbyś rozszerzyć te zasady, aby stworzyć scenariusz, który podzieliłby całą sprawę na jeden plik na stół.
Ktoś chce iść, robiąc to tutaj?
Kolejny bit, które mogą pomóc rozpocząć pętlę bash dzieje:
grep -n "CREATE TABLE " dump.sql | tr ':`(' ' ' | awk '{print $1, $4}'
To daje piękny listę numerów linii i nazwy tabel, takich jak:
200 FooTable
269 BarTable
Maatkit wydaje się całkiem stosowne do tego z mk-parallel-dump i mk-parallel-restore.
Narzędzia te mają zarówno przestarzała i nie są uważane za odpowiednie do użycia w kopiach zapasowych. –
This shell script będzie pobrać tabele, które chcesz i przekazać je do splitted.sql
.
Jest w stanie zrozumieć wyrażeń regularnych, ponieważ dodałem opcję sed -r
.
Również MyDumpSplitter może podzielić zrzut na poszczególne zrzuty tabeli.
Trochę się spóźniam na tę, ale jeśli to może pomóc każdemu, musiałem podzielić ogromny plik zrzutu SQL w celu zaimportowania danych do innego serwera Mysql. do czego doszedłem, dzielenie pliku zrzutu przy użyciu polecenia systemowego.
Podział -l 1000 import.sql splited_file
Powyższy podzieli pliku SQL co 1000 wierszy.
Nadzieja to pomaga ktoś
- 1. Manipulowanie plikami MIDI w Pythonie
- 2. mysql zrzutu na derby
- 3. Biblioteka do czytania zrzutu MySQL?
- 4. Manipulowanie możliwymi do wypełnienia plikami PDF w Elixir/Erlang
- 5. Uzyskiwanie lub manipulowanie wszystkimi plikami cookie w Selenium Webdriver
- 6. Manipulowanie danymi utf8mb4 z MySQL z PHP
- 7. Konwertuj plik zrzutu PostgreSQL do MySQL?
- 8. Generowanie zrzutu danych MySQL w języku SQL z PHP
- 9. Manipulowanie polem formularza PDF
- 10. C# Manipulowanie danymi JSON
- 11. Manipulowanie monada stos
- 12. Manipulowanie wyrażeniami w R
- 13. Manipulowanie V8 ast
- 14. Manipulowanie linie danych
- 15. Manipulowanie szczegółami nagłówka WCF
- 16. JavaScript dziwne manipulowanie datami
- 17. Manipulowanie NumericMatrix w Rcpp
- 18. Jak mogę zaimportować duży (14 GB) plik zrzutu MySQL do nowej bazy danych MySQL?
- 19. Rekursywnie zrzutu obiektu
- 20. Procesor zrzutu GCC definiuje
- 21. Łatwy sposób, aby wyświetlić pliki zrzutu PostgreSQL?
- 22. Manipulowanie plikiem Pythona z C#
- 23. Manipulacja płótnem a manipulowanie elementami
- 24. manipulowanie elementem css z jquery
- 25. Manipulowanie znacznikami act_as_taggable_on i ActiveAdmin
- 26. Manipulowanie trasą NavigatorIOS na komponencie
- 27. Udostępnianie zmiennych między plikami Makefile
- 28. Jak programowo zrzutu danych JMX?
- 29. Narzędzie analizy zrzutu wątków/metoda
- 30. Nakładka ekranu do zrzutu ekranu
Wyjście głowy może być po prostu rurami do ogona - to nie jest zły pomysł – deadprogrammer
Całkiem ciekawe rozwiązanie ale maatkit może zrobić to samo, a nawet więcej: D –