Несмотря на надёжность современных компьютеров и серверов, время от времени случаются поломки. А значит пользователи постоянно рискуют потерять все свои данные. Чтобы решить проблему потери информации, специалисты рекомендуют делать резервное копирование MySQL.
Резервное копирование, или бэкап ― это создание копии файлов и папок на дополнительном носителе информации. Резервное копирование позволяет восстанавливать повреждённые данные на основном носителе. В этой статье мы расскажем, как сделать бэкап MySQL.
- Где можно хранить резервные копии
- Способы резервного копирования MySQL
- Как создать бекап базы данных MySQL
- Как создать бэкап отдельной таблицы
- Как сохранить копию нескольких баз данных
- Как создать новую базу данных MySQL
- Как восстановить базу данных MySQL из резервной копии
- MySQL Backup types
- How to create a logical MySQL backup
- Simple backup of MySQL database using
- Backup using
- Backup using
- Backup using
- Backup using
- How to create a physical MySQL database backup
- Manual creation of a MySQL Server backup by copying data files
- Creating a MySQL Server backup by copying data files using a batch script
- Using mysqlbackup utility
- Bottom line
- Синтаксис команды Mysqldump
- Резервное копирование одной базы данных MySQL
- Резервное копирование нескольких баз данных MySQL
- Резервное копирование всех баз данных MySQL
- Резервное копирование всех баз данных MySQL в отдельные файлы
- Создание сжатой резервной копии базы данных MySQL
- Создать резервную копию с отметкой времени
- Восстановление дампа MySQL
- Восстановление одной базы данных MySQL из полного дампа MySQL
- Экспорт и импорт базы данных MySQL одной командой
- Автоматизация резервного копирования с помощью Cron
- Заключение
- 4.4.1 Резервное копирование баз данных
Где можно хранить резервные копии
Бэкап можно хранить на любом внешнем носителе. Желательно, чтобы этот носитель не был подключен к основному устройству постоянно.
- Внешний жёсткий диск. Он представляет собой тот же жёсткий диск, что и в компьютере, но подключается с помощью USB-разъема. Это надёжное устройство для хранения информации, однако его нужно беречь от падений.
- Флешка. Флешка менее надёжна, чем жёсткий диск, так как её легче сломать или потерять. Всё-таки в первую очередь она создана для переноса данных. Однако её большими плюсами являются маленькие размеры и простота использования.
- Облачные хранилища. Это популярный метод хранения информации. Плюсами облачного хранения копий являются:
- Автоматическое копирование. Можно настроить сохранение данных, например, раз в сутки или раз в неделю.
- Экономия. Облачное хранение часто обходится дешевле, чем материальные носители, и не требует обслуживания со стороны пользователя.
- Безопасность. Современные облачные технологии обеспечивают высокую информационную безопасность за счёт шифрования данных.
Способы резервного копирования MySQL
Способов сделать копирование базы данных несколько:
- Можно временно выключить MySQL-сервер и скопировать файлы из папки /var/lib/mysql/db/. Само копирование занимает мало времени, однако восстановление сервера может занять часы. Копировать базу нужно регулярно, а постоянное отключение нехорошо для сервиса.
- Можно использовать снэпшоты. Для них не нужно останавливать MySQL-сервер. Однако создание снимка может повлиять на работоспособность БД.
- Для копирования MySQL можно использовать утилиту mysqldump, которая была создана Игорем Романенко. С её помощью создаётся дамп содержимого базы данных. Дамп ― это файл с копией БД. Файл состоит из SQL-команд.
- прост в использовании,
- лучше переносятся между версиями MySQL,
- можно копировать как все имеющиеся БД, так и отдельно выделенные таблицы,
- совместим практически с любой СУБД (не только MySQL),
- можно выгружать данные в форматах CSV и XML.
Недостатки использования дампов:
- медленное создание копии БД (особенно для тяжёлых файлов),
- требует много дискового пространства.
Третий вариант имеет много плюсов. Ниже мы расскажем, как сделать резервную копию MySQL с помощью утилиты mysqldump.
Как создать бекап базы данных MySQL
Синтаксис команды для создания резервной копии:
mysqldump [опции] [имя_базы] > [путь_и_имя_файла].sqlВ результате выполнения будет создан файл .sql.
Для примера создадим бекап базы данных db_name и сохраним файл db_backup.sql в корневой директории. Для этого используем команду:
mysqldump -u root -p db_name > /db_backup.sqlДаже если команда была выполнена успешно, вывода на экран не будет. Результат сразу запишется в файл:
MySQL backup database
Как создать бэкап отдельной таблицы
При помощи mysqldump можно создать резервную копию отдельной таблицы. Для этого нужно добавить имя таблицы после названия БД:
mysqldump -u root -p db_name table_name > /db_table_backup.sqlВ результате резервная копия таблицы table_name базы данных db_test будет сохранена в файле db_table_backup.sql.
Посмотреть список таблиц в БД можно при помощи команды:
mysqlshow -u root -p table_nameКак сохранить копию нескольких баз данных
Чтобы сохранить копию нескольких баз данных, используйте ключ —databases, а после него через пробел введите названия БД. У вас должно получиться подобное:
mysqldump --databases db_1 db_2 > db_backup.sqlЧтобы сделать бэкап всех баз, используйте ключ —all-databases:
mysqldump --all-databases > db_backup.sqlКак создать новую базу данных MySQL
Чтобы развернуть бэкап, нужна существующая БД. Если её нет, можно создать новую. Для этого:
Подключитесь к серверу MySQL:
Создайте базу данных:
Вместо db_name введите нужное имя.
Готово, вы создали новую БД, теперь вы можете развернуть на ней резервную копию.
Как восстановить базу данных MySQL из резервной копии
Для восстановления резервной копии используется утилита mysql. Синтаксис:
mysql [опции] [имя_базы] < [путь_и_имя_файла].sqlНапример, восстановим базу данных db_name из файла резервной копии db_backup.sql, которая хранится в корневом каталоге. Для этого используем команду:
mysql -uroot -p db_name < /db_backup.sqlЕсли БД с таким названием не существует, вы увидите ошибку:
ERROR 1049 (42000): Unknown database ‘db_name’:
Посмотреть список баз данных можно при помощи команды:
Because there are several ways to backup MySQL database on Windows, this article will review all the different options so that you can select the method that works for you. This article is limited to MySQL database backups for a Microsoft Windows Server only. If you are using a Linux-based OS, see How to Automate MySQL Database Backups in Linux.
Note that most of the methods described in this article are fully compatible with MariaDB, with the exception of hot physical backups.
MySQL Backup types
- Logical – the result of a logical backup is a .sql script for database recreation. This script is created using the mysqldump utility. The main advantage of this backup is that it has no third-party dependencies and can be restored on any MySQL Server.
- Physical – this backup is created by copying the database files. Creating and restoring such a backup is faster than a logical backup. We recommend using it for large databases.
- Hot – if a MySQL Server is running on an InnoDB subsystem, then you can create transactional-consistent backups without stopping writing to a MySQL Server
- Partial – the backup is not created for the entire DBMS, but for specific databases or tables. This is useful when different backup strategies are applied to different data.
How to create a logical MySQL backup
Simple backup of MySQL database using
When installing a MySQL server, the main backup utility is automatically installed – . This command-line utility creates a backup file with a set of commands to recreate the database.
It is easy to restore a MySQL database from a file created by mysqldump. A small database can be restored by copying the contents of the file into the SQL editor of a graphic IDE (for example, in MySQL Workbench) and running it from there. However, it is preferable to restore a large database using the mysql command utility.
Typically, is located in the MySQL Server installation directory. For example, for MySQL 8.0, the path to the directory is C:\Program Files\MySQL\MySQL Server 8.0\bin\. It is advisable to add this directory to the global PATH variable.
mysqldump --user root --password --all-databases > all-databases.sql
mysql --user root --password mysql < all-databases.sql
Often you need to backup not the entire server, but a specific database. To dump a specific database, use the name of the database instead of the –all-database parameter.
mysql --user root --password [db_name] < [db_name].sql
The fact that the backup is created in an open format has two important advantages:
- You can restore a dump on a server with a different version. Thus, switching to another version of MySQL can be done without worrying about backups.
- You can manually edit the .sql file if you need to change something before restoring.
Backup using
MySQL Workbench is a tool for visual design and it works with a MySQL database. This application also allows you to create logical backups of a MySQL database.

