MySQL MGR高可用集群布署

MySQL复制(六):组复制部署(Group Replication Deployment) 部署组复制时,建议将各个成员分布在不同的物理服务器上以达到容错的功能。但由于组复制成员的状态需要时刻保持同步,组内各成员需要时刻保持双向通信,因此其性能受到网络的延迟和带宽影响很大,建议部署在网络稳定,延迟较低的环境中(例如同一机房)。要完成基本组复制的部署(具备容错功能),至少需要3台服务器,这里用3台服务器来演示基本部署步骤。如果是自己练习可以装1台虚拟机然后直接复制2台出来(记得修改主机名、IP和MySQL数据目录下auto.cnf文件中的MySQL服务器的UUID)。 阅读详情

配置组复制前提要求:

​
1、innodb存储引擎:数据必须存放在InnoDB事务存储引擎中。事务被乐观地执行,然后在提交时检查是否有冲突。
如果存在冲突,为了在整个组中保持一致性,将回滚一些事务。这意味着需要事务性存储引擎。此外,InnoDB还提供了一些额外的功能,可以更好地管理和处理与组复制一起操作时的冲突。使用其他存储引擎(包括临时内存存储引擎)可能导致组复制出错。通过在组成员上设置系统变量disabled_storage_engines,可以防止使用其他存储引擎,例如:disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
​
2、主键:组要复制的每个表都必须有一个已定义的主键,或者等效的主键,等效的主键是非空的唯一键。这些键需要作为表中每一行的唯一标识符,使系统能够通过准确地标识每个事务修改了哪些行来确定哪些事务发生冲突。
​
3、IPV4网络:MySQL组复制使用的组通信引擎仅支持IPv4。因此,Group Replication需要IPv4网络基础设施。
​
4、网络性能:MySQL Group Replication被设计为部署在服务器实例彼此非常接近的集群环境中。网络延迟和网络带宽都会影响组的性能和稳定性。所有组成员之间必须始终保持双向通信。如果入站或出站通信阻塞服务器实例(例如,通过防火墙,或者连接问题),该成员不能在组中工作,组成员(包括有问题的成员)可能无法为受影响的服务器实例报告正确的成员状态。
​
​

组成员实例配置要求

1、唯一的server_id
2、二进制日志
3、副本更新记录
4、二进制日志行格式
5、关闭二进制日志校验
6、开启全局事务标识符
7、复制信息存储库设置为TABLE
8、事务写集提取
9、小写表名
10、多线程类型

官方要求译文如下:

