Najlepsze praktyki tworzenia kopii zapasowych serwera MySQL:
Replikacja MySQL
Instalowanie replikacji w MySQL. Będziesz musiał skonfigurować serwer Master i Slave. Wszystkie zapisy do odczytu do bazy danych mogą przejść do twojego serwera slave. Zaletą posiadania replikacji jest to, że możesz wykonać kopię zapasową z serwera podrzędnego bez przerywania serwera głównego, Twoja aplikacja będzie nadal działać na serwerze głównym bez żadnych przestojów.
Za pomocą zrzutu MySQL
Jeśli twój zestaw danych jest mały (zdaję sobie sprawę, że „mały” jest terminem względnym .. aby go zakwalifikować, powiedzmy <10 GB), wtedy mysqldump prawdopodobnie będzie działał świetnie. To proste, jest online i jest bardzo elastyczne. Tylko kilka rzeczy, które może zrobić mysqldump: wykonać kopię zapasową wszystkiego lub tylko niektórych baz danych lub tabel wykonać kopię zapasową tylko DDL zoptymalizować zrzut dla szybszego przywracania, aby wynikowy plik sql był bardziej kompatybilny z innymi RDBMS i wieloma innymi rzeczami.
Najważniejsze opcje związane są jednak ze spójnością kopii zapasowej. Moje ulubione opcje to: - pojedyncza transakcja: ta opcja zapewnia spójne tworzenie kopii zapasowych, jeśli (i tylko jeśli) tabele używają silnika pamięci InnoDB. Jeśli masz tabele MyISAM nie tylko do odczytu, nie używaj tej opcji podczas tworzenia ich kopii zapasowych. --master-data = 2: ta opcja upewni się, że zrzut jest spójny (wykonując blokadę wszystkich tabel, chyba że dodałeś opcję - pojedyncza transakcja). Opcja --master-data zapisuje również pozycję dziennika binarnego w wynikowym pliku zrzutu (= 2 powoduje, że ten wiersz jest komentarzem w pliku zrzutu)
Ostatnia uwaga na temat mysqldump: pamiętaj, że czas przywracania może być znacznie dłuższy niż czas tworzenia kopii zapasowej. Będzie to zależeć od kilku czynników, na przykład od liczby indeksów.
Migawka LVM
Dla tych, którzy mają większe zbiory danych, właściwym rozwiązaniem jest fizyczna kopia zapasowa. Chociaż możesz zrobić zimną kopię zapasową (tj. Zamknąć usługę MySQL, skopiować katalog danych, ponownie uruchomić usługę), wiele osób nie chce przestoju. Moje ulubione rozwiązanie to migawki. Może być gorący (dla InnoDB) lub wymagać krótkiej blokady (dla MyISAM). Nie zapomnij dołączyć wszystkich swoich danych (w tym ib_logfiles). Lenz zapewnia przydatne narzędzie, które może w tym pomóc: http://www.lenzg.net/mylvmbackup/
Korzystanie z MySQL Enterprise Backup
Zalety korzystania z MySQL Enterprise Backup:
- „Gorące” kopie zapasowe tabel InnoDB odbywają się całkowicie online, bez blokowania tworzenia kopii zapasowych tylko określonych tabel lub obszarów tabel
- Wykonaj kopię zapasową tylko danych, które zmieniły się od czasu poprzedniej kopii zapasowej
- Skompresowana kopia zapasowa - oszczędza miejsce do 90% i wiele więcej ..
Odniesienie:
http://www.mysql.com/products/enterprise/backup/features.html
http://www.mysql.com/products/enterprise/backup.html
--single-transaction
ale nie zapomnij dodać,--events --routines
a ja też zawsze używam--triggers
, nawet jeśli jest domyślnie włączony, ponieważ można go wyłączyć w my.cnf. Powiedziałbym, że prawie zawsze dobrze jest stosować je jako standardową praktykę, niezależnie od tego, czy obecnie masz takie typy obiektów w bazie danych, czy nie.