我是一名开发人员,我正在与我的系统管理员讨论如何备份我们正在使用的 MySQL 数据库。
以前的系统管理员告诉我他已经开始备份数据库,但是没有那么经验的新人提供帮助我开发脚本。
首先,期望开发人员负责数据库备份是否正常?我工作过的所有其他地方,系统管理员都会照顾它,让我去做开发。
所以目前我有一个调用 mysql-dump 的 Perl 脚本,并将其与代码一起备份。现在由于某种原因,半夜备份失败,并创建了一个截断版本的数据库。我将其开发为临时解决方案,几周前当我需要它时,备份失败了。出于这个原因,我希望系统管理员负责,因为我有代码要开发,并且不需要每天检查 cron 作业输出。
那么什么是每小时备份数据库的可靠方法,如果备份失败会得到警告。
我见过的典型场景是企业所有者或其代表决定保留、可接受的数据丢失和恢复点目标,因为所有者是支付由此产生的账单的人。
DBA(和/或系统管理员)了解应用程序配置文件(复杂的事务或简单的表更新、备份窗口、数据库大小、数据增长、更改的行数等)并决定适当的备份策略以满足那些要求。
那时,企业主通常认为最初的铂金备份要求太贵,所以冲洗并重复。
开发人员甚至无法访问生产系统,即使他们可以访问;他们不负责日常备份。(尽管在对数据库结构进行任何工作之前确保有备份是一种很好的做法)。
所以我同意你的观点,让它成为别人的问题。
如果您的应用程序通常运行更新多个表的事务,您希望使用表锁定选项运行 mysqldump 以确保一致性。但这会在备份作业期间阻止对数据库的所有更新,因此每小时这样做通常是一个坏主意。
二进制日志允许时间点恢复和增量备份。
看看http://dev.mysql.com/doc/refman/5.7/en/backup-methods.html
一个简单的脚本,用于备份 MySQL 服务器上的所有数据库,每个数据库到一个单独的文件。它只会在出现问题时给您发送电子邮件。只要 cron 运行,就会创建备份。与往常一样,还要测试您的恢复能力!: