mysql如何创建分布式数据库_mysql创建分布式数据库的部署方案

我记得有一次我在一家初创公司担任数据库架构师。
当时,公司业务快速增长,数据量如滚雪球般滚雪球。
当时我们面临一个选择:是继续使用单机MySQL,还是转型为分布式数据库?我们的一些技术骨干像热锅上的蚂蚁一样聚集在一起,展开了热烈的讨论。

我算了一下,当时的数据量已经超过了5 00GB,业务对数据库的读写性能要求极高。
我查了资料,发现MySQLCluster(NDBCluster)是一个不错的选择。
它支持同步复制和自动分片,听起来很满足我们的需求。
但我也有点担心,因为听说配置相当复杂,对硬件要求也很高。
我们当时的预算和团队经验可能还不够。

然后我想到了MySQL+中间件的解决方案,比如ShardingSphere,它支持动态扩展,成本相对较低,而且我们手头的MySQL实例可以继续使用。
不过我犹豫了,因为跨分片的交易可能存在不一致的情况,而且分片key的选择会影响性能。

正当我们苦苦挣扎时,公司经理突然灵机一动:“试试云服务解决方案怎么样?”我一听,心里很感动。
是的,我们之前一直忙于技术细节,忘记了还有云服务的选项。
我查了一下,阿里云的POLARDB和腾讯云的TDSQL都非常好,部署快,弹性扩展,减少运维负担。

最终,我们决定先尝试云服务解决方案。
毕竟快速部署和弹性扩展对我们来说非常重要。
不过,我心里还是有一点抱怨,云服务的成本是不是太高了?而如果未来业务需求发生变化,我们该如何调整?
等等,我突然想到,我们是否可以将几种解决方案的优点结合起来?例如,先利用云服务快速搭建基础设施,待业务稳定后再根据实际情况调整分片策略和一致性模型。
这样既可以满足当前的需求,又可以为未来的扩展预留空间。

就这样我们开始了分布式数据库的改造。
尽管过程中遇到了很多挑战,但我们最终还是成功实现了高效的业务运营。
不过,这件事也让我明白了一个道理:对于数据库架构来说,没有一劳永逸的解决方案,只有一个根据实际情况不断调整优化的过程。

MySQL中的数据分布式复制同步技术

多主复制是指多个MySQL主数据库相互同步数据。

说白了,如果Master A改变了编号,Master B、Master C和Slave数据库都会随之改变。

上周刚接手一个电商项目,几个主库承受了巨大的推广流量。

这样做的好处是,如果一个主数据库宕机了,其他主数据库仍然可以运行。

新闻网站使用多个主库,读取请求分为多个从库,速度非常快。

金融系统采用多主复制,数据多副本存储,不用担心丢失。

部署步骤相当复杂。

先创建多个MySQL实例,server-ID不能相同。

连接GTID并同步二进制日志中的数据。

数据初始化可以使用mysqldump。

使用 CHANGEMASTERTO 开始复制。

但是同步会有延迟。
主数据库更改的数据可能会延迟从从数据库到达。

多个主机写入相同数据时可能会发生冲突。

运维成本非常高,需要专人监控。

如何解决延迟问题?你自己看看吧。

Mysql重磅推出金融级分布式数据库MGR大揭秘

MGR是MySQL的分布式复制技术,既经济又保证不丢失数据,系统运行不中断。

1 . MGR的特点: 1 、金融级设计,停机时间超过5 分钟则考虑数据零丢失、零故障。
2 .适合大量同时交易、基本支付、保险业务等
2 .运行模式: 1 、单主模式,一个主节点,其他节点读,避免冲突,适合多读少写。
2 .多master模式,所有节点都读写,适合写密集型操作。

3 关键技术: 1 、复制机制:主节点发送交易,所有节点同步。
2 、选择原则,单master模式下传输速度快,多master模式下Paxos协议。

4 部署要求: 1 . InnoDB存储引擎、业务表主键、IPv4 网络、二进制日志检查必须关闭。
2 、RC隔离级别不支持SERIALIZABLE,且节点数不超过9
5 .好处: 1 . Paxos协议保证数据高一致性。
2 、高可用、多副本、快速故障转移。
3 、灵活的扩展性,读写分离或同时写入速率高。
4 、操作维护简单化,故障自动排除。

MGR 是金融行业的数据冠军。
数据不会丢失,系统也不会停止。
你值得拥有。
自己找找看,有不懂的地方就问。