`
huangyongxing310
  • 浏览: 498522 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

MYSQL 主从、读写分离、分库分表、高可用、数据安全

 
阅读更多
MYSQL 主从、读写分离、分库分表、高可用、数据安全





主从
主从复制(Master-Slave)的方式来同步数据,通过binlog实现的



读写分离
MySQL-Proxy,
amoeba目前在阿里巴巴是内部项目,正在生产环境使用的。

Mycat
https://blog.csdn.net/j903829182/article/details/73500080
https://www.cnblogs.com/fyy-hhzzj/p/9044775.html

sharding-jdbc
https://blog.csdn.net/yanyan19880509/article/details/78170233



分库分表
Mycat分表操作是利用分库来进行的,支持读写分离

1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包
2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码

sharding-jdbc一款以jar包的形式整合到业务中的插件,这就决定了它是轻量级的,用法也是十分简单的。支持库内分表,支持读写分离
https://blog.csdn.net/l1028386804/article/details/79368021(sharding-jdbc之——分库分表实例)


Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。


Galera Cluster是Codership公司开发的一套免费开源的高可用方案


MySQL异步复制、半同步复制:
https://www.cnblogs.com/paul8339/p/6879329.html

数据一致性保障
MySQL在5.5中就顺其自然地引入了半同步复制




一致性(主从或主主之间)
Galera Cluster一致性


出现切换时也不会出现数据不一致的现象


5.7支持无损复制(Loss-less Semi-Synchronous)
在没办法解决分布式数据一致性问题的情况下,它能保证的是不丢数据,多了数据总比丢数据要好。
https://www.cnblogs.com/zero-gg/p/9057092.html



MySQL Replication,MySQL Replication支持链式复制,也就是说Slave服务器下还可以再链接Slave服务器,同时Slave服务器也可以充当Master服务器角色。

一主一次,即一台Master服务器和一台Slave服务器。这是最常见的架构。

一主多从,即一台Master服务器和两台或两台以上Slave服务器,经常用在写操作不频繁、查询量比较大的业务环境中。

主主互备,又称双主互备,即两台MySQL Server互相将对方作为自己的Master,自己又同时作为对方的Slave来进行复制。主要用于对MySQL写操作要求比较高的环境中,避免了MySQL单点故障。

双主多从,其实就是双主互备,然后再加上多台Slave服务器。主要用于对MySQL写操作要求比较高,同时查询量比较大的环境中。

MySQL主主互备模式架构,采用Keepalived来实现MySQL的自动failover。
Keepalived的切换过程非常迅速,整个过程大概持续1~3s,重新切换到新的服务器后,之前所有的MySQL连接失效,重新连接可以恢复正常。

http://blog.51cto.com/6284444/2145990?source=dra(高性能MySQL集群详解)


高可用


数据安全
定时全量备份,通过全量备份和增量备份进行

冷备份的备份步骤:停掉MySQL服务,在操作系统级别备份MySQL的数据文件和日志文件到备份目录
冷备份的恢复步骤:停掉MySQL服务,在操作系统级别恢复MySQL的数据文件,然后重启MySQL服务,使用mysqlbinlog


增量备份、全量备份
https://blog.csdn.net/richardlygo/article/details/81638237
https://blog.csdn.net/wukong_666/article/details/54845003
https://www.cnblogs.com/martinzhang/p/3454358.html

数据库物理热备的备份工具
Percona XtraBackup
http://mysql.taobao.org/monthly/2016/03/07/

如果不想停机备份,可以通过备份binlog并在另一个机器中执行binlog的方式来实现数据的备份工作,执行binlog的时间可以跟据容量在定义周期,防止数据的丢失




MySQL异步复制、半同步复制详解

通过延时同步从库可以做到数据库的数据安全备份和快速恢复


//分库分表后的事务
shrading-jdbc之弱事务
完全支持非跨库事务,例如:仅分表,或分库但是路由的结果在单库中。
完全支持因逻辑异常导致的跨库事务。例如:同一事务中,跨两个库更新。更新完毕后,抛出空指针,则两个库的内容都能回滚。
不支持因网络、硬件异常导致的跨库事务。例如:同一事务中,跨两个库更新,更新完毕后、未提交之前,第一个库死机,则只有第二个库数据提交。


MySQL Replication(主从复制)
https://www.cnblogs.com/zhenyuyaodidiao/p/4635458.html

mysql-cluster
https://blog.csdn.net/weitry/article/details/80579706
不仅仅具有高可用性,而且可以自动切分数据,冗余数据等高级功能。


mysql-proxy
mysql-proxy是mysql官方提供的mysql中间件服务
拦截查询和修改结果,需要通过编写Lua脚本来完成。

https://www.cnblogs.com/jwentest/p/8552075.html
分享到:
评论

相关推荐

    mysql主从同步+MyCat读写分离+分库分表+Haproxy高可用+Keepalived心跳机制+虚拟IP.rar

    MySQL主从同步确保了数据的安全和一致性,MyCat实现了读写分离和分库分表,提升了系统性能;Haproxy提供了负载均衡,保证了服务的响应速度;Keepalived和虚拟IP则保证了在硬件故障时服务的连续性。这个架构适合处理...

    mysql主从架构及分库分表详解11

    在实际应用中,主从架构和分库分表是解决数据库扩展性和高可用性的常见手段,而通过binlog处理数据一致性问题则是一种有效策略。理解这些概念和技术对于构建高可用、高性能的数据库系统至关重要。

    Mycat读写分离、主从切换、分库分表的操作记录- 线上操作手册

    ### Mycat读写分离、主从切换、分库分表的操作记录—线上操作手册 #### 一、Mycat简介及关键特性 Mycat是一个开源的分布式数据库系统,能够作为一个中间件帮助开发者管理和优化数据库资源。随着业务增长和技术演进...

    深入探索MySQL主从架构与读写分离:提升数据安全和性能的实战指南

    MySQL主从架构是一种常见的数据库高可用和负载均衡解决方案,它主要解决了大数据量处理、数据安全性以及性能提升等问题。在大型互联网环境中,随着数据量的增长,单机MySQL服务无法满足高并发读写的需求,同时,数据...

    MySQL主从备份+Mycat读写分离学习笔记

    MySQL主从备份与Mycat读写分离是数据库管理和优化中的重要技术,它们在大型分布式系统中发挥着关键作用,确保数据的安全性、可用性和性能。以下是对这两个主题的详细阐述。 **一、MySQL主从备份** MySQL主从备份是...

    mysql读写分离,分库分表-MysqlSample.zip

    MySQL数据库在面临高并发、大数据量的业务场景时,为了保证系统的稳定性和性能,通常会采用读写分离和分库分表的技术策略。本篇将详细介绍这两种技术,并结合"mysql读写分离,分库分表-MysqlSample"的示例进行讲解。...

    安全,高新能的PHP mysql-mysqli数据库驱动类,支持主从,分库分表,sql注入防御等,Hi-mydb.zip

    这个驱动类不仅支持主从复制,还实现了分库分表以及SQL注入防护,旨在提升应用的稳定性和安全性。 一、MySQLi扩展 MySQLi(MySQL Improved)是PHP中用于连接和操作MySQL数据库的一个扩展,提供了面向对象和面向...

    MYCAT读写分离+主从复制

    MYCAT是一种开源的分布式数据库系统,它主要用于解决大数据量、高并发访问的问题,通过分库分表、读写分离等技术提升系统的可用性和性能。在本配置中,我们看到MYCAT是如何实现主从复制和读写分离的。 主从复制是...

    U8改造-分库分表1

    通过以上步骤,可以有效地实现主从读写分离和自动主从切换,提升数据库的稳定性和高可用性。 ##### 3.3 全局序列创建 全局序列是指在分布式环境中生成全局唯一序列号的机制。对于需要保证唯一性的场景(如订单号、...

    分库分表入门级-lzg

    ShardingSphere是一款开源的数据库中间件,提供分库分表、读写分离等功能。它通过定义分片策略(如按范围、取模等方式),解决数据分布问题。ShardingSphere支持标准、自定义和长事务类型的分布式事务,并提供主键...

    MySQL入门到精通-运维篇

    MySQL 运维篇涵盖了 MySQL 的日志、主从复制、分库分表、读写分离等多方面的运维知识点。 日志 MySQL 中的日志是非常重要的,日志记录了 MySQL 服务器的各种操作记录,包括错误日志、二进制日志、查询日志、慢...

    mycat读写分离模式智能优化方案1

    MyCAT 是一个分布式数据库中间件,用于实现大规模数据的读写分离和分库分表。在读写分离模式下,MyCAT 将写操作路由到主数据库,读操作分发到从库,以此提高系统的并发处理能力和响应速度。启用 MyCAT 的读写分离...

    mycat读写分离

    3. **MyCat**:一个开源的分布式数据库系统,主要功能是作为中间层来实现数据库的读写分离、分库分表等特性,支持多种数据库后端,如MySQL、PostgreSQL等。 #### 三、实现步骤 ##### 1. 准备环境 - **下载JDK**:...

    基于分布式MySQL的PC构件数据溯源方法设计.pdf

    它通过分库分表、读写分离和负载均衡等策略,提升了系统的性能和可扩展性,特别是在处理大规模数据和高并发场景下。这种设计有助于PC构件行业的信息化进程,确保数据的安全性和追溯性,促进行业的高效发展。

    MyCat高可用负载均衡集群实现(HAProxy+Keepalived+MyCat)

    3. **MyCat**:作为一款开源的分布式数据库中间件,MyCat能够实现对数据库的读写分离、分库分表等功能,从而减轻单个数据库的压力,提高数据库层的整体性能。 #### 三、软件版本与部署环境规划 为了更好地理解和...

    sharding-jdbc.rar

    **描述:**该压缩包内容主要涉及使用Sharding-JDBC技术在MySQL环境中实现数据库的分库分表和读写分离。分库分表是一种常见的数据库扩展策略,用于应对大数据量场景下的性能挑战。通过将单一的大表分解为多个小表,...

    在OneProxy的基础上实行MySQL读写分离与负载均衡

    OneProxy作为一款由平民软件自主开发的分布式数据访问层,专为此目的而设计,它允许用户在MySQL或PostgreSQL集群上快速部署支持分库分表的分布式数据库解决方案,并提供了SQL白名单和IP白名单的安全防护功能。...

    MySQL+MyCAT架构设计分享

    - **存储方式**:采用分库分表形式,每张表存储4份以确保数据安全; - **存储周期**:12个月加1个月备份周期。 2. **2-3年内业务数据**: - **存储方式**:同样采用分库分表形式,每张表存储4份; - **存储周期...

    mysql 高级 .txt

    4. **分库分表**:当单个数据库无法满足性能需求时,可通过分库分表分散压力。 ### 性能监控与调优 1. **慢查询日志**:开启慢查询日志记录执行时间过长的SQL语句,便于后续分析和优化。 2. **InnoDB缓冲池**:调整...

Global site tag (gtag.js) - Google Analytics