[前][次][番号順一覧][スレッド一覧]

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]