Skocz do zawartości
  • 👋 Witaj na MPCForum!

    Przeglądasz forum jako gość, co oznacza, że wiele świetnych funkcji jest jeszcze przed Tobą! 😎

    • Pełny dostęp do działów i ukrytych treści
    • Możliwość pisania i odpowiadania w tematach
    • System prywatnych wiadomości
    • Zbieranie reputacji i rozwijanie swojego profilu
    • Członkostwo w jednej z największych społeczności graczy

    👉 Dołączenie zajmie Ci mniej niż minutę – a zyskasz znacznie więcej!

    Zarejestruj się teraz

[Baza Danych] Poprawny, zalecany backup MySQL bez uszkodzenia tabel.


Rekomendowane odpowiedzi

Opublikowano

Witam wszystkich.

 

Postanowiłem podzielić się z wami trochę moją wiedzą administracyjną i nauczyć was trochę robienia pewnych rzeczy po Bożemu a nie od dupy strony tak jak tu nie którzy wypisują. Siedzę w FreeBSD od wersji 6.4 i zacznę od pokazania wam jak powinno się robić backup bazy danych bo aż zgroza jak wy to robicie.

 

Po pierwsze primo gdy baza danych MySQL jest sprawna do wykonania backupu bazy służy polecenie mysqldump, które zapisuje bazę jak i jej zawartość w postaci zrzutu SQL do pliku tekstowego. Backup taki jest bezpieczny i nie uszkadza on struktury tabel jak i samych rekordów. Wykonuje się go jednym poleceniem. Można wykonać backup jednej konkretnej bazy lub wszystkich, a robi się to w sposób następujący:

 

A. Backup wszystkich baz danych:

 

mysqldump --all-databases -u root -p > backup.sql

 

Po wpisaniu poprawnego hasła użytkownika root backup wszystkich baz danych zostaje zapisany w pliku backup.sql w katalogu bieżącym.

 

B. Backup jednej bazy danych:

 

mysqldump -u root -p nazwa_bazy_danych > plik.sql

np.

mysqldump -u root -p player > player.sql

 

Po wpisaniu poprawnego hasła użytkownika root baza danych player zostanie zapisana w pliku player.sql.

 

C. Dla osób chcących wykorzystać powyższa metodę w skrypcie - aby wykonać skrypt który nie będzie nas pytał o hasło należy zastosować taka linię w skrypcie.

 

mysqldump -u root -pHasloRootMySQL nazwa_bazy_danych > plik.sql

np.

mysqldump -u root -pHasloRootMySQL player > player.sql

 

Proszę zwrócić uwagę iż po -p podajemy od razu hasło użytkownika root mysql bez wpisywania spacji. Inaczej wpisane hasło będzie traktowane jako nazwa bazy danych.

 

D. Odtwarzanie backupu z pliku *.sql - do odtworzenia takiego backupu służy polecenie mysql i stosuje się je w sposób następujący.

 

mysql -u root -pHasloRootMySQL < plik.sql

 

Proszę zwrócić uwagę iż po -p podajemy od razu hasło użytkownika root mysql bez wpisywania spacji. Inaczej wpisane hasło będzie traktowane jako nazwa bazy danych.

 

E. Technika backupu poprzez skopiowanie katalogu /var/db/mysql owszem działa ale psuje strukturę tabel co może wpływać na wydajność samej bazy danych oraz uszkodzenie w przyszłości tabeli wraz z utrata danych. Backup taki powinno się robić tylko i wyłącznie w przypadku kiedy nie można z jakiejś przyczyny uruchomić serwera MySQL. Jeśli już decydujecie się na backup poprzez kopie /var/db/mysql czego osobiście nie zalecam.

 

1. Zatrzymajcie najpierw mysql komendą:

/usr/local/etc/rc.d/mysql-server stop

2. zróbcie kopie plików z /var/db/mysql

3. Uruchomcie mysql

/usr/local/etc/rc.d/mysql-server start

 

A po odtworzeniu takiego backupu włączycie diagnostykę bazy danych. Służy do tego polecenie mysqlcheck:

 

mysqlcheck --all-databases -u root -p

 

Jednakże do backupu zalecam stosowanie się do punktów A B C i D.

 

