mariadb テーブルのロック

GUIクライアントからロックしてみる

以下のトランザクションを2つの「A5sql」実行窓から順番に動かすと、片方が10秒待った後、もう片方が10秒待って処理が完了する。

start transaction  ; 
lock tables GVIS_keihi WRITE ; 

select sleep(10) ;

rollback ;
unlock  tables ;

トランザクションで囲むとプロセス単位で順に処理して内容が維持されるはず。

ロックしてにっちもさっちも行かないとき

linux上のmysqlから実行する。

lockの確認

State欄にて「Locked」「updating」等の状態を確認できる。

mysql> show processlist;

lockしているプロセスの削除

LockedしているプロセスのIdを元にkillを実行。

mysql> kill [プロセスId];

テストでふんづまったときや障害のときにやる。

コメント