Резервне копіювання та відновлення баз даних MySQL (версія для Windows)
Робоче середовище
- MySQL
-
- MySQL 8.0 Community Edition
- Вікна
-
- Вікна 11
Передумови
- MySQL
-
- MySQL 8.0
- Вікна
-
- Вікна 11
- Вікна 10
- Windows Server
-
- Windows Server 2022
- Windows Server 2019
- Windows Server 2016
- Windows Server 2012 R2
Передумовою
- Встановлено базу даних для MySQL.
- База даних, для резервної копії якої потрібно створити, вже існує.
- Ви встановили змінні середовища, щоб ви могли запускати mysql з командного рядка.
Які є види резервного копіювання?
Хоча це детально не обговорюється тут, MySQL має такі типи резервного копіювання:
Команди резервного | копіюванняТипи даних резервного копіюванняПримітки | |
---|---|---|
mysqldump | Логічне резервне копіювання | Старий метод резервного копіювання. Графічний інтерфейс також використовує це |
MySQL Pump | Логічне резервне копіювання | Покращена версія mysqldump |
MySQL Shell Instance Dump Utility та Dump Loading Utility | Логічне резервне копіювання | Найсвіжіша логічна резервна копія на даний момент |
Percona XtraBackup | Фізичне резервне копіювання | Стороння підтримка фізичного резервного копіювання |
ПЛАГІН КЛОНУВАННЯ | Фізичне резервне копіювання | Офіційне фізичне резервне копіювання MySQL. Однак вам потрібно додати плагін. |
Резервне копіювання баз даних з графічним інтерфейсом (MySQL Workbench)
Якщо ви хочете безпечно працювати в графічному інтерфейсі без використання команд, ви можете створити резервну копію за допомогою MySQL Workbench. Тип резервного копіювання, що виконується MySQL Workbench, буде "mysqldump".
Запустіть MySQL Workbench.
Виберіть підключення, яке містить базу даних, резервну копію якої потрібно створити.
Створивши резервну копію бази даних, виберіть вкладку Адміністрування в Навігаторі ліворуч, а потім виберіть пункт Експорт даних.
Відкриється екран експорту даних. Екран досить широкий, тому розгортайте вікно, поки не побачите кнопку «Почати експорт» внизу праворуч.
Спочатку виберіть бази даних, резервну копію яких потрібно створити. Також можна вибрати кілька варіантів.
У розділі «Об'єкти для експорту» ви також можете вибрати резервне копіювання процедур і тригерів. Це поле не є обов'язковим.
У розділі «Параметри експорту» ви можете вибрати наступні два варіанти.
Опис типу | |
---|---|
Експорт до папки «Дамп проекту» | Вивести дані до вказаної теки у вигляді таблиці або файла процедур. |
Експорт в автономний файл | Вбудуйте все в один файл і виведіть. |
Не має значення, в який бік ви виходите. Наведений вище вибір легко видалити, якщо ви хочете відновити лише певну таблицю. Наведений нижче вибір виводить дані до одного файла, що спрощує пересування та керування файлами як одиницею бази даних. В даному випадку я вибрав наступне.
Після установки налаштувань натисніть кнопку «Почати експорт» в правому нижньому кутку, щоб почати експорт.
Експорт починається і завершується.
Якщо ви виведете його у вигляді одного файлу, він буде виглядати так:
Якщо експортувати в папку, це буде виглядати так:
Відновлення бази даних з графічним інтерфейсом (MySQL Workbench)
Відкрийте MySQL Workbench, виберіть підключення, виберіть вкладку Адміністрування в Навігаторі зліва та виберіть Імпорт/Відновлення даних. Як написано «Імпорт/Відновлення», ви можете створити нову базу даних з експортованого файлу або перезаписати вихідну базу даних.
Розгортайте вікно, поки не побачите кнопку «Почати імпорт» в правому нижньому кутку.
Виберіть «Параметри імпорту» відповідно до формату експортованого файлу. Оскільки цього разу я експортував як один файл, я вибрав «Імпортувати з автономного файлу» нижче та вказав експортований файл.
Виберіть схему (базу даних), до якої потрібно відновити. Ви можете відновити існуючу базу даних або відновити її як нову базу даних за допомогою кнопки «Новий» праворуч.
Після вказівки технічних характеристик натисніть кнопку «Почати імпорт» внизу праворуч, щоб почати відновлення.
Після завершення відновлення переконайтеся, що ваші дані повернулися.
Створення облікового запису для резервного копіювання бази даних командою
Немає проблем, якщо ви виконаєте одну команду і створите її резервну копію, але, наприклад, якщо ви заздалегідь готуєте команду у вигляді файлу і виконуєте її, вам потрібно написати пароль у вигляді простого тексту, тому безпечніше створити окремий обліковий запис для виконання резервного копіювання.
Деякі дозволи, необхідні для резервного копіювання, можуть збільшуватися або зменшуватися залежно від необхідної інформації.
- ПОДІЯ
- ЗАМКОВІ СТОЛИ
- ВИБЕРІТЬ
- ПОКАЗАТИ ПЕРЕГЛЯД
Якщо створити його за допомогою команди, то він буде виглядати наступним чином. Використовуйте інструмент командного рядка MySQL.
create user '<ユーザー名>'@'<ホスト名>' identified by '<パスワード>';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON <データベース名>.* TO '<ユーザー名>'@'<ホスト名>';
flush privileges;
приклад
create user 'backup_user'@'localhost' identified by 'password';
GRANT EVENT, LOCK TABLES, SELECT, SHOW VIEW ON test_database.* TO 'backup_user'@'localhost';
flush privileges;
Дозволи папок для призначення резервної копії
Дозволи папки, в якій зберігається файл резервної копії, повинні бути встановлені так само, як і дозволи на виконання команди. Якщо ви запускаєте команду з правами адміністратора, вам не потрібно встановлювати додаткові дозволи для папки.
Резервне копіювання бази даних за допомогою команди (mysqldump)
Є кілька резервних копій по команді, але на цей раз ми будемо робити резервні копії за допомогою "mysqldump", який використовується вже давно і є стабільним.
Клацніть правою кнопкою миші меню «Пуск», щоб запустити Термінал (командний рядок). Зауважте, що це не "MySQL 8.0 Command Line Client".
Ви можете створити резервну копію за допомогою наступної команди:
mysqldump -u <ユーザー名> -p<パスワード> --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 <データベース名> > "<バックアップファイルパス>"
приклад
mysqldump -u backup_user -ppassword --no-tablespaces --single-transaction --triggers --routines --events --default-character-set=utf8 test_database > "C:\Temporary\Backup.sql"
--default-character-set=utf8
Якщо ви вкажете той самий код символу, що й при резервному копіюванні в графічному інтерфейсі, він буде таким самим, як і при резервному копіюванні в графічному інтерфейсі. Таким чином, ви також можете імпортувати його в графічний інтерфейс.- Не вказуйте пробіл між полем пароля та
-p
паролем.- Якщо ви також хочете вивести інформацію про табличний простір,
--no-tablespaces
видаліть . У цьому випадку права доступу запущеного користувача мають бути такими: .PROCESS
У вказаному місці буде створено файл резервної копії.
Відновлення бази даних командою (mysqldump)
Файли, резервні копії яких створено mysqldump, мають формат, який можна виконати в SQL, тому все, що вам потрібно зробити, це виконати цільовий SQL. Я думаю, що більшість відновлень виконується вручну, тому немає проблем, якщо ви запустите його як обліковий запис root.
Якщо ви хочете запустити його з команди, запустіть його в командному рядку, а не в PowerShell. Це пов'язано з тим, що символ не можна використовувати в <
PowerShell.
Виконайте наступну команду:
mysql -u root -p<root のパスワード> <データベース名> < <バックアップした SQL のファイルパス>
приклад
mysql -u root -ppassword test_database < C:\Temporary\Backup.sql
Автоматичне резервне копіювання баз даних
Для Windows прийнято використовувати планувальник завдань. Спочатку створіть пакетний файл. Створіть bat-файл, введіть вміст у тому вигляді, в якому він був створений командою, і збережіть його. Кодування символів зберігається за допомогою Shift-JIS. Розташування та ім'я файлу пакета є довільними.
Зареєструйтеся в планувальнику завдань. Клацніть правою кнопкою миші меню «Пуск» і виберіть «Керування комп'ютером».
У меню ліворуч виберіть «Керування комп'ютером» > «Системні інструменти» > «Планувальник завдань» > «Бібліотека планувальника завдань». Виберіть «Створити завдання...» у меню праворуч.
Налаштуйте вкладку «Загальні». У списку завдань з'явиться «Ім'я», тому введіть зрозумілу назву. У параметрах безпеки поставте галочку навпроти пункту «Запускати незалежно від того, увійшов користувач у систему чи ні».
У вкладці «Тригер» можна встановити, коли виконувати резервне копіювання. Встановіть цей параметр відповідно до вашої операції.
У вкладці «Операція» налаштуйте запуск щойно створеного пакетного файлу.
Після встановлення кожного з них підтвердьте натисканням кнопки OK.
Введіть пароль для реєстрації, щоб запустити під вказаним обліковим записом.
Після цього перевірте, чи буде виконано резервне копіювання в зазначений час.