MySQL其他集群类型介绍


Mysql集群方案大致有三种类型:

  • mysql官方提供的集群方案
    • MySQL Replication【一主多从,异步复制】
    • MySQL Fabric【一主多从,异步复制】
    • MySQL NDB Cluster【多主多从,原生复制及组复制】
    • MGR(MySQL Group Replication)【多主多从,原生复制及组复制】
  • 基于硬件的mysql集群方案
    • 心跳检测+SAN共享存储(heartbeat + SAN)
    • 心跳检测+DRDB磁盘复制(heartbeat + DRBD)
  • 基于第三方的mysql集群方案
    • MMM(Master Replication Manager for MySQL)【双主多从,主主复制】
    • MHA(Master High Availability)【多个一主多从,异步/半同步复制】
    • Lvs (Linux Virtual Servevr) + Keepalived + MySQL 【双主多从,主主复制】
    • HaProxy + Keepalived + MySQL【双主多从,主主复制】
    • Galera Cluster(MariaDB Galera Cluster / Mysql Galera Cluster/Percona XtraDB Cluster 简称PXC)【多主多从】
    • RadonDB

1.MySQL Replication

主要目的是实现数据的多点备份,没有故障自动转移和负载均衡。

特点如下:

  • 一主多从,异步复制
  • 主从复制是通过重放binlog实现主库数据的异步复制。即当主库执行了一条sql命令,那么从库要从binlog获取数据并重放,从而达到主从复制的效果。
  • 对主库与从库之间的网络延迟要求较高,若网络延迟太高,将加重上述的滞后,造成最终数据的不一致。
  • 热备时:可以在某个从数据库中暂时中断复制进程,来备份数据,从而不影响主数据的对外服务(如果在master上执行backup,需要让master处于readonly状态,这也意味这所有的write请求需要阻塞)。
  • 数据被删除,可以从binlog日志中恢复。
  • 单点故障问题:单一的主节点挂了,将不能对外提供写服务。
    • 单节点故障 / 单故障节点

2.MySQL Fabric

在MySQL Replication的基础上,增加了故障检测与转移,自动【数据分片】功能。不过依旧是一主多从的结构

MySQL Fabric只有一个主节点,区别是当该主节点挂了以后,会从从节点中选择一个来当主节点。

特点如下:

  • 一主多从,异步复制。
  • 主从复制是通过重放binlog实现主库数据的异步复制。即当主库执行了一条sql命令,那么从库要从binlog获取数据并重放,从而达到主从复制的效果。
  • 对主库与从库之间的网络延迟要求较高,若网络延迟太高,将加重上述的滞后,造成最终数据的不一致。
  • 事务及查询只支持在同一个分片内,事务中更新的数据不能跨分片,查询语句返回的数据也不能跨分片。
    • 分区:分区则是把一张表的数据分成 N 多个区块,这些区块可以在同一个磁盘上,也可以在不同的磁盘上。
    • 分片:分片可以简单定义为将大数据库分布到多个物理节点上的一个分区方案。每一个分区包含数据库的某一部分,称为一个片。
  • 数据被删除,可以从binlog日志中恢复。
  • 单点故障问题:主节点挂了以后,能够自动从从节点中选择一个来当主节点,不影响持续对外提供写服务。节点故障恢复30秒或更长(采用InnoDB存储引擎的都这样)。

3.MySQL NDB Cluster

通过使用 NDB 存储引擎实时备份冗余数据,实现数据库的高可用性和数据一致性。
在这里插入图片描述

优点如下:

  • 多主多从。
  • 负载均衡优秀,可同时用于读操作、写操作都都密集的应用,也可以使用SQL和NOSQL接口访问数据。
  • 多个主节点,没有单点故障的问题,节点故障恢复通常小于1秒。
  • 高可用性和可伸缩性。
    • 可以自动切分数据,方便数据库的水平拓展。
    • 能跨节点冗余数据:其数据集并不是存储某个特定的MySQL实例上,而是被分布在多个Data Nodes中,即一个table的数据可能被分散在多个物理节点上,任何数据都会在多个Data
      Nodes上冗余备份。任何一个数据变更操作,都将在一组Data Nodes上同步,以保证数据的一致性。

缺点如下:

  • 只能使用存储引擎 NDB ,与平常使用的InnoDB 有很多明显的差距,可能会导致日常开发出现意外。
    • 事务:其事务隔离级别只支持Read Committed,即一个事务在提交前,查询不到在事务内所做的修改。
    • 外键:虽然最新的NDB 存储引擎已经支持外键,但性能有问题,因为外键所关联的记录可能在别的分片节点。
    • 表限制。
  • 对节点之间的内部互联网络带宽要求高。
  • 对内存要求大:Data Node数据会被尽量放在内存中,对内存要求大,而且重启的时候,数据节点将数据load到内存需要很长时间。

总结:

  • 由于 MySQL Cluster 架构复杂,部署费时,通常需要 DBA 几个小时的时间才能完成搭建,而依靠 MySQL Cluster Manager 只需一个命令即可完成,但 MySQL Cluster Manager 是 收费的。
  • 并且业内资深人士认为 NDB 不适合大多数业务场景,而且有安全问题。因此,使用的人数较少。

4.MGR(MySQL Group Replication)

基于Mysql原生复制及 paxos 协议的组复制技术,并以插件的方式提供,提供一致数据安全保证。
MGR提供了single-primary(单个主节点)和 multi-primary(多个主节点)两种模式。

  • single-primary模式下,组内只有一个节点负责写入,读可以从任意一个节点读取,组内数据保持最终一致。
    在这里插入图片描述
  • multi-primary模式即为多写方案,即写操作会下发到组内所有节点,组内所有节点同时可读可写,该模式也是能够保证组内数据最终一致性。
  • 多主模式,即多写,没有选择新 primary 的概念(无需进行选举),group 内的所有机器 都是 primary 节点,同时可以进行读写操作,并且数据是最终一致的。
    在这里插入图片描述

