Има основно два начина за архивиране на вашите mysql бази данни:студено (статично/офлайн) архивиране и горещо (динамично/онлайн) архивиране.
1 С помощта на crontab скрипт архивирайте вашата db всеки ден/седмица/месец и т.н. Ние го наричаме студено архивиране. Скриптът може би е така:
!#/bin/sh
mysqldump -usample_name -S/tmp/sample.sock --databases db1 db2 > db_backup_time.sql
можете да намерите ръководство за mysqldump тук . Всъщност целият chp.6 говори за архивиране и възстановяване на база данни. След това ще получавате огледалото на вашите данни (напр. 6 сутринта) всеки ден.
2 Използване на mysql репликация (структура главен-подчинен) за онлайн архивиране. Всички заявки към главния, водещи до модификации на данните, ще се изпълняват и на подчинен.
сравнение:
По принцип студеното архивиране е по-лесно. Но когато се случат лоши неща, първият метод може да възстанови данните само до момента, в който сте изхвърлили огледалото. С инструмента за горещо архивиране и mysqldump можете да възстановите данните по всяко време.
Според моя опит, ние винаги съставяме тези два метода заедно:
- пишете огледало всяка сутрин и,
- изградете подчинен на master db на друга физическа машина.
това би било безопасно.