FLUSH TABLES
Completes all in-progress DDL and DML transactions (writes) that are running against any databases in the cluster. Then, for each database in the cluster, makes every table available for reads, but not writes.
Syntax
FLUSH TABLES [ON db_name] WITH READ {LOCK | ONLY}
Arguments
db_name
: name of the database
Remarks
FLUSH TABLES WITH READ LOCK
blocks any DDL and DML transactions (writes) that are initiated following the execution of the command.FLUSH TABLES WITH READ ONLY
fails any DDL and DML transactions (writes) that are initiated following the execution of the command, while holding the flush table locks.If you have any pipelines currently running, it is recommended to stop them before executing the
FLUSH TABLES..
command. Do not create/drop/start/stop pipelines before executing the UNLOCK TABLES command.Running
UNLOCK TABLES
afterFLUSH TABLES...
will make the cluster available for writes. RunningUNLOCK TABLES
afterFLUSH TABLES WITH READ LOCK
, specifically, will also unblock any writes that were initiated afterFLUSH TABLES WITH READ LOCK
was submitted. TheUNLOCK TABLES
query must be run in the same connection as theFLUSH TABLES
query for this feature to take effect.If the client connection that issued
FLUSH TABLES...
gets disconnected or is killed by an external process, then the lock is automatically released without the need to run theUNLOCK TABLES
command.This command causes implicit commits. See COMMIT for more information.
See the Permission Matrix for the required permission.
Example
FLUSH TABLES WITH READ LOCK;