Jeśli jesteście zainteresowani moją wiedzą, współpracą ze mną dotyczącą m.in. jaile amd64 jak i i386 na hoście amd64, ich konfiguracja, bezpieczeństwo (firewall PF + anty dos http), optymalizacja bazy, pamięci, serwera www, automatyczne czyszczenie logów, realny licznik graczy online, zabezpieczenie strony www, zapytania sql, instalacja i konfiguracja systemu, skrypty bash, php, itd. itp... proszę pisać PW. Na gg tylko poważne oferty współpracy.

 

Za wszelkiego rodzaj błędy np. literówki przepraszam i proszę o wyrozumiałość gdyż cały tut pisałem z pamięci w wolnej minucie czasu :-)

 

Pozdrawiam

 

AdminFreeBSD

gg. 37348913

 

PS. Dla zainteresowanych skryptami posiadam skrypty automatycznego backupu metodą B baz account, player, log, pakowania powstałych plików sql. Przekopiowania plików na zewnętrzny serwer ftp wraz z zachowaniem 5 dniowej kopi bazy robionej co godzinę.

- zabezpieczenia: logowania do serwera na klucz RSA, baz danych - TUNEL SSH, FIREWALL, ANTY-DOS, aktualizacja systemu

- jaile: (podział serwera dedykowanego na kilka pod serwerów z oddzielnymi adresami IP, usługami, kontami użytkowników, konfiguracją itd.), aktualizacja jaili, autorestart jaila z wewnątrz jaila

- optymalizacja logów, bazy mysql, naprawianie bazy mysql, automatyczny backup na zewnętrzny serwer FTP, poprawny licznik graczy online, itd.

- programowanie: edycja/pisanie skryptów php, zapytań (query) SQL.

Opublikowano

No proszę, widzę, że kolejny miłośnik tego pięknego unixa się pojawił na mpc =).

 

Tutorial godny uwagi, rozwiał wiele wątpliwości (w tym i moich) .

 

Zasłużony lajk leci ; ).

Opublikowano

No proszę, widzę, że kolejny miłośnik tego pięknego unixa się pojawił na mpc =).

Jeżeli mowa tutaj o treści tuta, to co ma zrzut bazy danych do freebsd?

Opublikowano

Jeżeli mowa tutaj o treści tuta, to co ma zrzut bazy danych do freebsd?

 

Przeczytaj DOKŁADNIE jego topik i domyślisz się, dlaczego tak a nie inaczej stwierdziłem :).

Opublikowano

No Kurcze Ameryka odkryta :)

 

Jeszcze na dodatek muszę się na ssh logować :P

Lepiej napisz odrazu skrypt :P bo będzie zaraz kolejny temat :) z Skryptem

 

np:

#!/bin/sh

mysqldump -u root -pHasloRootMySQL account > account.sql

itp itp :P

Wiem kto jest swój, a kto zwykły pedał
Intel Xeon E5 1650 v2 16GB Ram 1 TB SSD 2x D500 3GB

 

Opublikowano

Inteligentny użytkownik czytający ten temat może napisać sobie taki skrypt sam :) Co za dużo to nie zdrowo.

- zabezpieczenia: logowania do serwera na klucz RSA, baz danych - TUNEL SSH, FIREWALL, ANTY-DOS, aktualizacja systemu

- jaile: (podział serwera dedykowanego na kilka pod serwerów z oddzielnymi adresami IP, usługami, kontami użytkowników, konfiguracją itd.), aktualizacja jaili, autorestart jaila z wewnątrz jaila

- optymalizacja logów, bazy mysql, naprawianie bazy mysql, automatyczny backup na zewnętrzny serwer FTP, poprawny licznik graczy online, itd.

- programowanie: edycja/pisanie skryptów php, zapytań (query) SQL.

  • 6 miesięcy temu...
Opublikowano

#!/bin/sh

 

bkpdate=`date +%Y%m%d`

bkphaslo='xxxxxxxx'

bkpdbname=account

bkpflname=$bkpdate.mysqldump.$bkpdbname.sql

mysqldump -uroot -p$bkphaslo --opt $bkpdbname > $bkpflname

 

bkpdbname=player

 

bkpflname=$bkpdate.mysqldump.$bkpdbname.sql

mysqldump -uroot -p$bkphaslo --opt $bkpdbname > $bkpflname

 

bkpdbname=common

bkpflname=$bkpdate.mysqldump.$bkpdbname.sql

mysqldump -uroot -p$bkphaslo --opt $bkpdbname > $bkpflname

  • 4 miesiące temu...

Zarchiwizowany

Ten temat przebywa obecnie w archiwum. Dodawanie nowych odpowiedzi zostało zablokowane.

×
×
  • Dodaj nową pozycję...