我想知道如何每日备份 mysql 以及每小时备份二进制日志?
我不知道如何编写脚本来执行此操作(或使用 etc/crontab?)。
答案1
我通常会在其中添加 gzip 以节省空间:
mysqldump --add-drop-tables dbname | gzip > dbname.sql.gz
add-drop-tables 会在您恢复时自动删除表,否则恢复时您会收到表已存在的错误。
恢复:zcat dbname.sql.gz | mysql dbname
答案2
看一下自动mysql备份它使用 mysqldump 对 MySQL 数据库进行每日、每周和每月备份。它还会轮换每日和每周备份。
我看不出每小时备份二进制日志有什么理由。如果你担心磁头崩溃,最好将其存储在冗余磁盘上。
答案3
您研究过 mysqldump 吗?它是发行版的一部分。
运行crontab -e
(以 root 或拥有 mysql 的用户身份运行)
输入以下内容:
0 0 * * * mysqldump databasename > nameofdumpfile
其中 databasename 是需要转储的数据库,nameofdumpfile 应该是所需转储文件的整个层次结构。
上述内容将在每天午夜转储,但您需要添加适合您的限定词。