![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 103 Pomógł: 0 Dołączył: 9.01.2004 Ostrzeżenie: (20%) ![]() ![]() |
Witam !
Od jakiegoś czasu robię regularne kopie bazy danych zapisując je do plików .sql (zapytanie dodające strukture i dane). niestety w tym moemencie jej rozmiar dochodzi do 450 mb, a serwer padł... jak dodać tak dużą bazę do mysql'a? jesli uzywam np. Navicat czy MySQL Client to zawsze mam "Out of Memory"... chciłbym uniknąć dzielenia tego pliku na kilkadziesiąt mniejszych... Pozdrawiam i proszę o pomoc Patryk Ten post edytował xPatryk 26.02.2005, 09:42:38 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 123 Pomógł: 0 Dołączył: 24.10.2004 Skąd: TG Ostrzeżenie: (0%) ![]() ![]() |
Kopie można wykonywać z wielu powodów. Najczęściej tworzy się kopie bezpieczeństwa, która pozwoli odtworzyć stan bazy z ostatniego dnia lub godziny. Ta czynność powinna być wykonywana tym częściej im ważniejsze dane przechowywane są w bazie.
Innym powodem może być chęć przeniesienia zawartości bazy danych pomiędzy różnymi systemami lub na inne serwery. Wtedy również wykonanie kopii tabel i baz jest konieczne aby nie wprowadzać wszystkich danych od nowa. MySQL pozwala wykonywać kopie z wieloma parametrami, ale najczęściej wykorzystuje się tylko kilka z nich, które omówię na przykładach. Zobaczysz także jak odtworzyć kopię z naszego archiwum. Tworzymy kopię Aby wykonać kopię bazy należy uruchomić program mysqldump, który jest dołączony do dystrybucji MySQL. Tworzy on kopię bazy lub jej fragmentu w zwykłym pliku tekstowym. Składnia polecenia jest prosta: Kod mysqldump --all-databases -u root -ptajne45 >/kopie/wszystkie_bazy.txt Przełącznik --all-databases informuje program, że robimy kopię wszystkich baz danych logując się jako użytkownik root (-u root) z hasłem "tajne45" podanym zaraz po przełącznikiem -p. Po uruchomieniu polecenia zrzuci zawartość wszystkich baz do pliku. Taki "zrzut" w slangu komputerowym nazywany jest "dumpem". Jeżeli baz danych jest dużo proces może być bardzo czasochłonny. W praktyce niezbyt często robi się kopię wszystkich baz. Zwykle wykonuje się kopię tylko konkretnej bazy. Aby w całości zachować jej strukturę i zawartość (rekordy) użyj przełącznika --all i podaj nazwę bazy danych: Kod mysqldump --all -u root -phaslo nazwa_bazy >/kopie/plik.txt Przełącznik --all informuje program, że robimy kopię wszystkiego w wybranej bazie danych. W poleceniu podajemy nazwę bazy danych do skopiowania i miejsce docelowe, np. plik.txt w wybranym katalogu. Oczywiście opcji i przełączników programu mysqldump jest sporo w zależności od zastosowań i potrzeb. Aby zrzucić tylko strukturę tabel w bazie, bez zawartości rekordów - możesz użyć przełącznika -d zamiast -all: Kod mysqldump -d -u root -phaslo nazwa_bazy >/kopie/plik.txt W zasadzie te trzy polecenia stosuje się w praktyce najczęściej. Pierwsze do wykonania kopii wszystkich baz MySQL, drugie do kopiowania wybranych baz, a trzecie do kopiowania struktury wybranych baz danych. Odtwarzamy kopie Odtworzenie bazy danych nie jest skomplikowane. Wystarczy uruchomić klienta MySQL z przekierowaniem zawartości pliku do bazy danych: Kod mysql -u root -p < wszystkie_bazy.txt Albo dla wybranej bazy: Kod mysql -u root -p baza < kopiabazy.txt Warto znać te kilka poleceń aby szybko i sprawnie wykonać kopię bazy do pliku i odtworzyć bazę gdy będzie to konieczne. Inny sposób to fizyczne przeniesienie plików z jednego komputera do inny. W katalogu z bazą danych znajduje się katalog data/ gdzie składowane są bazy (każdy katalog odpowiada nazwie bazy). Wewnątrz katalogów bazy znajdują się pliki z tabelami. Każda tabela składa się z trzech plików: Kod c:\mysql\data\baza1\tabela1.frm - definicja tabeli c:\mysql\data\baza1\tabela1.myi - indeks tabeli c:\mysql\data\baza1\tabela1.myd - dane w tabeli Wystarczy skopiować całą bazę lub wybrane tabele i wgrać do innego komputera, gdzie też zainstalowany jest MySQL. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 10.10.2025 - 17:47 |