独特的服务器标识符。
根据复制拓扑中所有服务器的需要,使用server_id系统变量为服务器配置唯一的服务器ID。
当默认服务器ID为0时,复制拓扑中的服务器无法相互连接。
服务器ID必须为1 ~(232)−1的正整数,且不能与复制拓扑中其他服务器使用的其他服务器ID相同。
​
二进制日志活动。
设置——log-bin [= log_file_name]。
MySQL Group Replication复制二进制日志内容,因此需要打开二进制日志进行操作。
该选项默认启用。
参见第5.4.4节“二进制日志”。
​
副本更新记录。
设置——log-slave-updates。
服务器需要记录通过复制应用程序应用的二进制日志。
该组中的服务器需要记录它们从该组接收和应用的所有事务。
这是必需的,因为恢复是依靠组中参与者的二进制日志进行的。
因此,每个事务的副本需要存在于每个服务器上,即使那些事务不是在服务器本身上启动的。
​
二进制日志行格式。
设置——binlog-format =行。
Group Replication依赖于基于行的复制格式在组中的服务器之间一致地传播更改。
它依赖于基于行的基础设施来提取必要的信息,以检测在组中不同服务器中并发执行的事务之间的冲突。
请参见16.2.1节“复制格式”。
​
二进制日志校验关闭。
设置——binlog-checksum =没有。
由于复制事件校验和的设计限制,Group replication不能使用它们,并且必须禁用它们。
​
全局事务标识符开启。
设置gtid_mode=ON和enforce_gtid_consistency=ON。
Group Replication使用全局事务标识符精确地跟踪每个服务器实例上提交了哪些事务,从而能够推断哪些服务器执行了可能与其他地方已经提交的事务冲突的事务。
换句话说,显式事务标识符是框架的一个基本部分,它能够确定哪些事务可能发生冲突。
请参见16.1.3节,“使用全局事务标识符的复制”。
​
复制信息存储库。
设置master_info_repository=TABLE和relay_log_info_repository=TABLE。
复制应用程序需要将源和副本元数据写入mysql。
slave_master_info和mysql。
slave_relay_log_info系统表。
这确保了Group Replication插件具有一致性的可恢复性和复制元数据的事务性管理。
请参见16.2.4.2节“复制元数据存储库”。
​
事务写集提取。
Set——transaction-write-set-extraction=XXHASH64以便在收集行以将其记录到二进制日志时,服务器也收集写集。
写集基于每一行的主键,是标记的简化和紧凑视图,唯一标识更改的行。
然后,该标记用于检测冲突。
​
小写表名。
将——lower-case-table-names设置为所有组成员的相同值。
使用InnoDB存储引擎时设置为1是正确的,这是组复制需要的。
注意,这个设置不是所有平台上的默认设置。
​
多线程的类型。
Group Replication成员可以配置为多线程副本,从而允许并行应用事务。
slave_parallel_workers的非零值启用成员上的多线程应用程序,最多可以指定1024个并行应用程序线程。
如果这样做,还需要进行以下设置:
​
slave_preserve_commit_order = 1
此设置是为了确保并行事务的最终提交与原始事务的顺序相同。
Group Replication依赖于基于保证所有参与成员以相同的顺序接收和应用已提交事务的一致性机制。
​
slave_parallel_type = LOGICAL_CLOCK
当slave_preserve_commit_order=1时需要这个设置。
它指定用于决定哪些事务允许在副本上并行执行的策略。
​
设置slave_parallel_workers=0将禁用并行执行,并为副本提供一个应用程序线程而没有协调线程。
通过该设置,slave_parallel_type和slave_preserve_commit_order选项没有作用,并且会被忽略。

具体配置如下:

[mysqld]
server_id=1
log_bin=/var/lib/mysql/binlogs/master
log_bin_index=/var/lib/mysql/binlogs/master.index
log_slave_updates=1
binlog-format=row
binlog_checksum=NONE
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=table
relay_log_info_repository=table
transaction-write-set-extraction=XXHASH64
lower-case-table-names=1
slave_preserve_commit_order = 1
slave_parallel_type = LOGICAL_CLOCK

组复制配置要求

