Submit Search
MySQL のオンラインバックアップ & リカバリ
9 likes
7,269 views
k_teru
MySQL のバックアップとリカバリについて軽くまとめました。
Engineering
Read more
1 of 20
Download now
Downloaded 30 times
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
More Related Content
PDF
MySQLバックアップの基本
yoyamasaki
PDF
MySQL 初めてのチューニング
Craft works
PPTX
MySQLの運用でありがちなこと
Hiroaki Sano
PDF
S10 日本東西リージョンでのディザスタ リカバリ環境の実現
Microsoft Azure Japan
PDF
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
PDF
MySQL Cluster 新機能解説 7.5 and beyond
Mikiya Okuno
PDF
MySQL カジュアル 福岡 03
Aya Komuro
KEY
カジュアルにバックアップ - MySQL Casual Talks 福岡
Aya Komuro
MySQLバックアップの基本
yoyamasaki
MySQL 初めてのチューニング
Craft works
MySQLの運用でありがちなこと
Hiroaki Sano
S10 日本東西リージョンでのディザスタ リカバリ環境の実現
Microsoft Azure Japan
tcpdump & xtrabackup @ MySQL Casual Talks #1
Ryosuke IWANAGA
MySQL Cluster 新機能解説 7.5 and beyond
Mikiya Okuno
MySQL カジュアル 福岡 03
Aya Komuro
カジュアルにバックアップ - MySQL Casual Talks 福岡
Aya Komuro
What's hot
(20)
PDF
WindowsでMySQL入門
Hidenori Ishii
PDF
Infinispan - Open Source Data Grid
nekop
PPT
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
dcubeio
PDF
バックアップとリストアの基礎
Kazuki Takai
PDF
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
infinite_loop
PDF
S14 azure site recovery を利用したオンプレミスから azure のサイト回復
Microsoft Azure Japan
PPT
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
PPTX
LINEのMySQL運用について 修正版
LINE Corporation
PPTX
Persistence on Azure - Microsoft Azure の永続化
Takekazu Omi
PPT
Handlersocket 20140218
akirahiguchi
PDF
MySQLチューニング
yoku0825
PDF
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
PDF
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
yoyamasaki
PDF
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
PPTX
MySQL clients
yoku0825
PDF
MySQLを割と一人で300台管理する技術
yoku0825
PDF
お金が無いときのMySQL Cluster頼み
aoike
PDF
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
Microsoft Azure Japan
PDF
Chugoku db 17th-postgresql-9.6
Toshi Harada
PPTX
MySQL Clusterを運用して10ヶ月間
hiroi10
WindowsでMySQL入門
Hidenori Ishii
Infinispan - Open Source Data Grid
nekop
20170329 D3 DBAが夜間メンテをしなくなった日 発表資料
dcubeio
バックアップとリストアの基礎
Kazuki Takai
Dbtechshowcasesapporo mysql-turing-for-cloud-0.9.3
infinite_loop
S14 azure site recovery を利用したオンプレミスから azure のサイト回復
Microsoft Azure Japan
Linux/DB Tuning (DevSumi2010, Japanese)
Yoshinori Matsunobu
LINEのMySQL運用について 修正版
LINE Corporation
Persistence on Azure - Microsoft Azure の永続化
Takekazu Omi
Handlersocket 20140218
akirahiguchi
MySQLチューニング
yoku0825
20120913 nosql@hikarie(okuyama fuse)
Takahiro Iwase
MySQL Cluster 解説 & MySQL Cluster 7.3 最新情報
yoyamasaki
MHA for MySQLとDeNAのオープンソースの話
Yoshinori Matsunobu
MySQL clients
yoku0825
MySQLを割と一人で300台管理する技術
yoku0825
お金が無いときのMySQL Cluster頼み
aoike
S01 企業で活用が進む Microsoft Azureの仮想マシン (Windows)
Microsoft Azure Japan
Chugoku db 17th-postgresql-9.6
Toshi Harada
MySQL Clusterを運用して10ヶ月間
hiroi10
Ad
MySQL のオンラインバックアップ & リカバリ
1.
MySQL のオンラインバックアップ & リカバリ 2014/05/24 teru @TKS
#3
2.
アジェンダ • バックアップ • mysqldump
コマンド • 推奨オプション • 便利なオプション ! • リカバリ • ダンプのリストア方法 • mysqlbinlog コマンド • バイナリログの適用 (ポイントインタイムリカバリ) 2
3.
バックアップ編 3
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.
対象テーブルの指定 • mysqldump somedb •
somedb 内のテーブルすべてダンプ ! • mysqldump somedb sometable1 sometable2 • somedb.sometable1, somedb.sometable2 のみバッ クアップ ! • mysqldump --ignore-table=somedb.gomitable1 somedb • somedb.gomitable1 は無視する • オプションを繰り返すことで複数指定可 5
6.
デフォルト有効のオプション • mysqldump は、デフォルトで
"--opt" が有効になっている。 • "--skip-opt" で無効にできる。 ! • "--opt" は下記と同義 • --add-drop-table • --add-locks • --create-options • --disable-keys • --extended-insert • --lock-tables • --quick 6
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.
デフォルト有効のオプション • --lock-tables • テーブルのダンプ前、ロックを掛ける •
ダンプ中はそのテーブルの更新ができない ! • --skip-lock-tables • ロックしない • サーバ移行時の事前テストなど、カジュアルにダンプ ができる 8
9.
推奨オプション • --single-transaction • ダンプが単一トランザクションになる •
ダンプ開始時点の断面がダンプできる • かつ、ダンプ中更新可能 • ※ トランザクション対応 DB でのみ可能 (InnoDB など) ! • --master-data=2 • ダンプファイル内に、バイナリログのポジションがコメントで入る • ポイントインタイムリカバリに使える 9 -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1457;
10.
推奨オプション • --order-by-primary • ダンプを主キーでソートして出力する •
InnoDB のリストアが爆速になる ! ! ! ! ! ! • 444MBのダンプファイルのリスト時 • 引用: http://d.hatena.ne.jp/sh2/20120122 10 innodb_buffer_pool_size
11.
おまけ: クラスタインデックス 11
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.
その他知っとくと便利なオプション • --where="deleted_at >=
'2013-10-01 00:00:00'" • ダンプ時に where 句指定で吐ける • 「"」「'」 に注意 ! • --no-data • テーブルの定義のみダンプ • CREATE TABLE, CREATE INDEX などのみ ! • --no-create-info • データのみダンプ • INSERT のみ 13
14.
リストア編 14
15.
ダンプファイルのリストア方法 ! • cat somedb.sql
| mysql somedb • 普通の方法 ! • cat somedb.sql | throttle -M 1 | mysql somedb • throttle コマンドで 1MB/s に制限 • 負荷を掛けたくない時に有用 15
16.
mysqlbinlog コマンド ! • バイナリログから
SQL 構文を作るコマンド ! • 出力されたファイルは、ダンプファイルと同じようにリ ストアに使用できる。 ! • 文法 • mysqlbinlog [OPTIONS] mysql-bin.000001 ... 16
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.
(再掲) 推奨オプション • --single-transaction •
ダンプが単一トランザクションになる • ダンプ開始時点の断面がダンプできる • かつ、ダンプ中更新可能 • ※ トランザクション対応 DB でのみ可能 (InnoDB など) ! • --master-data=2 • ダンプファイル内に、バイナリログのポジションがコメントで入る • ポイントインタイムリカバリに使える ! ! ! 18 -- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=1457;
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
Download