当备份具有数百万条目的数据库时,我需要考虑什么?是否有任何工具(可能与MySQL服务器捆绑在一起)可供使用?
当备份具有数百万条目的数据库时,我需要考虑什么?是否有任何工具(可能与MySQL服务器捆绑在一起)可供使用?
我还没有尝试过但对我来说有意义的方法:
FLUSH TABLES WITH READ LOCK
(当然,在此之后不要忘记UNLOCK TABLES
)另外:
Mysqlhotcopy的描述不够准确 - 它只能在使用MyISAM时才能工作,而且它并不是热备份。
使用mysqldump的问题在于恢复备份所需的时间(但如果您有所有InnoDB表,则可以使其成为热备份,请参见--single-transaction)。
我建议使用热备份工具,例如XtraBackup中提供的工具: http://www.percona.com/docs/wiki/percona-xtrabackup:start
如果使用 MyISAM 存储引擎备份大型表时,要小心使用 mysqldump;在每个表上运行备份时,它会阻塞选择操作,并且在某些情况下可能会使繁忙的站点停机 5-10 分钟。
相比之下,使用 InnoDB 可以获得非阻塞备份,因为它具有行级锁定功能,因此这不是一个问题。
如果需要使用 MyISAM,常见策略是复制到第二个 MySQL 实例并对复制副本进行 mysqldump 备份。
使用phpMyAdmin中的导出选项卡。phpMyAdmin是用于进行MySQL管理的免费易于使用的Web界面。
我认为mysqldump是正确的做法。