plugin_load_add='group_replication.so'
transaction_write_set_extraction=XXHASH64
group_replication_group_name="aaaaaaaa-aaaa-aaaa-aaaa-aaaaaaaaaaaa"
group_replication_start_on_boot=off
group_replication_local_address= "s1:33061"
group_replication_group_seeds= "s1:33061,s2:33061,s3:33061"
group_replication_bootstrap_group=off
  • plugin-load-add将Group Replication插件添加到服务器启动时加载的插件列表中。在生产部署中,这比手动安装插件更可取。

  • 配置group_replication_group_name告诉插件,它正在加入或创建的组名为“aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa”。

  • group_replication_group_name必须是合法的UUID。当在二进制日志中为组复制事件设置gtid时,内部使用这个UUID。您可以使用SELECT UUID()来生成UUID。

  • 将group_replication_start_on_boot变量设置为off,将指示插件在服务器启动时不自动启动操作。在设置Group Replication时,这一点很重要,因为它确保您可以在手动启动插件之前配置服务器。一旦配置了成员,您可以将group_replication_start_on_boot设置为on,以便在服务器启动时自动启动组复制。

  • 配置group_replication_local_address设置成员与组内其他成员通信时使用的网络地址和端口。组复制将此地址用于涉及组通信引擎(XCom, Paxos变体)的远程实例的内部成员到成员连接。

    *此地址必须与用于SQL的主机名和端口不同,并且不能用于客户机应用程序。在运行组复制时,它只能用于组成员之间的内部通信。

  • group_replication_local_address配置的网络地址必须是所有组成员都可以解析的。例如,如果每个服务器实例位于具有固定网络地址的不同机器上,则可以使用该机器的IP地址,例如10.0.0.1。如果使用主机名,则必须使用完全限定名,并确保它可以通过DNS、正确配置的/etc/hosts文件或其他名称解析过程解析。从MySQL 8.0.14开始,IPv6地址(或解析到它们的主机名)可以和IPv4地址一样使用。一个组可以包含使用IPv6的成员和使用IPv4的成员。有关组复制支持IPv6网络和混合IPv4和IPv6组的更多信息,请参见对IPv6和混合IPv6和IPv4组的支持。

  • group_replication_local_address的端口建议为“33061”。group_replication_local_address被“组复制”用作复制组内成员的唯一标识符。只要主机名或IP地址都不相同,就可以为复制组的所有成员使用相同的端口,如本教程所示。或者,只要端口不同,您可以为所有成员使用相同的主机名或IP地址

  • 配置group_replication_group_seeds将设置组成员的主机名和端口,新成员将使用这些主机名和端口建立到组的连接。这些成员称为种子成员。一旦建立连接,将在performance_schema.replication_group_members中列出组成员信息。通常group_replication_group_seeds列表包含每个组成员group_replication_local_address的主机名:端口,但这不是强制性的,可以选择组成员的一个子集作为seed。

    *group_replication_group_seeds中列出的主机名:端口是seed成员的内部网络地址,由group_replication_local_address配置,而不是用于客户端连接的SQL主机名:端口,如performance_schema所示。replication_group_members表。

  • 启动组的服务器不使用这个选项,因为它是初始服务器,因此它负责引导组。换句话说,引导组的服务器上的任何现有数据都将用作下一个加入成员的数据。第二个服务器加入请求组中唯一的一个成员加入,第二个服务器上丢失的数据将从引导成员上的donor数据复制,然后展开组。加入的第三个服务器可以请求这两个中的任何一个加入,数据同步到新成员,然后组再次展开。后续服务器在加入时重复此过程。

    *当同时加入多个服务器时,请确保它们指向组中已经存在的种子成员。不要使用也加入组的成员作为种子,因为在联系他们时,他们可能还不在组中。最好先启动引导成员,然后让它创建组。然后让它成为其他加入成员的种子成员。这确保在加入其他成员时形成一个小组。不支持创建分组并同时加入多个成员。它可能会起作用,但很可能会出现操作竞争,然后加入组的行为以错误或超时告终。

  • 配置group_replication_bootstrap_group会指示插件是否引导组。在本例中,即使s1是组中的第一个成员,我们也在选项文件中将该变量设置为off。相反,我们在实例运行时配置group_replication_bootstrap_group,以确保只有一个成员真正引导组。

    *group_replication_bootstrap_group变量在任何时候都必须只在属于某个组的一个服务器实例上启用,通常是在第一次启动组时(或者在整个组被关闭并重新启动的情况下)。如果您多次引导组,例如当多个服务器实例设置了此选项时,那么它们可以创建一个人工的脑分裂场景,其中存在两个具有相同名称的不同组。在第一个服务器实例上线后总是设置group_replication_bootstrap_group=off。

组中所有服务器的配置非常相似。需要修改每个服务器的具体信息(例如server_id、datadir、group_replication_local_address)。

 

搭建实操

角色IP地址Mysql版本操作系统主机名
master192.168.88.181mysql 5.7.34cenots 7.5master
slave01192.168.88.155mysql 5.7.34cenots 7.5slave01
slave02192.168.88.156mysql 5.7.34cenots 7.5slave02

