Files
db-lesson/【演習課題】 SQL - バックアップ、リストア/【演習課題】MySQL_バックアップ&リストア演習.txt
PC60087232\USER a2236aae21 init
2026-09-28 07:39:02 +09:00

100 lines
3.5 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# MySQL バックアップ&リストア演習
## 前提知識
#### MySQLの設定ファイル
C\ProgramData\MySQL\MySQL Server 8.0\my.ini
バイナリログの名前が書かれている場所は「log-bin」で検索すると表示される。
#### 差分/増分バックアップされたファイル(バイナリログ)の場所
C\ProgramData\MySQL\MySQL Server 8.0\Data
#### 現在の差分/増分バックアップに使っているファイル名を確認
(rootで)SHOW MASTER STATUS;
## 演習準備1 フルバックアップ編
- Windows環境変数のpathを変更
- コントロールパネル→システムとセキュリティ→システム→システムの詳細設定→環境変数
- システム環境変数の「Path」をクリックし、「編集」→「新規」
- 「C:\Program Files\MySQL\MySQL Server 8.0\bin\」と入力し、「OK」
※上記操作によりコマンドプロンプトで「mysql」コマンドが実行できるようになる
- 以下のコマンドをコマンドプロンプトで実行
mysqldump --lock-all-tables -A -uroot -p<rootユーザのパスワード> > C:\backup_test.sql
※Cドライブ直下にバックアップファイルが作られる
## 演習1
以下の要件に従い、データベースをバックアップしてください。
#### 要件
- 保存場所
- Cドライブ直下
- 保存対象
- rezodb
- バックアップファイル名
- backup_<日付>_<名前ローマ字1文字目>-<名字ローマ字>.sql(例:backup_20200414_m-yoshida.sql)
- mysqldumpのオプション
- --flush-logs
- --lock-all-tables
- -u
- -p
#### ヒント
- mysqldumpの「-A」は「すべてのデータベースを」という意味。
- mysqlコマンドで、rezodbにアクセスするときにどこに「rezodb」と入力する?
- オプションの意味…「--flush-logs」=バイナリログをローテートする(これ以降の操作は新しいバイナリログに保存される)
「--lock-all-tables」=この動作が行われている最中は、すべてのテーブルをロックする
## 演習準備2 差分バックアップ編
1. どのユーザからでも良いのでrezodbにアクセスし、user_tableに以下のデータを追加してください。
INSERT INTO employee VALUES (20000, '<自分のフルネーム>', '<自分のフルネームカナ>','my@hoge.jp','xxx','10');
2. 以下のコマンドをコマンドプロンプトで実行します。
mysqlbinlog "C:\ProgramData\MySQL\MySQL Server 8.0\Data\<バイナリログファイル名>" > C:\backup_test2.sql
## 演習2
以下の要件に従い、データベースをバックアップしてください。
### 要件:
- 保存場所
- Cドライブ直下
- 保存対象
- 現在の差分バックアップ
- バックアップファイル名
- backup2_<日付>_<名前ローマ字1文字目>-<名字ローマ字>.sql
## 演習3 リストア編
※注意! 事前に、共有フォルダに保存したバックアップが存在すること、内容が変になっていないか(2つのバックアップが同じファイルサイズになっていないか等)確認してください。
1. rootでrezodbにログインし、以下のコマンドを実行してください。
SHOW TABLES FROM rezodb;
2. すべてのテーブルを削除します。以下のコマンドを、テーブル数分実行してください。
DROP TABLES <テーブル名>;
3. データベースをリストアします。
\qでmysqlから抜け出し、以下のコマンドを実行します。
mysql -uroot -p<rootパスワード> rezodb < <共有フォルダに保存したフルバックアップのフルパス>
4. リストアしたデータベースがフルバックアップ時のものになっているか確認します。
user_tableの内容を確認してください。
5. 差分バックアップの内容をリストアします。
\qでmysqlから抜け出し、以下のコマンドを実行します。
mysql -uroot -p<rootパスワード> rezodb < <共有フォルダに保存した差分バックアップのフルパス>
6. リストアしたデータベースが差分バックアップ時のものになっているか確認します。
user_tableの内容を確認してください。
7. 実施後の全バックアップを作成してください。
- 要件
- 保存場所
- Cドライブの直下
- 保存対象
- rezodb「のみ」
- バックアップファイル名
backup3_<日付>_<名前ローマ字1文字目>-<名字ローマ字>.sql
- mysqldumpのオプション
- --flush-logs
- --lock-all-tables
- -u
- -p