该数据库有数百万条记录,需要备份用户的每个数据条目。
答案1
对于小型数据库,我个人使用 phpMyAdmin。对于较大的数据库(SQL 转储大于 5MB),我更喜欢使用标准 MySQL 工具 mysqldump 从命令行进行备份:
mysqldump -h localhost -u username -p database_name > backup_db.sql
这样就很容易得到压缩的数据库备份:
mysqldump -u username -h localhost -p database_name | gzip -9 > backup_db.sql.gz
笔记:
我希望我能正确理解你的问题,尽管我对此有点困惑:并且需要备份用户输入的每一条数据。请详细解释一下,以便我可以更新我的问题。
答案2
我们按照以下方式进行:
我们使用主从复制将数据库复制到第二台服务器。然后我们从从服务器上进行离线备份。为了将从服务器的停机时间降至最低,我们关闭了从服务器上的 mysql 服务器,创建 lvm 快照,重新启动 mysql 服务器,然后从 lvm 快照创建副本。
我们确实使用 innodb hotbackup 直接从主服务器创建备份(那时我们还没有从服务器),但是当你有一个大数据库时这可能需要一些时间。
此致,
斯蒂芬
答案3
没有太多可继续的内容,但假设这是一个不断添加新数据的 OLTP 数据库,我建议您研究设置复制实例,使用 mysqldump 或 mysqlhotcopy 定期备份副本。
这将确保将数据持续镜像到复制实例,同时最大限度地减少生产实例的压力。请注意,副本本身并不能取代传统备份的需要,因此您仍然需要将副本备份到磁带或外部存储。
答案4
...需要备份用户的每个数据条目。
真的吗?“数据输入”(更准确地说是 SQL INSERT、UPDATE、DELETE 查询)多久会发生一次?如果非常频繁,您的要求很可能无法满足。
就我个人而言,我使用自动mysql备份脚本来管理我的 MySQL 数据库的版本备份。