Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
MySQL のオンラインバックアップ
& リカバリ
2014/05/24
teru
@TKS #3
アジェンダ
• バックアップ
• mysqldump コマンド
• 推奨オプション
• 便利なオプション
!
• リカバリ
• ダンプのリストア方法
• mysqlbinlog コマンド
• バイナリログの適用 (ポイントインタイムリカバリ)
2
バックアップ編
3
mysqldump
• MySQL に付属している論理バックアップツール
!
• SQL 文が羅列されたものが出力される
4
DROP TABLE IF EXISTS `sometable`;
CREATE TABLE `sometable` ...
対象テーブルの指定
• mysqldump somedb
• somedb 内のテーブルすべてダンプ
!
• mysqldump somedb sometable1 sometable2
• somedb.sometable1, somedb....
デフォルト有効のオプション
• mysqldump は、デフォルトで "--opt" が有効になっている。
• "--skip-opt" で無効にできる。
!
• "--opt" は下記と同義
• --add-drop-table
• --ad...
デフォルト有効のオプション
• --extended-insert
• INSERT 一文に、複数のレコードが入る
• メリット: リストア速度が早い
!
!
!
!
• --skip-extended-insert
• 1 レコード 1 IN...
デフォルト有効のオプション
• --lock-tables
• テーブルのダンプ前、ロックを掛ける
• ダンプ中はそのテーブルの更新ができない
!
• --skip-lock-tables
• ロックしない
• サーバ移行時の事前テストなど、カ...
推奨オプション
• --single-transaction
• ダンプが単一トランザクションになる
• ダンプ開始時点の断面がダンプできる
• かつ、ダンプ中更新可能
• ※ トランザクション対応 DB でのみ可能 (InnoDB など)
!...
推奨オプション
• --order-by-primary
• ダンプを主キーでソートして出力する
• InnoDB のリストアが爆速になる
!
!
!
!
!
!
• 444MBのダンプファイルのリスト時
• 引用: http://d.hate...
おまけ: クラスタインデックス
11
僕がいつも使うオプション
!
• mysqldump --default-character-set=binary --opt -c
somedb
• MyISAM の場合
!
• mysqldump --default-character-s...
その他知っとくと便利なオプション
• --where="deleted_at >= '2013-10-01 00:00:00'"
• ダンプ時に where 句指定で吐ける
• 「"」「'」 に注意
!
• --no-data
• テーブルの定...
リストア編
14
ダンプファイルのリストア方法
!
• cat somedb.sql | mysql somedb
• 普通の方法
!
• cat somedb.sql | throttle -M 1 | mysql somedb
• throttle コマンド...
mysqlbinlog コマンド
!
• バイナリログから SQL 構文を作るコマンド
!
• 出力されたファイルは、ダンプファイルと同じようにリ
ストアに使用できる。
!
• 文法
• mysqlbinlog [OPTIONS] mysql-...
mysqlbinlog オプション
• --start-position=4
• --stop-position=123456
• バイナリログの読み込み開始・終了のポイントを、ポ
ジションで指定
!
• --start-datetime="2...
(再掲) 推奨オプション
• --single-transaction
• ダンプが単一トランザクションになる
• ダンプ開始時点の断面がダンプできる
• かつ、ダンプ中更新可能
• ※ トランザクション対応 DB でのみ可能 (InnoDB ...
mysqlbinlog 使用例
!
!
!
!
!
• 状況の例
• --master-data=2 で取得したバックアップがある
!
• 15:00:00 にバルス (DROP TABLES) してしまった
!
• バックアップと tmp.s...
以上
20
Upcoming SlideShare
Loading in …5
×

MySQL のオンラインバックアップ & リカバリ

6,870 views

Published on

MySQL のバックアップとリカバリについて軽くまとめました。

Published in: Engineering
  • Dating for everyone is here: ❤❤❤ http://bit.ly/36cXjBY ❤❤❤
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • Follow the link, new dating source: ♥♥♥ http://bit.ly/36cXjBY ♥♥♥
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • ACCESS that WEBSITE Over for All Ebooks (Unlimited) ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... DOWNLOAD FULL EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download EPUB Ebook here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
  • (Unlimited)....ACCESS WEBSITE Over for All Ebooks ................ accessibility Books Library allowing access to top content, including thousands of title from favorite author, plus the ability to read or download a huge selection of books for your pc or smartphone within minutes ......................................................................................................................... DOWNLOAD FULL PDF EBOOK here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full EPUB Ebook here { http://bit.ly/2m6jJ5M } ......................................................................................................................... Download Full PDF EBOOK here { http://bit.ly/2m6jJ5M }
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here

MySQL のオンラインバックアップ & リカバリ

  1. 1. MySQL のオンラインバックアップ & リカバリ 2014/05/24 teru @TKS #3
  2. 2. アジェンダ • バックアップ • mysqldump コマンド • 推奨オプション • 便利なオプション ! • リカバリ • ダンプのリストア方法 • mysqlbinlog コマンド • バイナリログの適用 (ポイントインタイムリカバリ) 2
  3. 3. バックアップ編 3
  4. 4. mysqldump • MySQL に付属している論理バックアップツール ! • SQL 文が羅列されたものが出力される 4 DROP TABLE IF EXISTS `sometable`; CREATE TABLE `sometable` ( ... INSERT INTO `sometable` VALUES ( ... INSERT INTO `sometable` VALUES ( ... INSERT INTO `sometable` VALUES ( ... INSERT INTO `sometable` VALUES ( ...
  5. 5. 対象テーブルの指定 • mysqldump somedb • somedb 内のテーブルすべてダンプ ! • mysqldump somedb sometable1 sometable2 • somedb.sometable1, somedb.sometable2 のみバッ クアップ ! • mysqldump --ignore-table=somedb.gomitable1 somedb • somedb.gomitable1 は無視する • オプションを繰り返すことで複数指定可 5
  6. 6. デフォルト有効のオプション • mysqldump は、デフォルトで "--opt" が有効になっている。 • "--skip-opt" で無効にできる。 ! • "--opt" は下記と同義 • --add-drop-table • --add-locks • --create-options • --disable-keys • --extended-insert • --lock-tables • --quick 6
  7. 7. デフォルト有効のオプション • --extended-insert • INSERT 一文に、複数のレコードが入る • メリット: リストア速度が早い ! ! ! ! • --skip-extended-insert • 1 レコード 1 INSERT になる。 • メリット: ダンプファイルをいじりやすい 7 INSERT INTO `sometable` VALUES (1,1980,'piyopiyo','','2014-05-24 13:44:51'),(2,1981,'hogehoge','','2014-05-24 13:45:05'), (3,1982,'hugahuga','','2014-05-24 14:44:27');
  8. 8. デフォルト有効のオプション • --lock-tables • テーブルのダンプ前、ロックを掛ける • ダンプ中はそのテーブルの更新ができない ! • --skip-lock-tables • ロックしない • サーバ移行時の事前テストなど、カジュアルにダンプ ができる 8
  9. 9. 推奨オプション • --single-transaction • ダンプが単一トランザクションになる • ダンプ開始時点の断面がダンプできる • かつ、ダンプ中更新可能 • ※ トランザクション対応 DB でのみ可能 (InnoDB など) ! • --master-data=2 • ダンプファイル内に、バイナリログのポジションがコメントで入る • ポイントインタイムリカバリに使える 9 -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1457;
  10. 10. 推奨オプション • --order-by-primary • ダンプを主キーでソートして出力する • InnoDB のリストアが爆速になる ! ! ! ! ! ! • 444MBのダンプファイルのリスト時 • 引用: http://d.hatena.ne.jp/sh2/20120122 10 innodb_buffer_pool_size
  11. 11. おまけ: クラスタインデックス 11
  12. 12. 僕がいつも使うオプション ! • mysqldump --default-character-set=binary --opt -c somedb • MyISAM の場合 ! • mysqldump --default-character-set=binary --opt -c --single-transaction --master-data=2 --order-by- primary somedb • InnoDB の場合 • binlog 出しとく 12
  13. 13. その他知っとくと便利なオプション • --where="deleted_at >= '2013-10-01 00:00:00'" • ダンプ時に where 句指定で吐ける • 「"」「'」 に注意 ! • --no-data • テーブルの定義のみダンプ • CREATE TABLE, CREATE INDEX などのみ ! • --no-create-info • データのみダンプ • INSERT のみ 13
  14. 14. リストア編 14
  15. 15. ダンプファイルのリストア方法 ! • cat somedb.sql | mysql somedb • 普通の方法 ! • cat somedb.sql | throttle -M 1 | mysql somedb • throttle コマンドで 1MB/s に制限 • 負荷を掛けたくない時に有用 15
  16. 16. mysqlbinlog コマンド ! • バイナリログから SQL 構文を作るコマンド ! • 出力されたファイルは、ダンプファイルと同じようにリ ストアに使用できる。 ! • 文法 • mysqlbinlog [OPTIONS] mysql-bin.000001 ... 16
  17. 17. mysqlbinlog オプション • --start-position=4 • --stop-position=123456 • バイナリログの読み込み開始・終了のポイントを、ポ ジションで指定 ! • --start-datetime="2013-01-01 12:34:56" • --stop-datetime="2013-01-01 12:34:56" • バイナリログの読み込み開始・終了のポイントを、時 刻で指定 ! • --database=somedb • バイナリログの中で、対象のデータベースを指定 17
  18. 18. (再掲) 推奨オプション • --single-transaction • ダンプが単一トランザクションになる • ダンプ開始時点の断面がダンプできる • かつ、ダンプ中更新可能 • ※ トランザクション対応 DB でのみ可能 (InnoDB など) ! • --master-data=2 • ダンプファイル内に、バイナリログのポジションがコメントで入る • ポイントインタイムリカバリに使える ! ! ! 18 -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1457;
  19. 19. mysqlbinlog 使用例 ! ! ! ! ! • 状況の例 • --master-data=2 で取得したバックアップがある ! • 15:00:00 にバルス (DROP TABLES) してしまった ! • バックアップと tmp.sql でバルス直前の状態まで戻せ る 19 $ mysqlbinlog --start-position=1457 --stop-datetime="2014-05-24 14:59:00" mysql-bin.000001 > tmp.sql -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1457;
  20. 20. 以上 20

×