はじめに
データベース管理者が知っておくべき4つのバックアップ手法を解説。開発環境から本番環境まで、規模や要件に応じた最適な選択ができるよう構成しています。
1. mysqldumpを使った基本バックアップ
基本構文
mysqldump -uユーザ名 -pパスワード DB名 テーブル名 > 出力ファイル.sql
パラメータ詳細
オプション |
説明 |
注意点 |
-u |
接続ユーザ名 |
root以外のユーザ使用時必須 |
-p |
パスワード |
特殊文字含む場合は実行後入力が安全 |
DB名 |
対象データベース |
SHOW DATABASES; で確認可能 |
テーブル名 |
特定テーブルのみバックアップ |
複数指定可能 |
> |
出力リダイレクト |
絶対パス指定推奨 |
実践例
mysqldump -u${USER} -p${PASS} ecommerce orders > /backup/orders_$(date +%Y%m%d).sql
トラブルシューティング
/* 権限エラー発生時 */
GRANT SELECT, LOCK TABLES ON *.* TO 'バックアップユーザ'@'localhost';
2. MySQL WorkbenchのGUIバックアップ
操作フロー
注意点
- ファイル出力先:ローカルマシンのパスを直接指定不可(サーバー側のパスが必要)
- 大容量データ:
Advanced Options
でchunking
を有効化
3. SELECT INTO OUTFILEでCSV出力
完全版構文
SELECT * INTO OUTFILE '/path/file.csv'
CHARACTER SET utf8mb4
FIELDS
TERMINATED BY ','
ENCLOSED BY '"'
ESCAPED BY '\\'
LINES
TERMINATED BY '\r\n'
FROM テーブル名
WHERE 条件;
設定項目比較
項目 |
推奨値 |
Excel対応 |
日本語対応 |
文字コード |
utf8mb4 |
△ |
○ |
改行コード |
\r\n |
○ |
- |
エスケープ |
\ |
○ |
- |
権限設定
-- ファイル書き込み権限付与
GRANT FILE ON *.* TO 'ユーザ名'@'localhost';
エラー対応表
エラー内容 |
解決策 |
1290 |
secure_file_priv 設定を確認 |
1045 |
FILE権限を付与 |
1366 |
文字コードをutf8mb4に統一 |
4. バイナリログバックアップ
設定手順
- my.cnf編集:
[mysqld]
log-bin=/var/log/mysql/mysql-bin.log
expire_logs_days=7
max_binlog_size=100M
- サービス再起動:
sudo systemctl restart mysql
5. バックアップ自動化の高度な手法
5-1. 自動化パイプライン構築例
5-2. 実践自動化スクリプト
#!/bin/bash
# バックアップ実行
mysqldump --single-transaction -u$user -p$pass dbname | gzip > backup.sql.gz
# 暗号化処理
openssl enc -aes-256-cbc -salt -in backup.sql.gz -out backup.enc
# クラウド転送(API連携事例)
curl -X POST -H "Authorization: Bearer $token" \
-F "file=@backup.enc" \
https://api.cloudstorage.com/upload
5-3. API連携の効率化手法(Apidog連携事例)
大規模環境ではバックアップ完了後の処理自動化が必須です。APIテストツールのApidogを活用すると以下のメリットが得られます:
-
テストレポート:自動テストの実行が完了すると、テストレポートが出力されます
-
カスタム通知:Webhook/Slack/Jenkins/Emailへの自動連携
6. 総合比較表
方式 |
処理速度 |
容量 |
復旧精度 |
自動化 |
学習コスト |
mysqldump |
△ |
大 |
◎ |
○ |
低 |
Workbench |
× |
大 |
○ |
× |
最低 |
OUTFILE |
◎ |
中 |
△ |
○ |
中 |
バイナリログ |
○ |
小 |
◎ |
◎ |
高 |
7. 現場で役立つ重要ポイント
3-2-1ルール
ベストプラクティス
復旧戦略
- フルバックアップ(毎週)
- 差分バックアップ(毎日)
- バイナリログ(常時)
チェックリスト
おわりに
実際にバックアップ取得後は、必ずリストアテストを実施しましょう。「バックアップがある」と「復旧できる」は全く別次元の問題です。本ガイドが堅牢なデータ保護体制構築の一助となれば幸いです。