我有一个带有 InnoDB 数据库的 symfony 应用程序,它有 57 个表,大约 2GB。数据库的大部分大小驻留在单个表中(~1.2GB)。我目前正在使用 mysqldump 每晚备份数据库。
由于我的 comcast 连接,通常如果我手动运行转储,我与服务器的连接将在转储完成之前超时,导致我不得不重新运行转储。[我目前运行一个每晚执行转储的 cron,这仅适用于我手动运行的转储。]
有没有办法加快连接超时问题的转储,同时也可以限制服务器被这个进程占用的时间?
顺便说一句,我目前正在努力减少整个数据库的大小来解决这个问题。
我正在考虑为我的数据库设置主从复制。从服务器将用于冗余和可能的报告服务器。但是,我遇到的最大问题之一是我们的数据中心已经用尽了电源。因此,添加另一台物理服务器不是一种选择。
就 CPU 而言,我们现有的数据库服务器的利用率相当低(四核上的平均负载从未真正超过 1)。所以主要的想法是放入一些新驱动器并将内存加倍(从 8GB 到 16),并在同一台物理机器上运行第二个 mysql 实例。每个实例都有单独的数据库磁盘。
这个想法有什么问题吗?
编辑(更多信息):我(幸运的是)从来没有发生过任何足以关闭服务器的事情,但我正在努力提前计划。我们当然有可以从中恢复的每晚备份。但我认为,如果主服务器的驱动器出现故障(如果整台机器出现故障,显然不会),将冗余数据放在单独的磁盘上会提供更快的解决方案。
至于报告方面,我们要报告的任何表都是 MyIsam。因此,在正在写入的同一表上进行昂贵的读取可能会使服务器陷入困境。我的假设是,只要我们在主服务器上投入足够的 RAM(因为 cpu 负载还不是问题),有一个要报告的从服务器就不会影响主服务器。
我需要为我们的一位客户在同一台主机上设置多个 MySQL 实例。据我所知,我可以去:
mysqld_multi
这应该是企业级生产环境的长期解决方案。
我们需要将当前使用带有主动/被动节点的 RedHat 集群的现有环境迁移到没有集群软件的新 VM(将使用 VMware HA 解决方案,我知道会有所不同)。
有 3 个独立的 MySQL 实例/集群资源。我不知道这种分离的最初动机,但我认为客户希望能够自主停止/启动(补丁、升级......)不同的资源。
任何意见和建议 - 利弊和现实世界的经验是非常受欢迎的!
我想知道是否有任何方法可以定期将整个 MySQL 服务器备份到特定位置。(如果需要版本,我可以轻松获取)。
如果有,我必须有一种方法可以轻松地从该服务器备份中恢复单个数据库,就像我已经单独备份它们一样。
所使用的方法只是一个纯粹的备份,没有区别,因此无需担心并发症。
更新:我使用 Windows Server 2008 来托管 MySQL 服务器
因为mysqldump
需要永远,我们决定只移动文件。因为 2 个数据库在同一台服务器上,所以 acp
会很快。
问题是,从研究来看,MyISAM 可以完全移动,但 InnoDB 不是。
我读到了这个:http : //www.mysqlperformanceblog.com/2009/07/31/copying-innodb-tables-between-servers/
最后一个问题是,有没有办法一次移动整个数据库并确保 InnoDB 和 MyISAM 表都正常。
有任何想法吗?非常感谢!