Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Jak wyeksportowac naprawde duza baze ?
kiler129
post 4.05.2008, 14:22:33
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.


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
dr_bonzo
post 4.05.2008, 14:57:12
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 ?


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
kiler129
post 4.05.2008, 20:56:18
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 ?


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
John
post 4.05.2008, 21:37:21
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.


--------------------
Odpowiedź na wszystko : manual,appendix. Ulubiona książka : PHP 5 for Dummies.
Studia uh ? ;-).
Go to the top of the page
+Quote Post
webdice
post 4.05.2008, 21:50:04
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 4.05.2008, 22:34:16
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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
NoiseMc
post 5.05.2008, 07:01:09
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 6.05.2008, 20:13:16
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 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


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
dr_bonzo
post 6.05.2008, 20:58:41
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)


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
kiler129
post 6.05.2008, 21:10:46
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 biggrin.gif
Mozesz mi napisac jak to ma wygladac, tj jak ma wygladac tai skrypt basha ?


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post
dr_bonzo
post 6.05.2008, 21:23:47
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


--------------------
Nie lubię jednorożców.
Go to the top of the page
+Quote Post
kiler129
post 6.05.2008, 22:06:23
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 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


--------------------
flexiCMS v2 [|||||||+--] 75% done
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 11:12