よい機会なのでまとめておく。対象はMySQL5.6以下とMariaDB10.0以下。 (2014.12.3追記:以下の書籍にも記述した。) 要旨 MySQL/MariaDBのバックアップについて、相変わらず「InnoDBさえ使っていれば、FLUSH TABLES WITH READ LOCKは不要。よってバックアップ中に更新不可になることはない!」との主張が繰り返されているが、少なくとも5.6/10.0まではそんなことはない。 オンラインバックアップに関するロックの正確な記述 より正確に言えば「全データベース領域をバックアップする場合には、FLUSH TABLES WITH READ LOCKは必須。特定のInnoDBだけのデータベースやテーブルをバックアップする際は、この限りではない」。 なのだが、全領域のバックアップをしたい人に対してロック不要説を吹き込む人が未だにいる。 ロックの必要
MySQLで整合性のあるバックアップを取得するのに、 "FLUSH TABLES WITH READ LOCK"でテーブルロック バックアップ処理(mysqldumpやスナップショット) "UNLOCK TABLES"でロック解除 みたいなスクリプトを実行していたが、"FLUSH TABLES WITH READ LOCK"って必ず数ミリ秒みたいなレベルでロックできるのかなと疑問に思った。 結構時間のかかるクエリが処理されていたりすると、すぐにロックできないんではないかと思った。 ちょっと調べてみると、やはりすぐにロックされない可能性もあるようだ。*1 FLUSH TABLES WITH READ LOCKの速度について ということで、"FLUSH TABLES WITH READ LOCK"後に、以下のような確認処理を追加した。 "SHOW PROCESSLIST"を実行して、"FLUS
Tritonn のホットバックアップ環境を構築しようと思って調査。結論から言うと 漢(オトコ)のコンピュータ道: MySQLバックアップ頂上決戦!! LVMスナップショット vs InnoDB Hot Backup の「MyISAMをスナップショットでバックアップ」でよさそう。 確認したこととしては、 Tritonn の全文検索データは FLUSH TABLES しても fsync されない つまり sync (1) の呼び出しが必須 linux の場合 sync (1) は1回呼べば十分だと man に書いてある POSIX 的には何回呼んでも書き込みが完了してる保証はない ってあたり。実際に、FLUSH TABLES WITH READ LOCK して sync 3回呼んでから LVM snapshot とって、myisamchk と sennachk してみたけど、myisamchk
MySQLを使っていると書込みロックをかけてバックアップを取る、ってのは一般的だと思います。実際、標準添付の mysqlhotcopy や Xtrabackup もそういうことをやっています。 しかし、これらはいずれもロックの管理とバックアップ処理が密結合になっている(ですよね?)のが玉に瑕。 特にボリュームレベルのスナップショット機能を使ってバックアップを取る場合、スナップショットを取るためのコマンドは環境(LVM とか XenServer とか VMware ESXi とか...)によって異なるので、ロック管理とバックアップコマンドは疎結合にしておきたい。と思ったので、書くことにしました。というか、疎結合なのを探すより書いたほうが早かった。コードはこちら↓。 使い方は、以下のとおり。setlock 風のインターフェイスなので、慣れている人には簡単だと思います。 % mysqllock
今まで、MySQL のバックアップは自作の cron スクリプトでバックアップをしていたが、ZRM(Zmanda Recovery Manager) という便利そうなツールを知ったので、試してみた。 その前に、現在の MySQL のバックアップ状況を説明しておく。普通の MySQL レプリケーションを組んだシステムで、Master と Slave 1台に、それぞれに自作の cron を使ってバックアップしている。 Master 側: flush logs したあと、リレーログを rsync バックアップして一カ月以上の前のリレーログを削除している Slave 側: レプリケーションを停止して、flush tables したあと /var/lib/mysql ディレクトリ以下をまとめて rsnyc バックアップ 今は Master 側と Slave 側のバックアップ時間はほぼ同じなっているこ
If someone asks me about MySQL Backup advice my first question would be if they have LVM installed or have some systems with similar features set for other operation systems. Veritas File System can do it for Solaris. Most SAN systems would work as well. What is really needed is ability to create atomic snapshot of the volume, which can be later mounted same as original file system Why snapshot ba
A script to take daily, weekly and monthly backups of your MySQL databases using mysqldump. Features - Backup mutiple databases - Single backup file or to a seperate file for each DB - Compress backup files - Backup remote servers - E-mail logs – More AutoMySQLBackup Script Features • Backup mutiple MySQL databases with one script. (Now able to backup ALL databases on a server easily. no longer ne
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く