mysql - 服务器场如何处理数据库?

标签 mysql database load-balancing server-farm

我一直在为我想要启动的网站的服务器领域进行一些研究。我想到了采用 RAID 10 的服务器的某种配置,并使用 NAS 进行备份,该服务器也具有 RAID 10 配置。这应该可以在 99.99+ 的情况下保证数据安全。

当我考虑需要第二台服务器时,我的问题出现了。如果我需要更多的处理能力,从而为用户提供更多的存储空间,我如何将第二台服务器连接到我的主服务器,并使它们充当数据库(mySQL)所认为的那样?

我的意思是,我不想在第二台服务器上复制我的第一个数据库并对请求进行负载平衡 - 我只想使用一个数据库(可能是外部的)并让服务器同时使用它。这可能吗?在 NAS 上备份 mySQL 数据的选项是否可行?

最佳答案

最常见的配置(一旦从单个设备扩展)是将数据库放在自己的服务器上。在许多Web应用程序中,数据库是瓶颈(而不是Web服务器);因此第一个硬件扩展步骤往往是将数据库放在自己的服务器上。

这还允许您在数据库和 Web 服务器之间设置额外的安全性 - 防火墙很常见;不同的用户帐户等几乎是标准的。

然后,您可以将 Web 服务器添加到负载均衡器,所有服务器都与同一个数据库通信,只要您的数据库可以跟上。

拥有多个 Web 服务器也有助于提高弹性 - 您可以在一台 Web 服务器上发生灾难性硬件事件,负载均衡器会将流量引导至其余计算机。

扩展数据库服务器性能是一个完全不同的故事 - 尽管通常您为数据库使用非常强大的机器,并为 Web 服务器使用相对轻量级的机器。

要增加数据库层的弹性,您可以引入clustering - 保持运行是一件相当复杂的事情,但可以保护您免受单台机器灾难性故障的影响。

是的,您可以将 MySQL 备份到 NAS。

关于mysql - 服务器场如何处理数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9889746/

相关文章:

mysql - SQL中Concat函数中的空格

javascript - 不确定如何在 AdonisJs 中使用外键保存到数据库

mysql - 防止在必填列中插入数据

mysql - maxscale 读/写拆分与 MYSQL 主/从

load-balancing - GKE中GLBC L7的默认负载平衡算法是什么?

java - MySql 正在记录我的更新查询,但实际上并不执行更新

python - 类没有指定表或表名,也没有从现有的表映射类继承

mysql - 如何创建MySQL分层递归查询

android - 部署安卓应用

load-balancing - 分片和负载均衡器 : how does it works?