配置/etc/hosts文件

192.168.88.181 master
192.168.88.155 slave01
192.168.88.156 slave02

在所有实例上操作:

*组复制使用异步复制协议实现分布式恢复,在将组成员加入到组之前同步组成员。分布式恢复过程依赖于一个名为group_replication_recovery的复制通道,该通道用于将事务从捐赠成员传输到加入组的成员。因此,您需要设置具有正确权限的复制用户,以便“组复制”可以建立直接的成员到成员的恢复复制通道。

SET SQL_LOG_BIN=0;
CREATE USER rpl_user@'%' IDENTIFIED BY 'password';
GRANT REPLICATION SLAVE ON *.* TO rpl_user@'%';
FLUSH PRIVILEGES;
SET SQL_LOG_BIN=1;
CHANGE MASTER TO MASTER_USER='rpl_user', MASTER_PASSWORD='password' FOR CHANNEL 'group_replication_recovery';

在master上进行组引导操作:

*第一次启动一个组的过程称为引导。使用group_replication_bootstrap_group系统变量引导组。引导应该只由单个服务器完成,即只启动一次组的服务器。这就是为什么group_replication_bootstrap_group选项的值没有存储在实例的选项文件中。如果它保存在选项文件中,在重新启动时,服务器自动引导具有相同名称的第二组。这将导致两个名称相同的截然不同的组。同样的道理也适用于将此选项设置为ON时,停止并重新启动插件。

SET GLOBAL group_replication_bootstrap_group=ON;
START GROUP_REPLICATION;
SET GLOBAL group_replication_bootstrap_group=OFF;

start语句执行成功后,组已经启动,可以使用

SELECT * FROM performance_schema.replication_group_members;

查看组成员信息;

 

在slave节点上执行加入组操作:

 START GROUP_REPLICATION;
 
 *如遇报错:
 This member has more executed transactions than those present in the group.
 The member contains transactions not present in the group. The member will now exit the group.
 请在所有节点上执行reset master;命令,然后重新执行组引导及加入组操作;

最终查询组成员状态如下:

MySQL [test]> SELECT * FROM performance_schema.replication_group_members;
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| CHANNEL_NAME              | MEMBER_ID                            | MEMBER_HOST | MEMBER_PORT | MEMBER_STATE |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
| group_replication_applier | 440f27cb-bb99-11eb-9961-000c291aa359 | slave01     |        3306 | ONLINE       |
| group_replication_applier | 8394db9e-bb9a-11eb-8868-000c295e43ee | master      |        3306 | ONLINE       |
| group_replication_applier | d14927b5-bb9a-11eb-bb98-000c297f17d8 | slave02     |        3306 | ONLINE       |
+---------------------------+--------------------------------------+-------------+-------------+--------------+
3 rows in set (0.00 sec)

到此,单主mgr布署完成;

可通过以下语句成员ID查看主节点信息:
SHOW STATUS LIKE 'group_replication_primary_member';

各节点my.cnf配置文件如下:

master:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
master_info_repository=table
relay_log_info_repository=table
symbolic-links=0
server_id=1
log_bin=/var/lib/mysql/binlogs/master
log_bin_index=/var/lib/mysql/binlogs/master.index
gtid_mode=on
enforce_gtid_consistency=on
binlog_checksum=NONE
log_slave_updates=1
binlog-format=row
transaction-write-set-extraction=XXHASH64
lower-case-table-names=1
slave_preserve_commit_order = 1
slave_parallel_type = LOGICAL_CLOCK
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
plugin_load_add='group_replication.so'
group_replication_group_name='249a232b-bb9e-11eb-b567-000c295e43ee'
group_replication_start_on_boot=off
group_replication_local_address= "192.168.88.181:33061"
group_replication_group_seeds="192.168.88.181:33061,192.168.88.155:33061,192.168.88.156:33061"
group_replication_bootstrap_group=off
[mysqld_safe]
log-error=/var/log/mysql/mysql.log
pid-file=/var/run/mysql/mysql.pid
!includedir /etc/my.cnf.d