5.心跳检测+SAN共享存储(heartbeat + SAN)

SAN(Storage Area Network):共享存储,主库从库用的一个存储。
SAN的概念是允许存储设施和解决器(服务器)之间建立直接的高速连接,通过这种连接实现数据的集中式存储。
在这里插入图片描述
特点:

  • 可以保证数据的强一致性;
  • 与mysql解耦,不会由于mysql的逻辑错误发生数据不一致的情况;
  • 需要考虑共享存储的高可用;
  • SAN价格昂贵;

6.心跳检测+DRBD磁盘复制(heartbeat + DRBD)

DRBD(Distributed Replicated Block Device):是一个用软件实现的、无共享的、服务器之间镜像块设备内容的存储复制解决方案。
DRDB磁盘复制:这是linux内核板块实现的块级别的同步复制技术。 通过各主机之间的网络,复制对方磁盘的内容

  • 该集群方式采用 Heartbeat 双机热备软件来保证数据库的高稳定性和连续性,数据的一致性 由 DRBD 这个工具来保证。
  • 默认情况下只有一台 mysql 在工作,当主 mysql 服务器出现问题 后,系统将自动切换到备机上继续提供服务,当主数据库修复完毕,又将服务切回继续由主 mysql 提供服务。
    在这里插入图片描述
    特点:
  • 相比于SAN储存网络,价格低廉;
  • 保证数据的强一致性;
  • 与mysql解耦,不会由于mysql的逻辑错误发生数据不一致的情况;
  • 对io性能影响较大;
  • 从库不提供读操作

7.MMM(Master Replication Manager for MySQL)

MMM是在MySQL Replication的基础上,对其进行优化。
MMM是一套支持双主故障切换和双主日常管理的脚本程序,主要用来监控mysql主主复制并做失败转移
这里的双主节点,虽然叫做双主复制,但是业务上同一时刻【只允许对一个】主进行写入,另一台备选主上提供部分读服务,其他的 slave 提供读服务,以加速在主主切换时刻备选主的预热。
在这里插入图片描述
在这里插入图片描述
特点:

  • 双主多从结构,主主复制,双主复制。
  • 多个从节点读的负载均衡。
  • 自动的主主故障转移切换,一般3s以内切换备机。
  • 无法完全保证数据的一致性。如主1挂了,MMM monitor已经切换到主2上来了,而若此时双主复制中,主2数据落后于主1(即还未完全复制完毕),那么此时的主2已经成为主节点,对外提供写服务,从而导致数据不一。
  • 由于是使用虚拟IP浮动技术,类似Keepalived,故RIP(真实IP)要和VIP(虚拟IP)在同一网段。如果是在不同网段也可以,需要用到虚拟路由技术。但是绝对要在同一个IDC机房,不可跨IDC机房组建集群。

MMM 是 Google 技术团队开发的一款比较老的高可用产品,在业内使用的并不多,社区也不活跃, Google 很早就不再维护 MMM 的代码分支。

8.MHA(Master High Availability)

  • MHA是在MySQL Replication的基础上,对其进行优化。
  • MHA(Master High Availability)在 MySQL 高可用方面是一个相对成熟的解决方案,是一 套优秀的作为 MySQL 高可用性环境下故障切换和主从提升的高可用软件。
  • 在 MySQL 故障切 换过程中,MHA 能在最大程度上保证数据的一致性,以达到真正意义上的高可用。
  • 提供更多的主节点,但是缺少VIP(虚拟IP),需要配合keepalived等一起使用。
  • 要搭建MHA,要求一个复制集群中必须最少有三台数据库服务器,一主二从,即一台充当master,一台充当备用master,另外一台充当从库。
    在这里插入图片描述
    在这里插入图片描述
    特点如下:
  • 多主多从
  • 可以进行故障的自动检测和转移。
  • 具备自动数据补偿能力,在主库异常崩溃时能够最大程度的保证数据的一致性。
  • 需要在各个节点间打通ssh信任。
  • 高可用依赖于vip的方案,譬如采用keepalive来达到vip的切换,但是keepalive会限制切换的主机必须在一个网段,对于跨机房不在一个网段的服务器来说,就无法支持了。
  • 在大规模为每个MySQL集群安排一个vip也是难以实现的。keepalive在一个网段内,部署多套也会互相影响。
  • MHA架构实现读写分离,最佳实践是在应用开发设计时提前规划读写分离事宜,在使用时设置两个连接池,即读连接池与写连接池,也可以选择折中方案即引入SQL Proxy。但无论如何都需要改动代码;
  • 关于读负载均衡可以使用F5、LVS、HAPROXY或者SQL Proxy等工具,只要能实现负载均衡、故障检查及备升级为主后的读写剥离功能即可。

9.Lvs+Keepalived+ MySQL

MySQL 主主复制是集群的基础,每个节点都是 Master,均可对外提供服务。
Lvs服务器提供了负载均衡的作用,将用户请求分发到Real Server,一台 Real Server故障并不会影响整个集群的。Keepalived搭建主备Lvs服务器,避免了Lvs服务器的单点故障,出现故障时可以自动切换到正常的节点。
在这里插入图片描述
在这里插入图片描述
LVS在企业应用中抗负载能力很强,但存在不足,LVS不支持正则处理,不能实现动静分离;对于大型网站,LVS的实施配置复杂,维护成本相对较高;

10.HaProxy+Keepalived+ MySQL

Haproxy是一款可提供高可用性、负载均衡、及基于TCP和HTTP应用的代理的软件,适用于负载大的Web站点;运行在硬件上可支持数以万计的并发连接的连接请求;
在这里插入图片描述
在这里插入图片描述

