mysql:13772
From: とみたまさひろ <とみたまさひろ <tommy@xxxxxxxxxx>>
Date: Tue, 27 Feb 2007 07:34:49 +0900
Subject: [mysql 13772] Re: 全DBを読み取りロックする方法について
とみたです。 On Tue, 27 Feb 2007 02:19:47 +0900 ひら けん <hirai0213@xxxxxxxxxx> wrote: > FLUSH TABLES WITH READ LOCK文を実行する場合は、 > # mysql <DATABASE名> > といったように、あるDBへログインし、RELOAD権限(LOCK TABLESも必要?)があれ > ば、 > ログインした<DATABASE名>に関してはLOCKが実行できるということを確認済みなので > すが、 > 『すべてのDB(の全テーブル)を読み取りロックする。』 > には、どのようにすればよいのでしょうか? FLUSH TABLES WITH READ LOCK は全DBの全テーブルをロックします。 > 当初は、 > # mysql -u root -e "FLUSH TABLES WITH READ LOCK" > と > # mysql -u root -e "UNLOCK TABLES" > の間にバックアップをとればOKかなと思っていたのですが、 > 試したところセッションが切れるようで、実際にはLOCKがかかっておりませんでし > た。 1つ目の mysql コマンドが終了する際にロックも解放されてしまいます。 バックアップを取るためのコマンドが backup.sh としたら、こんな感じでで きると思います。 # mysql -u root -e 'FLUSH TABLES WITH READ LOCK; system backup.sh; UNLOCK TABLES' -- とみたまさひろ <tommy@xxxxxxxxxx> 3469 42CC 4D32 F53C AD98 65A5 8C37 FF09 69C1 6040
13771 2007-02-27 02:19 [ひら けん <hirai0213] 全DBを読み取りロックする方法について -> 13772 2007-02-27 07:34 ┗[とみたまさひろ <tomm] 13773 2007-02-28 01:16 ┗[ひら けん <hirai0213]