- Go to the Administration tab, on the Navigation panel (on the left by default)
- Select Data Export
- From the Data Export tab in the Tables To Export section, select the databases and tables that will be added to the backup file
- From the Export Option section, select the format for the exported data. Either each table will be exported to a separate .sql file, or one common .sql file will be created.
Exporting each table to a separate file can be useful if you need to restore not the entire database, but some specific tables. But, as a rule, this is not necessary, and it is easier to work with one backup file.
- Press the Export button to create a backup file.
The export section is essentially a graphic interface to the utility. Although you cannot automate the creation process using MySQL Workbench, this tool is convenient for manually creating a backup and for migrating data.
Also, you can use MySQL Workbench as a parameter constructor for . When you click the Export button, a log of the export execution will be displayed, in which there will be a command with the parameters specified in the interface.

Dump recovery using MySQL Workbench

- Go to the Administration tab, on the Navigation panel (on the left by default)
- Select Data Import\Restore
- Select the source of the recovery Dump Project Folder or Self-Contained File, depending on what you selected at the backup stage
- If you used a Dump Project Folder, then you can select the databases and tables that need to be restored.
- If you use a Self-Contained File, then before restoring, you must select the schema into which you want to restore the dump. If you restore a dump to a server where the required schema does not exist, you can create it by clicking the New button.
- Press the Start Import button.
Backup using
SQLBackupAndFTP is a popular utility for backing up and restoring MySQL, SQL Server, and PostgreSQL. This specialized utility is designed for the automated creation of backups and sending them to storage.
This utility not only simplifies backups but also allows you to perform a one-click restore, as well as automate the restore, which can be very useful for synchronizing data or creating a test server.