haproxy+keepalived优点:

  • 可靠性和稳定性非常好,可以和硬件级的负载均衡设备F5相媲美。
  • 最高可同时维护40000-50000个并发连接,单位时间内处理的最大请求数为20000个。
  • 支持8种负载均衡算法,支持回话保持;支持虚拟主机功能;支持连接拒绝,全透明代理并且有一个功能强大的服务器状态监控界面。
  • 拥有功能强大的ACL支持。
  • 用haproxy构建群集的时候,比如后方代理两个http,如果haproxy宕机,后方的http正常运行网站也是瘫痪状态,这就造成了单点故障。
  • 这时keepalived就登场了,keepalived基于vrrp协议,两台主机之间生成一个虚拟的ip,我们称漂移ip,漂移ip由主服务器承担,一但主服务器宕机,备份服务器就会抢占漂移ip,继续工作,有效的解决了群集中的单点故障。两者相结合,可靠稳定。

11.Galera Cluster

  • Galera Cluster是集成了Galera插件的 MySQL 集群,是一种新型的,数据不共享的,高度冗余的高可用方案。Galera 本身具有多主特性,所以 Galera Cluster 也就是 Multi-Master 的 集群结构。
  • 基于Galera的高可用方案主要有MariaDB Galera Cluster, Mysql Galera Cluster 和 Percona XtraDB Cluster(简称PXC),目前PXC用的会比较多一些。
    在这里插入图片描述
  • 图中有三个实例,组成了一个集群,而这三个节点与普通主从架构不同,都可作为主节点,三个节点对等,这种一般称为 Multi-Master 架构,当有客户端要写入或读取数据时,随便连接哪个实例都一样,读到的数据相同,写入某一节点后,集群自己会将新数据同步到其他节点上,这种架构不共享任何数据,是一种高冗余架构。
    在这里插入图片描述
    PXC优点:
  • 服务高可用。
  • 数据同步复制(并发复制),几乎无延迟。
  • 多个可同时读写节点,可实现写扩展,不过最好事先进行分库分表,让各个节点分别写不同的表或者库,避免让galera解决数据冲突。
  • 新节点可以自动部署,部署操作简单。
  • 数据严格一致性,尤其适合电商类应用。
  • 完全兼容MySQL。

PXC缺点:

  • 只支持InnoDB引擎。
  • 所有表都要有主键。
  • 不支持LOCK TABLE等显式锁操作。
  • 加入新节点,开销大。需要复制完整的数据。
  • 所有的写操作都将发生在所有节点上。
  • 有多少个节点就有多少重复的数据。
  • 不支持XA分布式事务协议。

12.如何选择对的集群方案?

在选择适合的MySQL集群方案时,需要考虑多个因素,包括可用性要求、性能需求、数据一致性要求、部署复杂度、维护成本等。每个方案都有其适用的场景和特点,下面对每种方案进行简要描述:

  • MySQL Replication:这是最常见的 MySQL 高可用性和负载均衡解决方案。它允许一个主数据库服务器处理写操作,而一个或多个从数据库服务器可以处理读操作。这种方案适用于读操作比写操作多的应用。
  • MySQL Fabric:这是一个官方的、集成的框架,用于管理冗余和分片。它可以动态管理主从复制,并为应用程序提供了一个智能代理来路由查询。适用于需要动态扩展和高可用性的企业级应用。
  • MySQL NDB Cluster:这是一个高性能,分布式,高可用性的 MySQL 存储引擎。它特别适用于需要实时响应和 99.999% 可用性的任务关键应用。
  • MGR (MySQL Group Replication):这是一个插件,提供了一种无主(multi-master)复制方案,可以实现高可用性和可扩展性。适用于需要高可用性和写入负载均衡的应用。
  • Heartbeat + SAN:这是一个基于共享存储的高可用性解决方案。适用于需要极高数据一致性的环境,但可能需要更复杂的设备和管理。
  • Heartbeat + DRBD:这是一个基于网络的冗余存储解决方案。适用于需要极高数据一致性的环境,并且可以在更广泛的网络环境中工作。
  • MMM (Multi-Master Replication Manager for MySQL):这是一个用于管理多主复制和故障转移的工具。适用于需要多主复制和高可用性的环境,但可能需要更多的管理和监控。
  • MHA (Master High Availability Manager and tools for MySQL):这是一个用于自动故障转移和主服务器切换的工具。适用于需要高可用性和自动故障恢复的环境。
  • Lvs+Keepalived + MySQL:这是一个结合了负载均衡和高可用性的解决方案。适用于需要高可用性和负载均衡的环境。
  • HaProxy+Keepalived + MySQL:这是一个结合了代理、负载均衡和高可用性的解决方案。适用于需要高可用性、负载均衡和灵活的查询路由的环境。
  • Galera Cluster:这是一个同步多主复制的解决方案,它提供了真正的多主复制,自动节点成员管理,故障恢复和高性能。适用于需要高可用性、多主复制和高性能的环境。