slave01:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
server_id=2
log_bin=/var/lib/mysql/binlogs/slave01
log_bin_index=/var/lib/mysql/binlogs/slave01.index
log_slave_updates=1
binlog-format=row
binlog_checksum=NONE
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=table
relay_log_info_repository=table
transaction-write-set-extraction=XXHASH64
lower-case-table-names=1
slave_preserve_commit_order = 1
slave_parallel_type = LOGICAL_CLOCK
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
plugin_load_add='group_replication.so'
group_replication_group_name='249a232b-bb9e-11eb-b567-000c295e43ee'
group_replication_start_on_boot=off
group_replication_local_address= "192.168.88.155:33061"
group_replication_group_seeds="192.168.88.181:33061,192.168.88.155:33061,192.168.88.156:33061"
group_replication_bootstrap_group=off
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d

slave:02

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
symbolic-links=0
server_id=3
log_bin=/var/lib/mysql/binlogs/slave02
log_bin_index=/var/lib/mysql/binlogs/slave02.index
log_slave_updates=1
binlog-format=row
binlog_checksum=NONE
gtid_mode=on
enforce_gtid_consistency=on
master_info_repository=table
relay_log_info_repository=table
transaction-write-set-extraction=XXHASH64
lower-case-table-names=1
slave_preserve_commit_order = 1
slave_parallel_type = LOGICAL_CLOCK
disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"
plugin_load_add='group_replication.so'
group_replication_group_name='249a232b-bb9e-11eb-b567-000c295e43ee'
group_replication_start_on_boot=off
group_replication_local_address= "192.168.88.156:33061"
group_replication_group_seeds="192.168.88.181:33061,192.168.88.155:33061,192.168.88.156:33061"
group_replication_bootstrap_group=off
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid
!includedir /etc/my.cnf.d

切换为多主模式

在所有实例上执行:

 stop group_replication;
 set global group_replication_single_primary_mode=OFF;
 set global group_replication_enforce_update_everywhere_checks=ON;

在其中一个实例上执行:

SET GLOBAL group_replication_bootstrap_group=ON; 
START GROUP_REPLICATION; 
SET GLOBAL group_replication_bootstrap_group=OFF;

其他节点加入组:

START GROUP_REPLICATION; 
MySQL5.7服务器命令选项 每个都是包含插件代码的库文件的名称,每个 都是要加载的插件的名称。如果插件库的命名没有任何前面的插件名称,服务器将加载库中的所有插件。使用前面的插件名称,服务器仅从库加载指定的插件。每个都是包含插件代码的库文件的名称,每个 都是要加载的插件的名称。如果插件库的命名没有任何前面的插件名称,服务器将加载库中的所有插件。从 MySQL 5.7.17 开始,当用于给定表的存储引擎预计提供其自己的( “本机” ) 分区处理程序时,MySQL 服务器中的通用分区处理程序已被弃用,并在 MySQL 8.0 中被删除。 阅读详情

相关推荐

残差检验_第三十讲 R语言-Cox比例风险模型的假设检验条件

在介绍完 Cox比例风险模型的详细理论和R实现以后(插入链接!!!),我们已经知道Cox比例风险模型可以较好的同时矫正多个混杂因素对结果的影响,同时我们遗留下来了一个问题:Cox比例风险模型的假设检验条件是什么?这一讲,我们将对此进行解答。请注意,如果使用不当,统计模型可能会产生误导性的结论。因此,检查给定的模型是否适合数据类型是非常重要的!1. Cox比例风险模型的假设条件Cox比例风险模型的成...

weixin_35476698的博客 8048

搭建MGR多主模式

