Noa*_*oam 8 mysql innodb myisam backup xtrabackup
我有一个 500GB 的 MySQL 数据库,主要由 Innodb 表和一个大 (200GB) MyISAM 表组成。我当前的备份策略是将 db 文件复制到外部硬盘驱动器。这会导致约 4 小时的停机时间。我的需求:
目前正在考虑尝试迁移到 Percona xtrabackup。它是否适合我的用例?我特别担心它会锁定 MyISAM 表和学习曲线。
从这个声音来看,您可以使用不同的数据库基础架构。
根据您的上述需求,我有一个建议,但需要一些妥协。
建议 #1:在同一服务器但不同磁盘上使用 MySQL 复制
您的第二个需求 ( No need of real-time replication
) 将不得不在此建议中稍稍退居次要位置。既然您有足够大的外部硬盘驱动器用于 XtraBackup,为什么不在同一台机器上用作第二个 MySQL 实例的数据目录?
我编写了自己的服务脚本来为端口 3307 - 3399 提供专用的 mysql 实例。这是我过去的帖子:
Sep 17, 2012
: mysqlservice 命令语法Sep 30, 2011
:在同一台主机上运行多个实例建议 #2:在不同的服务器上使用 MySQL 复制
考虑到您的第一个需求 ( Low Cost
),如果您可以访问具有足够磁盘空间的商用服务器,请将 MySQL 复制设置为该外部服务器。这样你就可以在 Slave 上运行备份,如下所示
STOP SLAVE;
START SLAVE;
您可以在 Master 上以零影响(无服务器负载,无磁盘 I/O)执行此操作
建议 #3:并行 mysqldumps
您可以设置数据库或表的并行 mysqldumps。这可能会导致更短的备份时间窗口。XtraBackup 本质上是使用时间点敏感操作进行检查点事务备份,以便备份的时间点是备份完成时。在不复制的从属服务器上并行 mysqldumps 为您提供备份,其时间点是备份的开始。在停止的从站上执行 mysqldump 将与存储引擎无关。换句话说,表是 InnoDB 还是 MyISAM 并不重要。
如果您将此应用于 SUGGESTION #1,这将导致服务器负载和磁盘 I/O,因为 Master 和 Slave 驻留在同一台机器上。
如果您将此应用于 SUGGESTION #2,Master 不会受到任何惩罚。您可以在 Slave 上随意运行备份。您也不必担心锁定 MyISAM 表。
请参阅我过去关于执行并行 mysqldumps 的帖子
Jul 24, 2012
:如何将混合了 InnoDB 和 MyISAM 的 MySQL 数据库复制到同一台服务器上?May 22, 2012
: MySQL 服务器备份Oct 01, 2011
:快速 MySQL 备份Apr 17, 2011
:如何优化大型数据库的mysqldump? 归档时间: |
|
查看次数: |
6457 次 |
最近记录: |