- Connect to your MySQL Server by selecting the connection type MySQL Server (TCP/IP) or MySQL Server (phpMyAdmin)
- Next, from the Select Databases section, select the databases you want to back up
- The next step is to choose where to store your backups. It can be a local or network folder, FTP, or popular cloud storage services such as Dropbox, Google Drive, Amazon S3, Azure, and others. Please note, you can specify several places where backups will be sent.
- In the Schedule Backups section, create a backup schedule
- To receive email notifications about completed backups, set the Send Confirmation option
These are the basic settings, but you can also adjust the compression level of your backups, set a password for them (using the encryption option), specify a temporary folder to do the work, set up scripts to run, and much more.

- Find the backup you want to restore in the History & Restore section on the right side of the application
- Click on three dots and select “Restore from backup…”
- Make sure the correct backup is selected and click the Restore button
- Specify the name of the database where you want to restore the backup and password, if necessary, then click Restore and confirm the launch
The main feature of SQLBackupAndFTP is that this utility not only provides a good interface for creating a backup file, but also allows you to configure all the accompanying steps: compression, encryption, cloud storage, and fail notifications.
Backup using
Typically, a DBA has to maintain more than one database. A good solution for creating and maintaining backups on multiple servers is SqlBak.
This is an agent-based application for creating backups, compressing them, and then sending them to storage. All necessary settings are done in the browser.
- Run SqlBak App and connect to your MySQL Server using the server type MySQL Server (TCP/IP) or MySQL Server (phpMyAdmin)

- Go to the Dashboard page and click the Add New Job button
- In the window that opens, select the server you need, set the Backup Job in the Job Type field and click Create Job

- In the Select DBMS connection section, select the connection to your MySQL Server. If you have only one connection on the server, it will be selected automatically.

- In the Select databases section, mark all databases that you want to back up
- Now you need to configure the locations where your backups will be stored. These can be local or network folders, FTP, or cloud storage like OneDrive, Amazon S3, S3 Compatible (like Google Cloud, Wasabi), etc.

- Create a schedule to start the job
- Specify your email address for job success/fail notifications
- Click the Save & Exit button to save the settings and start the job

These are the essential settings, but you can also configure the encryption of your backups, compression, running scripts, and much more.
- Go to the Dashboard page and click on the Restore icon in the LAST RUN column to restore the last backup. Alternatively, go to the backup job setup page, find the backup you need in the Backup history section and click the Restore icon in the Actions column

- Select the backup you need and click the Restore button
- Check the settings and start the restore

Backup using

- Select the database in the left panel
- Go to the Export tab
- To back up the entire server, select Quick. If you want to backup specific databases, then you must select Custom to see additional settings.
- Select SQL format, which is the best for backup.
- Click GO.
How to create a physical MySQL database backup
Ultimately, any database is stored in a file or set of files. If you save these files to another location, you can later use them to restore the data from a particular time period.
Unlike logical backups, physical backups are created much faster, because it is only a matter of copying files. The restoration is also fast, for the same reason.
However, physical backups have two important disadvantages:
- Backups are portable only to other machines that have identical or similar hardware characteristics.
- The solution for creating hot backups can be too expensive for small businesses, as the only Windows tool that allows you to create a physical backup without stopping the server is MySQL Enterprise Backup.
Manual creation of a MySQL Server backup by copying data files
The easiest way to create a backup is to simply copy the contents of a MySQL data directory.
- Find MySQL Server data directory. To do this, run the following command:
select @@datadir;
The easiest way to do this is through MySQL Workbench.

- Find and stop the MySQL Server service
- Press win+R
- Enter services.msc
- Find the MySQL Server service in the list of services
- Right-click on it and select Stop

- Copy or pack the contents of a MySQL Server data directory to another location
- Start MySQL Server by clicking Start in the context menu of the service.
Creating a MySQL Server backup by copying data files using a batch script
All actions described in the previous section can be performed using one batch script.
First, set values for the variable values mysql_data_dir,backup_dir, mysql_service_nameand then run the script. It will stop the service, copy the contents of the data folder to a new subdirectory, and then start the MySQL Service.
set mysql_data_dir=C:\ProgramData\MySQL\MySQL Server 8.0\Data set backup_dir=D:\Temp set mysql_service_name=MySQL80 NET STOP %mysql_service_name% set mysql_backup_folder=%backup_dir%\mysql-backup-%DATE:~-4%-%DATE:~4,2%-%DATE:~7,2%-%time::=.% mkdir %mysql_backup_folder% xcopy /e /k /h /i "%mysql_data_dir%" "%mysql_backup_folder%" NET START %mysql_service_name%
Database restoration from files
- Stop MySQL Service
- Empty MySQL Server data directory completely
- Copy the saved data to the data directory
- Start the service
Using mysqlbackup utility
The main disadvantage of the previous method is the need to stop MySQL Server. And although copying itself should take little time, even a short shutdown of the server may be unacceptable.
For a windows server, Oracle Corporation has developed a MySQL Enterprise backup product that allows you to create hot physical backups.
This solution includes a console utility – mysqlbackup, which allows creating physical backups. It is as easy to use as mysqldump.
mysqlbackup --user=root --password --backup-image=backup.mbi \ --backup-dir=D:\Temp\EnterpriseBackup backup-to-image
–backup-image – Backup file name
–backup-dir – Directory in which backup will be created
To restore data from backups, you will need to perform preparatory steps, namely to stop the MySQL Service and clear the MySQL Server data directory. Then you need to use the same utility to restore data but with different parameters.
mysqlbackup --datadir=C:\ProgramData\MySQL\MySQL Server 8.0\Data\ --backup-image=backup.mbi --backup-dir=D:\Temp\EnterpriseBackup copy-back-and-apply-log
–datadir – MySQL Server data directory
–backup-image – Backup file name
–backup-dir – The directory containing the backup file.
The mysqlbackup utility supports on-the-fly compression, a partial backup, incremental backup, and many other features. Details are available here.
The main drawback of this solution is the need to purchase MySQL Enterprise, which can be expensive for small and medium-sized businesses.
Bottom line
Remember that protecting your data isn’t just about creating a backup file. It will be necessary to ensure the transfer of the backup file to storage and to regularly delete old backups in order to prevent the storage from overflowing.
Whether you create a batch script for an automated MySQL Server backup using / , or use SqlBak\SQLBackupAndFTP, the main thing is not to forget that you are creating a backup so that you can restore it later. So test your restore scripts from time to time.
Hopefully, these instructions will help you find the right backup procedures that work the best for your needs.
В этом руководстве мы рассказываем, как выполнить резервное копирование и восстановление баз данных MySQL или MariaDB из командной строки с помощью утилиты mysqldump.
Файлы резервных копий, созданные утилитой mysqldump, представляют собой набор операторов SQL, которые можно использовать для воссоздания исходной базы данных. Команда mysqldump также может генерировать файлы в формате CSV и XML. Вы также можете использовать утилиту mysqldump для переноса вашей базы данных MySQL на другой сервер MySQL.

