gpt4 book ai didi

mysql - 带有前滚日志的增量备份 : How to get the logs with MySQL commands?

转载 作者:行者123 更新时间:2023-11-29 02:18:29 25 4
gpt4 key购买 nike

我有一个 MySQL 数据库,它启用了二进制日志记录(即前滚日志)。日志位于(默认情况下)/var/log/mysql 中,只有 mysqlroot 用户可以访问。

我每个星期天都使​​用这样的 cronjob 进行(完整)备份:

mysqldump -u root --flush-logs $database > $database.sql
mysql -u root -e 'purge binary logs before now();'
# or "reset master", which is the same

我知道 mysqldump 没有增量备份选项,二进制日志实际上增量备份——或者至少可以是如此看待。所以每个星期三我都会通过刷新和复制二进制日志文件来进行增量备份:

mysql -u root -e 'flush binary logs;'
cp /var/log/mysql/mysql-bin.* $some_backup_path

(此处省略整理当前binlog的代码。)

有多种命令可以检查 binlog 文件,例如

show binary logs;                    -- display
flush binary logs; -- start a new one
reset master; -- delete all and start over
purge binary logs before $some_date; -- delete older logs

但是,似乎没有 MySQL 命令可以获取它们。 唯一的方法似乎是使用“常规”Unix 命令复制它们,例如 cprsync 作为用户 root。这是真的吗?

我知道还有其他方法可以进行备份,例如 MySQL Enterprise 的东西或简单地备份 /var/lib/mysql 目录。我只是好奇。

最佳答案

您可以使用 mysqlbinlog utility管理二进制日志文件,包括将它们复制到另一个位置。在 mysql 中你可以使用 show binlog events command访问二进制日志中的大部分内容。

关于mysql - 带有前滚日志的增量备份 : How to get the logs with MySQL commands?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35536909/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com