在选择适合的方案时,需要综合考虑业务需求和环境特点,例如对于高可用性的要求、数据一致性的需求、部署复杂度、性能需求以及团队的熟悉程度等。建议进行实际的测试和评估,根据具体场景选择最适合的方案。同时,也可以考虑咨询专业的数据库管理员或咨询公司以获取更详细的建议和帮助。

  • 12
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
mysql 总结........................................................................................................................................6 1.1 数据库的种类...........................................................................................................6 1.1.1 关系型数据库介绍.................................................................................................6 1.1.2 非关系型数据库介绍.............................................................................................7 1.1.3 非关系型数据库种类.............................................................................................7 1.1.4 关系型数据库产品介绍.........................................................................................8 1.1.5 常用非关系型数据库产品介绍.............................................................................8 1.2 mysql 多实例安装实战......................................................................................................9 1.2.1 什么是 mysql 多实例? .........................................................................................9 1.2.2 mysql 的多实例结构图.........................................................................................10 1.2.3 实战安装 mysql 多实例需要的依赖包...............................................................10 1.2.4 安装编译 mysql 需要的软件...............................................................................10 1.2.5 安装 mysql 软件...................................................................................................11 1.2.6 创建存放两个 mysql 实例的数据目录...............................................................11 1.2.7 创建两个 mysql 多实例的配置文件...................................................................12 1.2.7.1 3306 的实例................................................................................................12 1.2.7.2 3307 的实例................................................................................................16 1.2.7.3 多实例本地登录 mysql .............................................................................20 1.2.7.4 远程连接登录 mysql 多实例....................................................................20 1.3 mysql 基础安全................................................................................................................21 1.3.1 启动程序设置 700,属主和用户组为 mysql .....................................................21 1.3.2 为 mysq 超级用户 root 设置密码........................................................................21 1.3.3 登录时尽量不要在命令行暴漏密码,备份脚本中如果有密码,给设置 700, 属主和用户组为 mysql 或 root......................................................................................21 1.3.4 删除默认存在的 test 库 .......................................................................................21 1.3.5 初始删除无用的用户,只保留 root 127.0.0.1 和 root localhost........................21 1.3.6 授权用户对应的主机不要用%,权限不要给 all,最小化授权,从库只给 select 权限.................................................................................................................................21 1.3.7 不要给一个用户管所有的库,尽量专库专用户...............................................21 1.3.8 清理 mysql 操作日志文件~/mysql_history.........................................................21 1.3.9 禁止开发获取到 web 连接的密码,禁止开发连接操作生产对外的库...........21 1.4.0 服务器禁止设置外网 IP ......................................................................................21 1.4.1 防 SQL 注入(WEB), php.ini 配置文件里面设置 ..........................................21 1.4.2 mysql 的备份的脚本给 700 的权限,并且属主和属组为 root..........................21 1.4 关于 mysql 的启动与关闭..............................................................................................21 1.4.1 单实例 MySQL 启动与关闭方法........................................................................21 1.4.2 多实例 MySQL 启动与关闭方法示例................................................................21 1.5 生产环境关闭 mysql 的命令..........................................................................................22 1.5.1 生产环境不能用强制命令关闭 mysql 服务 .......................................................22 1.5.2 下面来介绍优雅关闭数据库方法: ...................................................................22 1.6 登录 mysql 方法..............................................................................................................22 1.6.1 单实例 MySQL 登录的方法................................................................................22 1.6.2 多实例 MySQL 的登录方法................................................................................22 1.7 关于 mysql 管理员设置..................................................................................................22资源由 www.eimhe.com 美河学习在线收集分享 1.7.1 为管理员 root 用户设置密码并修改方法之一...................................................22 1.7.2 修改管理员 root 密码法二(sql 语句修改) .....................................................22 1.7.3 找回丢失的 mysql root 用户密码(单实例和多实例) ....................................23 1.8 SQL 结构化查询语言......................................................................................................23 1.8.1 什么是 SQL? ......................................................................................................23 1.8.2 SQL 语句最常见的分类一般就是 3 类 ...............................................................24 1.9 数据库的管理应用..........................................................................................................24 1.9.1 创建数据库...........................................................................................................24 1.9.2 查看库的字符集及校队规则...............................................................................24 1.9.3 企业场景创建什么字符集的数据库呢? ...........................................................26 1.9.4 显示数据库...........................................................................................................26 1.9.5 删除数据库...........................................................................................................26 1.9.6 进入数据库中指定的库.......................................................................................27 1.9.7 查看进入当前数据库的用户...............................................................................27 1.9.8 删除数据库多余的账号.......................................................................................27 1.9.9 查看数据库的用户...............................................................................................27 2.0.0 创建 MySQL 用户及赋予用户权限............................................................................27 2.0.1 使用语法:..............................................................................................................27 2.0.2 第一种创建用户及授权方法: ...........................................................................28 2.0.3 第二种创建用户及授权方法: ...........................................................................28 2.0.4 创建用户及授权哪个网段的主机可以连接 oldboy_gbk 库..............................29 2.0.4.1 第一种方法: .............................................................................................29 2.0.4.2 第二种方法: ............................................................................................29 2.0.5 关于 mysql 回收某个用户权限...........................................................................29 2.0.6 企业生产环境如何授权用户权限(mysql 主库) ............................................30 2.1 数据库表操作..................................................................................................................31 2.1.1 以默认字符集 latin1 建库....................................................................................31 2.1.2 建立表并查看表的结构.......................................................................................31 2.1.3 mysql 表的字符类型.............................................................................................32 2.1.3.1 数字类型.....................................................................................................32 2.1.3.2 日期和时间类型.........................................................................................32 2.1.3.3 字符串类型................................................................................................33 2.1.3.4 关于字符类型小结....................................................................................33 2.1.4 为表的字段创建索引...........................................................................................33 2.1.4.1 为表创建主键索引的方法........................................................................33 2.1.4.2 查看 student 表的结构 ..............................................................................34 2.1.4.3 怎么删除一个表的主键............................................................................34 2.1.4.4 利用 alter 命令修改 id 列为自增主键列..................................................34 2.1.4.5 建表后利用 alter 增加普通索引...............................................................34 2.1.4.6 对表字段的前 n 个字符创建普通索引....................................................36 2.1.4.7 为表的多个字段创建联合索引................................................................38 2.1.4.8 为表的多个字段的前 n 个字符创建联合索引........................................38 2.1.4.9 主键也可以联合多列做索引....................................................................39 2.1.5.0 统计一个字段列的唯一值个数................................................................40资源由 www.eimhe.com 美河学习在线收集分享 2.1.5.1 创建唯一索引(非主键) ........................................................................41 2.1.5.2 索引列的创建及生效条件........................................................................42 2.1.5 往表中插入数据...................................................................................................42 2.1.6 往表中删除一条数据...........................................................................................44 2.1.7 查询数据................................................................................................................44 2.1.7.1 查询表的所有数据行................................................................................44 2.1.7.2 查看 mysql 库的用户................................................................................45 2.1.7.3 根据指定条件查询表的部分数据............................................................45 2.1.7.4 根据固定条件查数据................................................................................46 2.1.7.5 指定固定条件范围查数据........................................................................46 2.1.7.6 根据顺序查看列数据................................................................................46 2.1.6.7 在表中根据条件导出数据至文件中........................................................47 2.1.8 多表查询...............................................................................................................47 2.1.8.1 创建学生表................................................................................................47 2.1.8.2 在学生表里插入数据.................................................................................47 2.1.8.3 创建课程表................................................................................................47 2.1.8.4 在课程表里插入数据................................................................................48 2.1.8.5 创建选课表................................................................................................48 2.1.8.6 联表查询命令............................................................................................49 2.1.9 使用 explain 查看 select 语句的执行计划..........................................................49 2.1.9.1 用查询语句查看是否使用索引情况........................................................49 2.1.9.2 为该列创建索引,再用查询语句查看是否走了索引............................50 2.2.0 使用 explain 优化 SQL 语句(select 语句)的基本流程..................................50 2.2.1 用命令抓取慢 SQL 语句,然后用 explain 命令查看查询语句是否走的索 引查询.....................................................................................................................50 2.2.2 设置配置参数记录慢查询语句...................................................................51 2.2.3 对抓取到的慢查询语句用 explain 命令检查索引执行情况 .....................51 2.2.4 对需要建索引的条件列建立索引...............................................................51 2.2.5 切割慢查询日志,去重分析后发给大家...................................................51 2.2.1 修改表中数据.......................................................................................................51 2.2.1.1 修改表中指定条件固定列的数据............................................................51 2.2.2 删除表中的数据...................................................................................................52 2.2.2.1 实践删除表中的数据................................................................................52 2.2.2.2 通过 update 伪删除数据...........................................................................53 2.2.3 增删改表的字段...................................................................................................53 2.2.3.1 命令语法及默认添加演示........................................................................53 2.2.4 更改表名...............................................................................................................55 2.2.5 删除表名...............................................................................................................56 2.2.6 mysql 数据库的备份与恢复.................................................................................56 2.2.6.1 备份单个数据库练习多种参数使用........................................................56 2.2.6.2 查看数据库 oldboy 的内容.......................................................................56 2.2.6.3 执行备份的命令........................................................................................57 2.2.6.4 查看备份的结果........................................................................................57 2.2.6.5 mysqldump 备份时加上-B 参数时的备份,然后比较不加-B 备份的不同资源由 www.eimhe.com 美河学习在线收集分享 .................................................................................................................................57 2.2.6.6 删除数据库中备份过的库 oldboy,然后将备份的数据重新导入数据库 .................................................................................................................................58 2.2.6.7 利用 mysqldump 命令对指定的库进行压缩备份...................................59 2.2.6.8 利用 mysqldump 命令备份多个库(-B 参数后可以指定多个库) ......59 2.2.6.9 分库备份(对 mysql、 oldboy、 oldboy_gbk、 wordpress 库进行备份) .................................................................................................................................60 2.2.7.0 对一个库的多个表备份............................................................................60 2.2.7.1 备份多个表................................................................................................61 2.2.7.2 备份单个表................................................................................................61 2.2.7.3 关于 mysqldump 的参数说明...................................................................61 2.2.7.4 刷新 binglog 的参数..................................................................................62 2.2.7.5 生产场景不同引擎 mysqldump 备份命令...............................................62 2.2.8 恢复数据库实践...................................................................................................63 2.2.8.1 数据库恢复事项........................................................................................63 2.2.8.2 利用 source 命令恢复数据库 ...................................................................63 2.2.8.3 利用 mysql 命令恢复(标准) ................................................................64 2.2.8.4 针对压缩的备份数据恢复........................................................................66 2.2.9 实现和 mysql 非交互式对话...............................................................................66 2.2.9.1 利用 mysql –e 参数查看 mysql 数据库的库名........................................66 2.2.9.2 利用 mysql –e 参数查看 mysql 数据库的线程状态................................66 2.2.9.3 mysql sleep 线程过多的问题案例............................................................66 2.2.9.4 查看 mysql 配置文件有没有在数据库中生效 ........................................67 2.2.9.5 不重启数据库修改数据库参数................................................................68 2.2.9.6 不重启数据库更改数据库参数小结........................................................69 2.3.0 查看 mysql 状态的信息(利用 zabbix 可以监控其状态信息) .......................69 2.3.1 mysqladmin 的命令...............................................................................................75 2.3.2 mysql 工具 mysqlbinlog........................................................................................76 2.3.2.1 mysql 的 binlog 日志是什么? ..................................................................76 2.3.2.2 mysql 的 binlog 日志作用是什么? ..........................................................76 2.3.2.3 mysqlbinlog 工具解析 binlog 日志实践....................................................76 2.3.2.4 解析指定库的 binlog 日志........................................................................76 2.3.3 mysql 数据库的服务日志.....................................................................................77 2.3.3.1 错误日志(error log)介绍与调整..........................................................77 2.3.3.2 普通查询日志(general query log)介绍与调整(生产环境中不用) 77 2.3.3.3 慢查询日志介绍与调整............................................................................78 2.3.3.4 二进制日志介绍与调整............................................................................78 2.3.4 mysql 的 binlog 有三种模式.................................................................................78 2.3.4.1 row level......................................................................................................78 2.3.4.2 statement level(默认) ..................................................................................79 2.3.4.3 Mixed ..........................................................................................................79 2.3.5 企业场景如何选择 binlog 的模式.......................................................................79 2.3.6 设置 mysql binlog 的格式....................................................................................79 2.3.7 mysql 生产备份实战应用指南.............................................................................80资源由 www.eimhe.com 美河学习在线收集分享 2.3.7.1 全量备份....................................................................................................80 2.3.7.2 增量备份....................................................................................................80 2.3.7.3 企业场景和增量的频率是怎么做的? ....................................................81 2.3.7.4 mysql 增量恢复必备条件..........................................................................81 2.3.7.5 实战模拟凌晨 00 点对 oldboy库做个全备,早上 10 点左右删除了 oldboy 库,下面是其恢复过程.........................................................................................81 2.3.7.6 实战模拟凌晨 00 点对 oldboy库做个全备,早上 10 点左右更新了 oldboy 库的 test 表中所有字段数据,下面是其恢复过程(update 表中的数据的时候, 把表中的字段换成了一个相同的内容,这时候要停库) .................................83 2.3.8 mysql 的主从复制的结构图.................................................................................85 2.3.8.1 单向的主从复制图,此架构只能在 master 端进行数据写入(生产环境 可以使用) .............................................................................................................85 2.3.8.2 双向的主主同步逻辑图,此架构可以在 master1 端或 master2 端进行数 据写入(生产环境不建议使用) .........................................................................85 2.3.8.3 线性级联单向双主同步逻辑图,此架构只能在 master1 端进行数据写入 (生产环境可以使用) .........................................................................................86 2.3.8.4 环状级联单向多主同步逻辑图,任意一个都可以写入数据(生产环境 不建议使用) .........................................................................................................86 2.3.8.5 环状级联单向多主多从同步逻辑图,此架构只能在任意一个 master 端 进行数据写入(生产环境不建议使用) .............................................................86 2.3.9 mysql 主从复制的原理.........................................................................................86 2.4.0 mysql 主从复制的原理图.....................................................................................87 2.4.1 mysql 主从复制的实践.........................................................................................87 2.4.1.1 环境准备....................................................................................................87 2.4.1.2 分别查看 3306 和 3307 不同数据库有哪些库........................................87 2.4.1.3 全量备份 3306 数据库的库,然后到 3307 数据库中............................88 2.4.1.4 在 3306 数据库上授权用户可以到 3306 数据库上复制 binlog.............89 2.4.1.5 在 3307 数据库上开启复制 3306 的 binlog 开关,并查看是否处于同步 状态.........................................................................................................................89 2.4.1.6 在 3306 上创建数据库 zhangxuan,看 3307 上是否同步过来..............91 2.4.2 关于主从复制出现故障怎么解决.......................................................................92 2.4.3 主从复制延迟问题原因及解决方案...................................................................92 2.4.3.1 一个主库的从库太多,导致复制延迟....................................................92 2.4.3.2 从库硬件比主库差,导致复制延迟........................................................92 2.4.3.3 慢 SQL 语句过多 ......................................................................................92 2.4.3.4 主从复制的设计问题................................................................................93 2.4.3.5 主从库之间的网络延迟............................................................................93 2.4.3.6 主库读写压力大,导致复制延迟............................................................93 2.4.4 通过 read-only 参数让从库只读访问..................................................................93 2.4.5 web 用户专业设置方案: mysql 主从复制读写分离集群..................................93 2.4.6 让 mysql 从库记录 binlog 日志方法...................................................................94 2.4.7 mysql 主从复制集群架构的数据备份策略.........................................................94 2.4.8 mysql 一主多从,主库宕机,从库怎么接管.....................................................95 2.4.8.1 半同步从库(谷歌半同步插件 5.5 版本自带) .....................................95资源由 www.eimhe.com 美河学习在线收集分享 2.4.8.2 S1,啥也不干只做同步的从库, 500 台服务器,百度..........................95 2.4.8.3 皇帝驾崩现选(耽误事,容易被篡位) ................................................95 2.4.9 事务介绍...............................................................................................................97 2.4.9.1 事务的四大特性(ACID) ......................................................................97 2.4.9.2 事务的开启................................................................................................97 2.4.9.3 事物的实现................................................................................................98 2.5.0 mysql 引擎概述.....................................................................................................98 2.5.0.1 什么是存储引擎? ....................................................................................98 2.5.0.2 mysql 存储引擎的架构..............................................................................99 2.5.0.3 myisaw 引擎介绍 .......................................................................................99 2.5.0.4 myisaw 引擎特点 .......................................................................................99 2.5.1 myisaw 引擎调忧精要 ........................................................................................100 2.5.2 innodb 引擎..........................................................................................................100 2.5.2.1 什么是 innodb 引擎? .............................................................................100 2.5.2.2 innodb 引擎特点.......................................................................................101 2.5.2.3 innodb 引擎适应的生产业务场景...........................................................102 2.5.2.4 关于 innodb 引擎的一些参数设置.........................................................102 2.5.2.5 innodb 引擎调忧精要...............................................................................102 2.5.3 有关 mysql 引擎特别说明.................................................................................103 2.5.4 关于 mysql 的字符集.........................................................................................103 2.5.4.1 mysql 常见的字符集? ............................................................................103 2.5.4.2 mysql 如何选择合适的字符集? ............................................................103 2.5.4.3 如何查看字符集......................................................................................103 2.5.4.4 不同字符集参数的含义如下(要想数据库字符不乱码,下面几个字符 集要相同) ...........................................................................................................104 2.5.4.5 set names 字符集名,此命令有什么作用 .............................................105 2.5.4.6 根据配置文件更改客户端字符集..........................................................105 2.5.4.7 更改 mysql 服务端的字符集..................................................................106 2.5.4.8 怎么解决乱码问题..................................................................................106 2.5.4.9 插入数据不乱码的方法..........................................................................106 2.5.5.0 更改数据库的字符集..............................................................................106 2.5.5.1 更改表的字符集......................................................................................106 2.5.6 模拟将 latin1 字符集的数据库修改成 UTF8 字符集的实际过程 ..................107
├─新版MySQL DBA 课件ppt │ 第一课数据库介绍篇.pdf │ 第七课MySQL数据库设计.pdf │ 第三十一课percona-toolkits 的实战及自动化.pdf │ 第三课MySQL授权认证.pdf │ 第九课MySQL字符集.pdf │ 第二十一课MySQL常见错误-converted.pdf │ 第二十课MySQL索引和调优.pdf │ 第二课MySQL入门介绍.pdf │ 第五课MySQL常用函数介绍.pdf │ 第八课InnoDB内核.pdf │ 第六课SQL高级应用.pdf │ 第十一课MySQL表分区8.0.pdf │ 第十七课Elasticsearch分享-张亚V4.pdf │ 第十三课MySQL5.7高可用架构之Mycat.pdf │ 第十三课MySQL8.0高可用架构之Mycat.pdf │ 第十九课MySQL备份和恢复.pdf │ 第十二课MySQL5.7复制.pdf │ 第十二课MySQL8.0复制.pdf │ 第十五课MySQL8.0高可用架构之MHA和MMM.pdf │ 第十五课MySQL高可用架构之MHA和MMM.pdf │ 第十八课mongo分享-张亚V1.pdf │ 第十六课Redis分享-张亚V2.pdf │ 第十四课MySQL8.0高可用架构之Atlas.pdf │ 第十课MySQL8.0锁机制和事务.pdf │ 第十课MySQL锁机制和事务.pdf │ 第四课SQL基础语法.pdf │ ├─新版MySQL DBA综合实战班 第01天 │ 0_MySQL高级DBA公开课视频.avi │ 1_数据库通用知识介绍.avi │ 2_MySQL8常规安装.avi │ 3_MySQL8非常规安装.avi │ 4_MySQL8常见客户端和启动相关参数.avi │ ├─新版MySQL DBA综合实战班 第02天 │ 10_MySQL Update课堂练习.mp4 │ 1_课后作业讲解.mp4 │ 2_MySQL权限系统介绍.mp4 │ 3_MySQL授权用户和权限回收.mp4 │ 4_MySQL8新的密码认证方式和客户端链接.mp4 │ 5_MySQL Create命令.mp4 │ 6_MySQL CreateTable命令.mp4 │ 7_课堂练习1.mp4 │ 8_MySQL Insert命令.mp4 │ 9_MySQL Insert课堂练习和Update命令.mp4 │ ├─新版MySQL DBA综合实战班 第03天 │ 1_课堂作业讲解.mp4 │ 2_MySQL Delete语法讲解.mp4 │ 3_MySQL Select语法讲解.mp4 │ 4_MySQL Select多表连接讲解.mp4 │ 5_MySQL其他常用命令讲解.mp4 │ 6_MySQL操作符和常用函数.mp4 │ 7_MySQL常用字符串和日期函数.mp4 │ delete.txt │ MySQL高级DBA大作业1.docx │ 作业.docx │ ├─新版MySQL DBA综合实战班 第04天 │ 1_课后作业讲解.mp4 │ 2_SQL课堂强化练习1.mp4 │ 3_SQL课堂强化练习2.mp4 │ 4_存储过程函数概念和创建讲解.mp4 │ 5_存储过程函数流程控制语句讲解.mp4 │ ├─新版MySQL DBA综合实战班 第05天 │ 1_课后作业讲解.mp4 │ 2_MySQL游标讲解.mp4 │ 3_MySQL触发器.mp4 │ 4_MySQL触发器课堂强化练习.mp4 │ 5_MySQL数字和时间类型.mp4 │ 6_MySQL字符串类型.mp4 │ 7_MySQL存储引擎.mp4 │ 8_MySQL第三范式设计讲解.mp4 │ 9_MySQL数据库设计工具.mp4 │ ├─新版MySQL DBA综合实战班 第06天 │ 1_课堂作业讲解.mp4 │ 2_InnoDB内核之事务和多版本控制.mp4 │ 3_InnoDB底层文件存储和体系结构.mp4 │ 4_InnoDB体系结构.mp4 │ 5_InnoDB存储引擎配置.mp4 │ 6_InnoDB统计资料和其他配置.mp4 │ 7_InnoDB锁原理和锁等待问题定位.mp4 │ ├─新版MySQL DBA综合实战班 第07天 │ 1_课后作业讲解.mp4 │ 2_MySQL锁机制原理讲解.mp4 │ 3_MySQL锁相关参数设置.mp4 │ 4_InnoDB事务隔离级别详解.mp4 │ 5_InnoDB死锁发生原理和规避.mp4 │ 6_MySQL字符集和排序规则.mp4 │ 作业.docx │ 锁等待分析.txt │ ├─新版MySQL DBA综合实战班 第08天 │ 1_课堂作业讲解.mp4 │ 2_MySQL乱码原理讲解.mp4 │ 3_MySQL排序规则权重.mp4 │ 4_MySQL字符集空间消耗.mp4 │ 5_MySQL表分区介绍和优势.mp4 │ 6_MySQL表分区类型.mp4 │ 7_MySQL字表分区和NULL值特殊处理.mp4 │ 8_MySQL表分区管理.mp4 │ 作业.docx │ 作业及答案.docx │ ├─新版MySQL DBA综合实战班 第09天 │ 1_课堂作业讲解.mp4 │ 2_MySQL复制原理.mp4 │ 3_MySQL传统复制原理和搭建.mp4 │ 4_MySQL复制搭建part2.mp4 │ 5_MySQL复制相关参数.mp4 │ 6_MySQL复制状态和延迟复制.mp4 │ 7_MySQL半同步复制.mp4 │ 作业.docx │ ├─新版MySQL DBA综合实战班 第10天 │ │ 1_课后作业讲解.mp4 │ │ 2_MySQL传统复制手动切换和GTID复制原理及切换.mp4 │ │ 3_Mycat原理和schema配置讲解.mp4 │ │ 4_Mycat schema配置讲解.mp4 │ │ 5_Mycat企业高可用配置.mp4 │ │ 作业.docx │ │ │ └─MySQL DBA 课堂命令-复制和Mycat │ mysql-master.log │ mysql-master2.log │ mysql-mycat.log │ mysql-slave1.log │ mysql-slave2.log │ ├─新版MySQL DBA综合实战班 第11天 │ │ 1_课后作业讲解.mp4 │ │ 2_MyCat分库分表原理和常见方法.mp4 │ │ 3_MyCat管理操作.mp4 │ │ 4_Atlas配置和读写分离实现.mp4 │ │ 5_Atlas分库分表实现.mp4 │ │ 6_MHA搭建和故障切换原理剖析.mp4 │ │ │ └─MySQL DBA_课堂命令-Mycat和Atlas和MHA │ mysql-master.log │ mysql-mycat.log │ mysql-slave1.log │ mysql-slave2.log │ ├─新版MySQL DBA综合实战班 第12天 │ 01ES介绍.docx │ 01es介绍.mp4 │ 01redis介绍.mp4 │ 02es增删改查操作命令.mp4 │ 02ES的功能适用场景以及特点介绍.docx │ 02redis应用场景.mp4 │ 03ES的核心概念.docx │ 03redis单实例安装.mp4 │ 03集群分片副本操作.mp4 │ 04es集群运维.mp4 │ 04redis数据类型操作.mp4 │ 04安装search-guard.docx │ 05redis主从和哨兵操作.mp4 │ 06reids集群创建收缩扩容.mp4 │ 07redis运维工具.mp4 │ Elasticsearch分享V2.pdf │ Elasticsearch分享V4.pdf │ ES分享试验环境.docx │ ES操作.txt │ Redis分享-张亚V2.pdf │ 日志收集.txt │ 监控和分词.txt │ 防脑裂配置.txt │ ├─新版MySQL DBA综合实战班 第13天-mongo │ 01mongo介绍.mp4 │ 02mongo安装配置优化.mp4 │ 03mongo增删改查.mp4 │ 04授权认证和索引.mp4 │ 05mongo常用工具介绍.mp4 │ 06mongo副本集升级备份恢复.mp4 │ 07ELK模板收集mongo日志.mp4 │ mongodb.jpg │ Mongodb分享-贾海娇.pdf │ mongo数据库分享-张亚V1.pdf │ monogdb.conf │ ├─新版MySQL DBA综合实战班 第14天 │ │ 1_MHA手工切换和GTID支持.mp4 │ │ 2_MMM高可用架构.mp4 │ │ 3_MySQL备份概念.mp4 │ │ 4_Mysqldump备份原理.mp4 │ │ 5_Mysqldump基于表备份.mp4 │ │ 6_MySQL全量恢复和日志增量恢复.mp4 │ │ 7_xtrabackup全量和增量备份恢复.mp4 │ │ 作业及答案.docx │ │ │ └─MySQL DBA堂命令-mha和备份恢复 │ mysql-master_05-18_10-03-09.log │ mysql-master_05-18_14-02-01.log │ mysql-mycat_05-18_10-03-02.log │ mysql-slave1_05-18_10-03-14.log │ mysql-slave2_05-18_10-03-20.log │ ├─新版MySQL DBA综合实战班 第15天 │ │ 1_课后作业讲解.mp4 │ │ 2_MySQL索引原理介绍.mp4 │ │ 3_MySQL索引类型介绍.mp4 │ │ 4_MySQL索引底层结构和执行计划.mp4 │ │ 5_MySQL索引优化原则.mp4 │ │ 6_MySQL运维常见错误part1.mp4 │ │ 7_MySQL运维常见错误part2.mp4 │ │ ERROR1040_1917970.1.pdf │ │ ERROR1062_1593526.1.pdf │ │ ERROR1205_1911871.1.pdf │ │ ERROR2002_1023190.1.pdf │ │ How_to_Reset_the_RootPassword.pdf │ │ How_to_Reset_the_RootPassword5.7.pdf │ │ PacketTooLarge.pdf │ │ │ └─MySQL DBA课堂命令-索引调优和运维常见错误 │ mysql-master-05-25_11-10-39.log
要安装和配置MySQL集群,可以按照以下步骤进行操作: 1. 下载MySQL集群软件:访问MySQL官方网站,下载适合您操作系统的MySQL集群软件。 2. 安装MySQL集群:按照下载的软件包中的安装向导进行安装。在安装过程中,您需要选择要安装的组件和相关配置选项。 3. 配置集群节点:在MySQL集群中,通常有两种类型的节点:管理节点和数据节点。管理节点用于管理整个集群,数据节点用于存储和处理数据。 - 配置管理节点:编辑管理节点的配置文件(my.cnf),指定管理节点的IP地址、端口号、日志文件位置等信息。 - 配置数据节点:编辑数据节点的配置文件(my.cnf),指定数据节点的IP地址、端口号、日志文件位置等信息。 4. 启动管理节点:启动管理节点服务,并确保其正常运行。您可以使用命令行工具或者图形界面工具来启动管理节点。 5. 启动数据节点:启动数据节点服务,并确保其正常运行。同样,您可以使用命令行工具或者图形界面工具来启动数据节点。 6. 创建集群:使用管理节点工具,在管理节点上创建一个新的MySQL集群。您需要指定集群名称、管理节点和数据节点的IP地址、端口号等信息。 7. 配置集群参数:根据您的需求,对集群参数进行配置。您可以通过修改配置文件或者使用命令行工具来完成。 8. 进行故障转移测试:模拟故障情况,测试集群的故障转移能力。例如,断开一个数据节点,观察是否能够自动切换到其他可用节点。 以上是一个基本的MySQL集群安装和配置过程的概述,具体步骤可能会因版本和操作系统而有所不同。在进行安装和配置前,请确保您已经详细阅读了官方文档,并且了解您正在使用的MySQL集群版本的特定要求和建议。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TA548464

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值