搭建MGR-3节点,多主模式 OS:CentOS7.2 DB:MySQL5.7.18 一、安装MySQL5.7.18 1、卸载冲突的版本mariadb rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps 2、安装依赖 rpm -vih mysql-community-common-5.7.18-1.el7.x86_6

dba成长之路 1万+

深入理解搜索引擎——搜索评价指标

    搜索引擎,在做好query理解、索引召回以及排序模型之后,就能直接推上线了吗?答案是否定的,还需对其性能和质量进行评测。性能无非是对时间和空间的运行效率作评测,不细讲,今天讲讲搜索引擎的质量评测。通过质量评测,可根据评测结果不断的进行改进和研究,也可以验证搜索引擎在真实环境中运行时的实际效果。因此,搜索引擎的质量评测对于整个系统的研制和发展是至关重要的。     那么有哪些指标可以评估搜索引擎的结果质量呢?最广为人知的

我是药老的博客 4485

死磕数据库系列(二十五):MySQL 高可用之组复制(MGR)详解

点关注公众号,回复“1024”获取2TB学习资源!前面给大家介绍过:MySQL 高可用方案选型解析,其中就提到了组复制(MGR),其实,组复制是一个 MySQL 服务器插件,可以创建具有弹性、高可用性和容错的复制拓扑。今天我将详细的为大家介绍 MySQL 数据库高可用技术之一的:组复制(MGR)相关知识,希望大家能够从中收获多多!如有帮助,请点在看、转发支持一波!!!MySQL 高可用的背景数据库...

民工哥的博客 1955

tecplot 通过数据点、坐标点绘制云图、三维云图

使用坐标点绘制二维云图或三维云图

medicalmask的博客 3万+

电价预测的Transformer实战:从注意力机制到超长序列建模

本文深入探讨了Transformer模型在电价预测领域的实战应用,对比了其与LSTM在处理长序列依赖和误差累积问题上的优劣。文章详细解析了自注意力机制的原理,并提供了处理超长序列的位置编码方法、构建专用预测模型的完整PyTorch代码,以及防止信息泄露的关键技巧。通过实战对比,展示了Transformer在并行计算、长距离建模和预测精度上的显著优势,并分享了应对极端波动和提升模型效率的高级优化策略。

f6g7h8i9j的博客 540

MySql服务器状态、变量和选项(持续更新)

back_log 默认值 -1 (表示自动调整大小;不分配此文字值) 默认值公式:50 + (max_connections / 5) 最大不超过900 back_log值指出在MySQL暂时停止回答新请求之前的短时间内多少个请求可以被存在堆栈中。也就是说,如果MySql的连接数达到max_connections时,新来的请求将会被存在堆栈中,以等待某一连接释放资源,该堆栈的数量即back_log,如果等待连接的数量超过back_log,将不被授予连接资源。将会报:unauthenticated

jic的博客 543

ESP32-S3开发环境避坑指南:VS Code+ESP-IDF离线安装全流程(附国内镜像加速)

本文提供了一份详细的ESP32-S3开发环境离线安装指南,重点解决网络依赖问题。通过整合国内镜像加速,手把手教你完成VS Code、ESP-IDF框架、工具链及Python依赖的本地化部署,实现稳定、可重复的开发环境搭建,大幅提升IoT开发效率。

peach的博客 962

PXC、MGR、MGC集群之新建、备份、恢复操作步骤

导读作者:沃趣-罗小波概要:原文包含PXC、MGR、MGC集群之新建、备份、恢复操作步骤详解,因篇幅较长,本文仅节取MGR部分内容。若想了解完整文章,可至文末获取对于PX...

老叶茶馆 5480

疑难问题(二)——PyTorch 2.3.0 ‘import torch‘ 错误排查:深入解析‘shm.dll‘加载失败与系统路径修复

