- MySQL関連のWikiへのリンク
- MySQL
- MySQL 5.1
- MySQL 5.4
- MySQL/InnoDB
- MySQL/エラー
- MySQL/クラスタリング
- MySQL/サーバ移動
- MySQL/チューニング
- MySQL/バージョン
- MySQL/バックアップ
- MySQL/プロファイリング
- MySQL/ベンチマーク
- MySQL/レプリケーション
- MySQL/ロック
テキストファイル出力 †
SELECT INTO OUTFILE †
mysqldumpで出力 †
mysqldump †
mysqldump -u [ユーザ] -p[パスワード] [オプション] [データベース] [テーブル1] [テーブル2] ... > [ダンプファイル]
使い方 †
デフォルトで --opt オプションが有効になっている。--optオプションの内容は以下の通り。
- --add-drop-table
- --add-locks ... LOCK TABLESとUNLOCK TABLESステートメントで各テーブルダンプを囲む。これによりダンプファイルを再ロードする際のインサートの速度が向上する。
- --create-options
- --disable-keys
- --extended-insert
- --lock-tables
- --quick
- --set-charset
データベース内で確実に整合を取りたい場合は、以下のオプションも付ける。
- -x ... --lock-all-tablesと同じ。全てのデータベースの全てのテーブルをロック。これは全ダンプの期間、グローバルリードロックを取得することで達成される。全ての処理を停止した状態でやらないとえらいことになる。
その他よく使うオプションを以下に列挙
- --skip-lock-tables ... テーブルをロックしないでダンプする。当然、このオプションを指定する場合はダンプ中にデータを更新しないようにする。
- --databases db_name1 [db_name2 ...] ... ダンプするDBを指定
- --ignore-table=db_name.tbl_name ... ダンプしないテーブルを指定
- --no-data ... データはダンプしない。CREATE TABLE文のみダンプしたい場合に使用
- --where="[条件句]" ... ダンプの条件指定。 例)--where="sales>10000"
- AUTO_INCREMENT の値は現在値+1になっているので、必要であれば修正する。
豆知識 †
mysqldump は効率良く import ができるように、以下の順番のSQLを出力してくれる
1. lock tables
2. disable keys
3. insert, insert, insert, ...
4. enable keys
5. unlock tables
トラブルシューティング †
unknown variable †
- MyISAMとARCHIVEテーブルのみバックアップ可能
InnoDB Hot Backup †
- 基本的な仕組み
- InnoDBのWAL(Write Ahead Log)を複製するプロセスを起動
–-データファイルをコピー
–-データファイルコピーが終わったら、WALを適応(適応はInnoDBのクラッシュリカバリを利用)
- コピー終了時点のバックアップ完了
LVMスナップショット †