Робота з бекапами SQL, MySQL,MariaDB, mysqldump
Створюємо бекап (резервну копію, dump)
Бекап однієї бази DATABASEmysqldump -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql
або створюємо резервну копію всіх баз даних.mysqldump -u root -p password --opt >/tmp/alldatabases.sql
Створюємо резервну копію структури бази даніх, без самих даних.mysqldump --no-data - u USER -pPASSWORD DATABASE > /path/to/file/schema.sql
Якщо потрібно зробити дамп лише однієї чи кількох таблиць.mysqldump -u USER -pPASSWORD DATABASE TABLE1 TABLE2 TABLE3 > /path/to/file/dump_table.sql
Створюємо бекап і одразу його архівуємо.mysqldump -u USER -pPASSWORD DATABASE | gzip > /path/to/outputfile.sql.gz
Створення бекапа із зазначенням дати створення.mysqldump -u USER -pPASSWORD DATABASE | gzip > `date +/path/to/outputfile.sql.%Y%m%d.%H%M%S.gz`
Відновлення бази даних (або таблиці) із резервної копії
mysql -u USER -pPASSWORD DATABASE < /path/to/dump.sql
Заливаємо архів бекапу до бази.gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
або такzcat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
або так7z x -so /path/to/outputfile.7z | mysql -u USER -pPASSWORD DATABASE
Створюємо нову базу данихmysqladmin -u USER -pPASSWORD create NEWDATABASE
Зручно використовувати бекап з додатковими опціями -Q -c -e, тобто.mysqldump -Q -c -e -u USER -pPASSWORD DATABASE > /path/to/file/dump.sql, де:
- -Q - Обертає імена зворотними лапками
- -c - Робить повну вставку, включаючи імена колонок
- -e - Робить розширену вставку. Підсумковий файл виходить меншим і робиться він трохи швидше
Для перегляду списку баз даних можна використовувати команду:mysqlshow -u USER -pPASSWORD
Також можна переглянути список таблиць бази:mysqlshow -u USER -pPASSWORD DATABASE
Для таблиць InnoDB треба додавати single-transaction, це гарантує цілісність даних бекапа.
Для таблиць MyISAM це актуально, оскільки де вони підтримують транзакционность.