Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyeksportowac naprawde duza baze ?
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


A wiec mam pytanie - czy macie jakies sprawdzone sposoby?
Jest nie tyle baza co kilkaset baz danych, musze to przeniesc na inny serwer.
W sumie zajmuje to ok. 6GB.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


mysqldump: http://dev.mysql.com/doc/refman/5.0/en/mysqldump.html ?
Go to the top of the page
+Quote Post
kiler129
post
Post #3





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Tak ale kaprys taki ze prawdopodobnie to mi sie nie zmiesci na serwerze, sprawdzilem teraz i okazuje sie ze bazy maja grubo ponad 10GB.
Czy jest jakis skrypt perla/basha/php/c/cokolwiek ktory potrafi zgrac 1 baze, wyslac na ftp, usunac temp, zgrac kolejna i wyslac na ftp i tak w kolo az skonczy ?
Go to the top of the page
+Quote Post
John
post
Post #4





Grupa: Zarejestrowani
Postów: 107
Pomógł: 11
Dołączył: 1.08.2007
Skąd: Poland,Warsaw

Ostrzeżenie: (0%)
-----


Być może moje rozwiązanie, jest nieco mało optymalne, ale jak dla mnie podziałało.
Napisać robota, który będzie pobierał po 100,000 rekordów zrzucał je do plików tekstowych ( tj, ok 1mb ),
potem wgrywać np. 100 plików i drugi robot będzie wrzucał te rekordy do bazy. Mankamentem mojego rozwiązania, którego nie potrafię obejść jest quota dla zapytań ( na moim serwerze wynosi to 200 000 na godzinę ) tzn, że wgrywanie takiej ilości rekordów może potrwać naprawę długo.
Go to the top of the page
+Quote Post
webdice
post
Post #5


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




Zainteresuj się parametrem host.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


1. Co do skryptu: raczej nie istnieje.

2. mozesz sprobowac mysql_dump -h inny_serwer bazka > mysql -h localhost nowa_bazka co przesle od razu cala bazke bez trzymania 10G na dysku, ALE, jak padnie ci lacze to zaczynasz wszystko od zera
Go to the top of the page
+Quote Post
NoiseMc
post
Post #7





Grupa: Zarejestrowani
Postów: 398
Pomógł: 10
Dołączył: 24.11.2004
Skąd: Łódź

Ostrzeżenie: (0%)
-----


Albo skompresuj w locie:
Kod
mysqldump -uUSER -p=PASS baza | bzip2 -c > plik.sql.bz2
Go to the top of the page
+Quote Post
kiler129
post
Post #8





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Cytat(NoiseMc @ 5.05.2008, 08:01:09 ) *
Albo skompresuj w locie:
Kod
mysqldump -uUSER -p=PASS baza | bzip2 -c > plik.sql.bz2



A nie czasem:

Kod
mysqldump -u USER -p HASLO -h HOST BAZA | bzip2 -c > plik.sql.bz2



edit:
Mniejsza z tym dziala moje, twoje pewnie tez. Jak to zautomatyzowac? Nie mam zamiaru wydawac dla kazdej abzy recznie polecenia (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Czy ktos moze napisac mi skrypt bash ktory sam po kolei kazda baze zdumpuje ?

Ten post edytował kiler129 6.05.2008, 20:25:20
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #9





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


W php se napisz skrypt ktory pobierze liste baz i wypisze skrypt bashowy, (prosta petelka) ktory dumpa zrobi. Bedzie chyba szybciej (do napisania)
Go to the top of the page
+Quote Post
kiler129
post
Post #10





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Cytat(dr_bonzo @ 6.05.2008, 21:58:41 ) *
W php se napisz skrypt ktory pobierze liste baz i wypisze skrypt bashowy, (prosta petelka) ktory dumpa zrobi. Bedzie chyba szybciej (do napisania)


Ok php to nie problem, mam taki skrypt ale wiesz ja i bash to 2 inne swiaty (IMG:http://forum.php.pl/style_emoticons/default/biggrin.gif)
Mozesz mi napisac jak to ma wygladac, tj jak ma wygladac tai skrypt basha ?
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #11





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


Ziom:

  1. <?php
  2. file_put_contents( 'plik.sh', "mysqldump -u USER -p HASLO -h HOST " . $baza . " | bzip2 -c > " . $baza . ".sql.bz2" );
  3. ?>

o to mi chodzilo.

edit: to oczywiscie niepelny przyklad, dorob sobie pobieranie nazw baz, i dopisywanie do pliku.
w bashu jest wiecej z tym roboty, na etapie przetworzenia listy baz (musialbym byc biegly w awk, while'ach itp - dlatego szybciej w php to napisac) i wrzucenia ich w petle.

Ten post edytował dr_bonzo 6.05.2008, 21:27:09
Go to the top of the page
+Quote Post
kiler129
post
Post #12





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Cytat(dr_bonzo @ 6.05.2008, 22:23:47 ) *
Ziom:

  1. <?php
  2. file_put_contents( 'plik.sh', "mysqldump -u USER -p HASLO -h HOST " . $baza . " | bzip2 -c > " . $baza . ".sql.bz2" );
  3. ?>

o to mi chodzilo.

edit: to oczywiscie niepelny przyklad, dorob sobie pobieranie nazw baz, i dopisywanie do pliku.
w bashu jest wiecej z tym roboty, na etapie przetworzenia listy baz (musialbym byc biegly w awk, while'ach itp - dlatego szybciej w php to napisac) i wrzucenia ich w petle.


Ale to chyba niezbyt dziala (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif)
mysql dump zada hasla w tyrbie interaktywnym wiec dawanie hasla po -p to idiotyzm ihmo.


edit2:
Jako tako sobie poradzilem, zrobilem usera z prawmai root bez hasla na czas dumpowania ale jeszc jedna sprawa.
Czy da sie dopisac tak aby po kazdej bazie zanim zdumpuyje kolejna wyslal dump na ftp i skasowal plik?
Bylo by to o wiele wygodniejsze.

Ten post edytował kiler129 6.05.2008, 22:44:25
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 3.10.2025 - 01:26