全局锁是数据库管理系统中的一种特殊锁机制,用于对整个数据库实例进行加锁,使数据库处于只读状态,阻止所有数据更新(DML)、数据定义(DDL)及更新类事务提交等操作。
其核心应用场景包括:
- 全库逻辑备份
通过锁定数据库实例确保备份期间数据一致性,防止写入操作导致备份数据不一致,适用于不支持MVCC机制的存储引擎(如MyISAM)。 - 数据库迁移或复制
在数据迁移或主从复制过程中,全局锁可保持源数据库和目标数据库的数据一致性,避免迁移期间的数据变更干扰。 - 数据库结构变更
执行全局性结构操作(如批量修改表结构、索引调整)时,防止其他会话并发操作引发冲突。
注:InnoDB引擎可通过事务快照实现无锁备份(如mysqldump --single-transaction),此时无需全局锁。