本文深入解析了在Windows系统上安装PyTorch 2.3.0后,执行'import torch'时遇到的'shm.dll'加载失败错误(OSError)。该问题通常源于系统DLL搜索路径缺失,导致无法找到关键的共享内存通信组件或其依赖项。文章提供了核心解决方案:通过手动修改PyTorch的`__init__.py`文件,将用户基目录下的Library\bin路径添加到DLL搜索列表中,从而从根本上修复此导入错误,并给出了详细的修改步骤和验证方法。

weixin_29056865的博客 305

PyCharm 配置 Anaconda 环境时找不到 python.exe 的解决办法

通过本文的排查步骤与详细解决方案,你应该能够迅速定位并修复 PyCharm 配置 Anaconda 环境时找不到 python.exe 的问题。确保正确设置环境路径、激活目标环境以及手动指定解释器路径是解决此问题的关键。随着开发工具与包管理器的不断更新,类似的问题可能会出现新的变体。持续关注官方文档、社区讨论和版本更新,可以帮助开发者及时适应新变化,并优化工作流程。希望本文提供的分析和代码示例能为你的开发环境配置带来帮助,让你在 PyCharm 与 Anaconda 的高效协同下,专注于创新与代码实现。

s13596191285的博客 3117

MySQL 8 复制(十)—— 组复制性能与限制

组复制性能、组复制要求与限制

wzy0623的专栏 5356

LLC型自驱动半桥谐振变换器:电压电流变化与自然换向解析

变换器的工作状态经历了多个阶段,从模态一的关断状态,到模态二和三的电流供电状态,每个阶段都得到了合理的设计和优化。的工作原理,尤其是在半个周期内的电压和电流变化。上图 展示了该变换器在工作时的电压和电流波形,它为我们揭示了变换器如何通过精确的电流和电压控制,优化性能并实现高效能转换。,并根据负载情况调整电流和电压的工作模式,能够极大提升变换器的效率,尤其是在零电压开通和自然换向的设计中,发挥着关键作用。这意味着,电流会随着时间周期的变化,呈现典型的振荡波形,从而达到良好的电流控制。是两个关键的电流变量。

weixin_43199439的博客 279

浅谈MySQL集群高可用架构

点击上方“程序员小灰”,选择“置顶公众号”有趣有内涵的文章第一时间送达!本文转载自公众号  民工哥Linux运维前言高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用可能更复杂,对用户的服务可用,不仅仅是能访

程序员小灰的博客 636

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

mysql集群高可用架构

前言 高可用架构对于互联网服务基本是标配,无论是应用服务还是数据库服务都需要做到高可用。对于一个系统而言,可能包含很多模块,比如前端应用,缓存,数据库,搜索,消息队列等,每个模块都需要做到高可用,才能保证整个系统的高可用。对于数据库服务而言,高可用可能更复杂,对用户的服务可用,不仅仅是能访问,还需要有正确性保证,因此数据库的高可用方案是一直以来的讨论热点,今天就各种的高可用方案,谈一下个人的一些...

weixin_34248849的博客 121

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

【 数据库中间件之OneProxy】

OneProxy是由原支付宝首席架构师楼方鑫开发,目前由楼方鑫创立的杭州平民软件公司(@平民架构)提供技术支持。目前已有多家公司在生成环境中使用,其中包括了支付、电商等行业。   OneProxy的主要功能有: 1. 垂直分库 2. 水平分表 3. Proxy集群 4. 读高可用 5. 读写分离(master不参与读) 6. 读写分离(master参与读) 7. 写高可用 8...

373

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

某资产管理平台Oracle改造Mysql方略

改造总是要付出很多代价的,肯定会跌很多坑,这是必然的… 性能问题也总会呈现先下降后再上升的一个历程(调试、磨合、找到针对性、适应性解决方案)。 改革者犹如惊涛骇浪中的弄潮儿,风险与机遇并存,成就与磨难并行,勇者,大胆前行吧! A. SIT环境改造测试 1、 应用开发组:梳理出目前APP对Oracle生产中真实使用到的所有表、存储过程、函数、触发器、Schedule、Program、Job,整理出以上对象的清单(生产环境经年积累,随APP不断迭代,很多对象已为僵尸对象,此部分就无需再耗费人力迁移了)。 2、

