我拥有在 Linux 上为我们的 MariaDB 数据库进行备份(lvm 快照)所需的所有代码。这些是我在终端中的命令:
mysql
flush tables read lock; (in database)
exit
lvc create -l100%free -s -n mdbsnap /dev/vgm/lv
mysql
unlock tables; (in database)
exit
它有效。
但现在我正在尝试使用 Linux bash 自动化流程:
#!/bin/bash
mysql -e "flush tables with read lock"
lvc create -l100%free -s -n mdbsnap /dev/vgm/lv
mysql -e "unlock tables"
并且它不起作用(锁定不起作用并且数据库不会保持锁定状态)。我认为这是因为我应该保持我的 mysql 连接打开以强制我们的数据库在快照期间保持锁定。有人有什么主意吗?
在另一个 stackexchange 的问题的帮助下,我找到了答案: