如何使用基于binlog的ansible playbook在mysql中实现“1小时定时增量备份”?

gfttwv5a  于 2021-06-23  发布在  Mysql
关注(0)|答案(1)|浏览(539)

我有两台服务器。主服务器和从服务器,为复制进行调节。复制过程运行良好。在这里,我想每一小时使用“增量转储”选项,并将其上传到s3 bucket或其他服务器或本地机器(控制机器)。从mysql文档中,我有信心使用binlogfile完成这项工作。但我不知道从哪里开始。
我遵循下面给出的步骤。但是我不知道binlog文件的变化仅仅相当于增量转储,即使它有我们在数据库中所做的所有查询。

I wants to take dump from slave db. How that will take dump exactly one hour time period. How can I achieve that?

我的复制代码在这里。

sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "CREATE TABLE db_test.mytable (name VARCHAR(100));"
sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "INSERT INTO db_test.mytable (name) VALUES ('ANSIBLE');"
sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "FLUSH TABLES WITH READ LOCK;"
sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "SHOW MASTER STATUS;"
sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "unlock tables;"
sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "drop database db_test;"
sudo mysql -uroot -p'Pass@123' --connect-expired-password -e "DROP TABLE IF EXISTS db_test.mytable;"
-get master
-adding values to dummy host
-changemaster using dummyhost value 
-starting slave
n3schb8v

n3schb8v1#

最后我找到了解决办法。 Flush binary logs [创建新的二进制日志文件]
通过使用 binlog.index 文件,找到以前的二进制文件。把那个文件复制到我想上传的地方。这是转储文件,我从该文件中获取了数据并进行了恢复。
按当前时间戳名称值保存的文件。
通过使用实现自动化 crontab -e 文件。 1 */1 * * * 用于时间计划的值。[每小时的第一分钟]

相关问题