weixin_54651775的博客 306

MGR要求及限制

一、要求: 1.InnoDB存储引擎 InnoDB提供了一些附加功能,可以在与组复制一起操作时更好地管理和处理冲突。 使用其他存储引擎,包括临时 MEMORY存储引擎,可能会导致组复制中的错误。 建议: disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY" 2.主键 组复制必须有主键,或者至少一列非空唯一列(等效主键),组复制具有其自己的内置的主键或主键等效项检查集,并且不使用sql_req...

jnrjian的博客 1242

Linux企业运维--Mysql的主从复制

************Mysql组复制************** 把server1、2、3 /data/mysql 下的全部删除重新编辑 server1: vim /etc/my.cnf ----修改配置文件 ------------------------------------------------------------------ disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,M...

qq_47783923的博客 1637

mariadb数据库基本使用

mariadb数据库简介 自甲骨文公司收购MySQL后,其在商业数据库与开源数据库领域市场的占有份额都跃居第一,这样的格局引起了业内很多的人士的担忧,因为商业数据库的老大有可能将MySQL闭源。为了避免Oracle将MySQL闭源,而无开源的类MySQL数据库可用,MySQL社区采用分支的方式来避开这个风险。MariaDB数据库就这样诞生了,MariaDB是一个向后兼容,可能在以后替代MySQL的数据库产品,其官方地址为:https://mariadb.org/ 。mariadb和mysql几乎是一样的。首

qq_27546717的博客 7001

1. MGR简介 | 深入浅出MGR

本文首发于GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源1. MGR简介 | 深入浅出MGR1. 为什么是MGRMGR是MySQL Group Replicat...

老叶茶馆 2635

mysql8.0使用MGR实现高可用

1. MGR简介  2. 组复制技术架构  3. 安装部署MGR集群  4. MGR管理维护  5. MGR状态监控  6. 利用MySQL Router构建读写分离MGR集群  1. 部署MySQL Router  2. 启动mysqlrouter服务  3. 确认读写分离效果  4. 确认只读负载均衡效果  7. 小结

Starry__Sky222的博客 2183

万字详解 MySQL MGR 高可用集群搭建

MGR(MySQL Group Replication)是MySQL 5.7.17版本诞生的,是MySQL自带的一个插件,可以灵活部署。保证数据一致性又可以自动切换,具备故障检测功能、支持多节点写入。集群是多个MySQL Server节点共同组成的分布式集群,每个Server都有完整的副本,它是基于ROW格式的二进制日志文件和GTID特性。在单主模式下, 组复制具有自动选主功能,每次只有一个 server成员可以作为主节点。单主模式 group 内只有一台节点可写可读,其他节点只可以读。

保持学习 9302

MySQL【高可用篇】03:MySQL8.0.25InnoDB Cluster【MGR】集群搭建部署

MySQL8.0.25InnoDB Cluster【MGR】集群搭建部署

weixin_40612128的博客 2751

手动部署Mysql MGR集群

手动部署Mysql MGR集群

步荀仙的博客 1043

mysql 主键冲突 多个事务回滚_Mysql MGR 多主模式下的限制

部署MGR的需求 基础架构innodb存储引擎数据必须存储在innodb存储引擎内我们通过设置如下参数来禁用其他存储引擎disabled_storage_engines="MyISAM,BLACKHOLE,FEDERATED,ARCHIVE,MEMORY"主键每张表都必须定义一个主键或者等价的非空的唯一键IPv4网络服务器必须支持IPv4网络网络性能MGR组中的各个服务器必须相互联通且网络性能要求...

weixin_39799825的博客 435
上一篇: python中的抽象基类及相关用途
下一篇: (集群外)jenkins连接K8S集群
~~~~~~~~~~~~~~
博客等级 码龄17年 24粉丝 42原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值