Синтаксис команды Mysqldump
Прежде чем приступить к использованию команды mysqldump, начнем с обзора основного синтаксиса.
Выражения утилиты mysqldump имеют следующую форму:
mysqldump [options] > file.sql
options— параметры mysqldumpfile.sql— дамп (резервная копия) файла
Для использования команды mysqldump сервер MySQL должен быть доступен и запущен.
Резервное копирование одной базы данных MySQL
Наиболее распространенный вариант использования инструмента mysqldump — резервное копирование одной базы данных.
Например, чтобы создать резервную копию базы данных с именем database_name, используя пользователя root, и сохранить ее в файл с именем database_name.sql, вы должны выполнить следующую команду:
mysqldump -u root -p database_name > database_name.sql
Вам будет предложено ввести пароль root. После успешной аутентификации начнется процесс дампа. В зависимости от размера базы данных процесс может занять некоторое время.
Если вы вошли в систему как тот же пользователь, которого вы используете для выполнения экспорта, и этот пользователь не требует пароля, вы можете пропустить опции -u и -p:
mysqldump database_name > database_name.sql
Резервное копирование нескольких баз данных MySQL
ля резервного копирования нескольких баз данных MySQL одной командой вам нужно использовать параметр --database, за которым следует список баз данных, которые вы хотите сделать резервную копию. Каждое имя базы данных должно быть разделено пробелом.
mysqldump -u root -p --databases database_name_a database_name_b > databases_a_b.sql
Команда выше создаст файл дампа, содержащий обе базы данных.
Резервное копирование всех баз данных MySQL
Используйте опцию --all-database для резервного копирования всех баз данных MySQL:
mysqldump -u root -p --all-databases > all_databases.sql
Как и в предыдущем примере, команда выше создаст один файл дампа, содержащий все базы данных.
Резервное копирование всех баз данных MySQL в отдельные файлы
Утилита mysqldump не предоставляет возможность резервного копирования всех баз данных в отдельные файлы, но мы легко достигаем этого с помощью простого цикла bash FOR:
for DB in $(mysql -e 'show databases' -s --skip-column-names); do mysqldump $DB > "$DB.sql"; done
Команда выше создаст отдельный файл дампа для каждой базы данных, используя имя базы данных в качестве имени файла.
Создание сжатой резервной копии базы данных MySQL
Если размер базы данных очень большой, рекомендуется сжать вывод. Для этого просто перенаправьте вывод в утилиту gzip и перенаправьте его в файл, как показано ниже:
mysqldump database_name | gzip > database_name.sql.gz
Создать резервную копию с отметкой времени
Если вы хотите сохранить более одной резервной копии в одном месте, вы можете добавить текущую дату в имя файла резервной копии:
mysqldump database_name > database_name-$(date +%Y%m%d).sql
Команда выше создаст файл в следующем формате database_name-20200223.sql
Восстановление дампа MySQL
Вы можете восстановить дамп MySQL с помощью инструмента mysql. Общий синтаксис команды выглядит следующим образом:
mysqld database_name < file.sql
В большинстве случаев вам необходимо создать базу данных куда вы будете производить импорт. Если база данных уже существует, сначала вам нужно удалить ее.
В следующем примере первая команда создаст базу данных с именем database_name, а затем импортирует в нее дамп database_name.sql:
mysql -u root -p -e "create database database_name"; mysql -u root -p database_name < database_name.sql
Восстановление одной базы данных MySQL из полного дампа MySQL
Если вы создали резервную копию всех своих баз данных с помощью параметра -all-database и хотите восстановить одну базу данных из файла резервной копии, который содержит несколько баз данных, используйте параметр --one-database, как показано ниже:
mysql --one-database database_name < all_databases.sql
Экспорт и импорт базы данных MySQL одной командой
Вместо того, чтобы создавать файл дампа из одной базы данных и затем импортировать резервную копию в другую базу данных MySQL, вы можете использовать следующую однострочную команду:
mysqldump -u root -p database_name | mysql -h remote_host -u root -p remote_database_name
Команда выше передаст вывод клиенту mysql на удаленном хосте и импортирует его в базу данных с именем remote_database_name. Перед выполнением команды убедитесь, что база данных уже существует на удаленном сервере.
Автоматизация резервного копирования с помощью Cron
Автоматизация процесса резервного копирования баз данных так же проста, как создание задания cron, которое будет запускать команду mysqldump в указанное время.
Подробно про cron можно прочитать в нашей статье.
Чтобы настроить автоматическое резервное копирование базы данных MySQL с помощью cronjob, выполните следующие действия:
- Создайте файл с именем
.my.cnfв вашем домашнем каталоге пользователя:sudo nano ~/.my.cnf
Скопируйте и вставьте следующий текст в файл
.my.cnf.[client] user = dbuser password = dbpasswd
Не забудьте заменить
dbuserиdbpasswdна пользователя базы данных и пароль пользователя. - Ограничьте права доступа к файлу учетных данных, чтобы только ваш пользователь имел к нему доступ, используя команду
cmod(подробнее про которую можно прочесть тут):chmod 600 ~/.my.cnf
- Создайте каталог для хранения резервных копий при помощи комадны
mkdir(про нее тоже есть статья):mkdir ~/db_backups
- Откройте ваш пользовательский файл crontab:
crontab -e
Добавьте следующее задание cron, которое будет создавать резервную копию имени базы данных mydb каждый день в 3 часа ночи:
0 3 * * * /usr/bin/mysqldump -u dbuser mydb > /home/username/db_backups/mydb-$(date +%Y%m%d).sql
Не забудьте заменить
usernameвашим реальным именем пользователя.Вы также можете создать еще один cron job, чтобы удалить любые резервные копии старше 30 дней:
find /path/to/backups -type f -name "*.sql" -mtime +30 -delete
Конечно, вам нужно настроить команду в соответствии с вашим местоположением резервной копии и именами файлов. Чтобы узнать больше о команде find, ознакомьтесь с нашим Руководством по поиску файлов в Linux с помощью командной строки.
Заключение
Это руководство охватывает только основы, но оно должно быть хорошим началом для тех, кто хочет научиться создавать и восстанавливать базы данных MySQL из командной строки с помощью утилиты mysqldump. Если вы хотите найти больше материалов про базы данных, то просто наберите sql в нашем поиске!
Рекомендуем
4.4.1 Резервное копирование баз данных
Поскольку таблицы MySQL хранятся в виде файлов, то резервное копирование
выполняется легко. Чтобы резервная копия была согласованной, выполните на
выбранных таблицах LOCK TABLES, а затем FLUSH TABLES для этих таблиц (см.
разделы section 6.7.2 Синтаксис команд LOCK TABLES/UNLOCK TABLES и see section 4.5.3 Синтаксис команды FLUSH). При этом
требуется блокировка только на чтение; поэтому другие потоки смогут
продолжать запросы на таблицах в то время, пока будут создаваться копии
файлов из каталога базы данных. Команда FLUSH TABLE обеспечивает гарантию
того, что все активные индексные страницы будут записаны на диск прежде,
чем начнется резервное копирование.
Если есть необходимость провести резервное копирование на уровне SQL, то
можно воспользоваться SELECT INTO OUTFILE или BACKUP TABLE (см. разделы
section 6.4.1 Синтаксис оператора SELECT и see section 4.4.2 Синтаксис BACKUP TABLE).
Существует еще один способ создать резервную копию базы данных —
использовать программу mysqldump или сценарий mysqlhotcopy (см. разделы
section 4.8.5 mysqldump, Получение дампов данных и структуры таблицы и see section 4.8.6 mysqlhotcopy, Копирование баз данных и таблиц MySQL). Для этого нужно выполнить следующие действия:
Сделать полное резервное копирование баз данных:
shell> mysqldump --tab=/path/to/some/dir --opt --full или shell> mysqlhotcopy database /path/to/some/dir
Можно также просто скопировать табличные файлы (файлы `*.frm', `*.MYD' и
`*.MYI') в тот момент, когда сервер не проводит никаких обновлений. Этот
метод используется в сценарииmysqlhotcopy.
Еслиmysqldвыполняется, остановить его, и затем запустить с опцией
--log-update[=file_name](see section 4.9.3 Журнал обновлений (update)). В файлах журнала
обновлений находится информация, необходимая для того, чтобы повторить
в базе данных последовательность изменений, внесенных с момента
выполненияmysqldump.
Если дело дошло до восстановления, сначала надо попробовать восстановить
таблицы с помощью REPAIR TABLE или myisamchk -r — это должно сработать в
99,9% случаев. Если myisamchk не даст результата, попробуйте применить
следующую процедуру (эти действия применимы только в случае, если MySQL
запускался с --log-update (see section 4.9.3 Журнал обновлений (update))):
Восстановите исходный вариант по копии, сделанной в
mysqldump.Выполните следующую команду, чтобы повторить обновления из бинарного
журнала:shell> mysqlbinlog hostname-bin.[0-9]* | mysql
Если используется журнал обновлений, то можно применить:
shell> ls -1 -t -r hostname.[0-9]* | xargs cat | mysql
ls используется для того, чтобы расположить все файлы журнала обновлений в
правильном порядке.
Если в системе, где выполняется резервное копирование, возникают проблемы
с производительностью, то решить их можно, установив репликацию и выполняя
резервное копирование на подчиненном сервере вместо головного (see section 4.10.1 Введение).
Пользователи файловой системы Veritas могут поступить следующим образом:
Из клиента (или Perl) выполнить:
FLUSH TABLES WITH READ LOCK.Из другого shell выполнить:
mount vxfs snapshot.Из первого клиента выполнить:
UNLOCK TABLES.Скопировать файлы из образа.
Демонтировать образ.
4.8.5 mysqldump, Получение дампов данных и структуры таблицы
- 4 Администрирование баз данных
- 4.8 Клиентские сценарии и утилиты MySQL
- 4.8.1 Обзор клиентских сценариев и утилит
- 4.8.2
mysql, Утилита командной строки
- 4.8.3
mysqladmin, Администрирование MySQL-сервера.
- 4.8.4 Использование
mysqlcheckдля сопровождения и аварийного восстановления таблиц.
- 4.8.5
mysqldump, Получение дампов данных и структуры таблицы - 4.8.6
mysqlhotcopy, Копирование баз данных и таблиц MySQL
- 4.8.7
mysqlimport, импорт данных из текстовых файлов
- 4.8.8 Просмотр баз данных, таблиц и столбцов
- 4.8.9 perror, разъяснение кодов ошибок
- 4.8.10 Как запускать SQL-команды из текстового файла
- 4.8.1 Обзор клиентских сценариев и утилит
- 4.8 Клиентские сценарии и утилиты MySQL

