MySQL Backup и Restore

MySQL е многопотребителска, многопоточна система за управление на бази от данни.

Рано или късно на потребителите се налага да направят резервно копие (backup) на своите бази данни и на по-късен етап, да го възстановят (restore).

В настоящата статия ще ви покажем как да направите резервно копие (backup) и как да го възстановите (restore).

Запазване на една база

Може да използвате mysqldump за създаване на backup чрез следната команда:

mysqldump -u [username] -p [password] [databasename] > [backupfile.sql]

[username] – потребителят, който използвате за достъп до базата данни
[password] – паролата за достъп до базата данни
[databasename] – името на базата данни
[backupfile.sql] – файлът, в който ще се запише backup-ът.

Пример:

mysqldump -u root -p Customers > custback.sql

Може да зададете и определени таблици от базата данни, на които искате да направите backup. Ако искате да запазите само таблиците php_tutorials и mysql_tutorials от базата данни Tutorials, то може да използвате следната команда:

mysqldump -u root -p Tutorials php_tutorials mysql_tutorials > tut_backup.sql


Backup на повече от една база данни

Понякога се налага да запазите повече от една база данни. В този случай може да използвате опцията –database, последвана от списък на базите данни, които искате да запазите. Базите данни трябва да бъдат разделени с празно място:

mysqldump -u root -p --databases Tutorials Articles Comments > content_backup.sql


Backup на всички бази данни

Ако искате да запазите всички бази данни може да използвате опцията –all-databases.

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


Запазване и компресиране на база данни

Ако базата данни е много голяма, може да се наложи да я компресирате. Това става със следната команда:

mysqldump -u [uname] -p[pass] [dbname] | gzip -9 > [backupfile.sql.gz]

Ако искате да разархивирате .gz файла, използвайте следната команда:

gunzip [backupfile.sql.gz]


Възстановяване на MySQL база данни

В горните примери запазихме базата данни Tutorials във файла tut_backup.sql. За да възстановите базата данни, изпълнете следните стъпки:

Създайте новата база данни и възстановете данните:

mysql -u [uname] -p[pass] [db_to_restore] < [backupfile.sql]

Пример:

mysql -u root -p Tutorials < tut_backup.sql


Възстановяване на компресирана база данни:

За да възстановите компесирана база данни, използвайте следната команда:

gunzip < [backupfile.sql.gz] | mysql -u [uname] -p[pass] [dbname]


Възстановяване на всички бази данни:

mysql -u [username] -p[pass] < backup.sql


Възстановяване на база данни, която съществува

Ако се налага да възстановите база данни, която вече съществува:

mysqlimport -u [uname] -p[pass] [dbname] [backupfile.sql]

Копирането е забранено без изричното съгласие на vGuides.net