Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Ręczny backup dużej bazy danych (używając PHP)
Forum PHP.pl > Forum > Bazy danych > MySQL
MatKus
Witam.
Pracuję nad pewnym serwisem i chcę sobie wykonać lokalną jego kopię, na której będe mógł spokonie pracować zamiast robić to na żywym orgamiźmie.
W tym celu potrzebuję wykonać zrzut sporej bazy danych.
i tu pojawia się problem. phpMyAdmin nie wykona tego, bo "Allowed memory size of 134217728 bytes exhausted..."
dostępu do shella nie mam, więc standardowy mysqldump
Mail do admina serwera raczej też odpada, bo za ponadplanowe backupy każą sobie płacić, a zresztą zanim się doczekam na jego reakcję, to się zestarzeję wink.gif

Czy ktoś spotkał się ze skryptem, który by coś takiego potrafił wykonać? Coś a'la bigdump, tylko w drugą stronę? najlepiej żeby od razu gzippem albo czymkolwiek podobnym to kompresował? Tylko ważny element - ten skrypt musi mieć możliwość działania na raty, bo zapisanie niektórych elementów strony może potrwać długo (niektóre tabele mają po kilkaset MB) i prawdopodobnie dostał by timeouta, gdyby wszystko na raz zrzucał.
bpskiba
Cytat(MatKus @ 12.04.2012, 15:15:38 ) *
Witam.
Pracuję nad pewnym serwisem i chcę sobie wykonać lokalną jego kopię, na której będe mógł spokonie pracować zamiast robić to na żywym orgamiźmie.
W tym celu potrzebuję wykonać zrzut sporej bazy danych.
i tu pojawia się problem. phpMyAdmin nie wykona tego, bo "Allowed memory size of 134217728 bytes exhausted..."
dostępu do shella nie mam, więc standardowy mysqldump
Mail do admina serwera raczej też odpada, bo za ponadplanowe backupy każą sobie płacić, a zresztą zanim się doczekam na jego reakcję, to się zestarzeję wink.gif

Czy ktoś spotkał się ze skryptem, który by coś takiego potrafił wykonać? Coś a'la bigdump, tylko w drugą stronę? najlepiej żeby od razu gzippem albo czymkolwiek podobnym to kompresował? Tylko ważny element - ten skrypt musi mieć możliwość działania na raty, bo zapisanie niektórych elementów strony może potrwać długo (niektóre tabele mają po kilkaset MB) i prawdopodobnie dostał by timeouta, gdyby wszystko na raz zrzucał.



Phpmyadmin potrafi wykonać backup samej struktury bazy lub wybranych tabel. Najprościej będzie podzielić backup na kilka części i załatwić to phpmyadminem.
Problem będziesz miał z indeksami. Pierwsze należy przenieść strukturę bez indeksów, potem przenieść dane, a na końcu dodać indeksy.

Piotrek
MatKus
Tak, myślałem i o tym, ale to i tak będzie kilkanaście, jeśli nie kilkadziesiąt kawałków, bo w niektórych przypadkach nawet pojedynczej tabeli w całości nie zrzuci (największa tabela ma kilka mln wierszy po kilkadziesiąt kolumn) i myślałem, że ktoś może stworzył automat na to. Ale trudno, będę się bawił.
redeemer
Jak masz dostęp do crona to wrzuć mysqldumpa do crona. Może możesz też ustawić aby do bazy można się podpiąć "z zewnątrz".
by_ikar
http://sypex.net/en/ <- nawet kilkuset megową bazę, czy kilku gigową potrafi w bardzo krótkim czasie eksportować/importować wink.gif nie ma za co.
gothye
od tworzenia backup tak dużej bazy jest mysqldump
by_ikar
Ale mysqldump potrafi długo taką bazę mielić: http://forum.php.pl/index.php?showtopic=190877 oraz nie każdy ma dostęp do shh żeby móc zrobić dumpa bazy. sypex jest o tyle dobry że wymaga php jedynie. A szybkość robienia takich backupów jest nieporównywalna.
MatKus
Dzięki, by_ikar, o to własnie mi chodziło.
A o tym, że nie mam dostepu do shella pisałem, gdybym miał, już dawno bym mysqldumpem załatwił sprawę sad.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2024 Invision Power Services, Inc.