Восстановление всей базы данных
Теперь, когда у вас есть резервные копии, давайте попрактикуемся в их восстановлении. На этом этапе вы смоделируете катастрофу, удалив всю базу данных mydatabase, а затем восстановив ее из файла полной резервной копии.
Сначала удалим базу данных. Флаг -e позволяет выполнить одну SQL-команду непосредственно из терминала.
sudo mysql -u root -e "DROP DATABASE mydatabase;"
Проверьте, что база данных удалена.
sudo mysql -u root -e "SHOW DATABASES;"
Вы увидите, что mydatabase больше нет в списке.
Прежде чем вы сможете восстановить данные, вы должны создать пустую базу данных с тем же именем.
sudo mysql -u root -e "CREATE DATABASE mydatabase;"
Теперь восстановите базу данных, перенаправив файл mydatabase_backup.sql в качестве входных данных для клиента mysql.
sudo mysql -u root mydatabase < /home/labex/backup/mydatabase_backup.sql
Команда выполнит все SQL-инструкции из файла резервной копии, воссоздав таблицы и вставив данные.
Чтобы проверить восстановление, подключитесь к MySQL и проверьте таблицы и их содержимое.
sudo mysql -u root
В приглашении mysql> выполните следующие команды:
USE mydatabase;
SHOW TABLES;
SELECT * FROM users;
Вы снова должны увидеть таблицы products и users, а таблица users должна содержать свои исходные данные.
+--------------------+
| Tables_in_mydatabase |
+--------------------+
| products |
| users |
+--------------------+
2 rows in set (0.00 sec)
+----+------------+--------------------------+
| id | name | email |
+----+------------+--------------------------+
| 1 | John Doe | john.doe@example.com |
| 2 | Jane Smith | jane.smith@example.com |
+----+------------+--------------------------+
2 rows in set (0.00 sec)
Выйдите из оболочки MySQL.
exit
Вы успешно восстановили всю базу данных после катастрофического сбоя.