当前位置: 首页 > news >正文

安徽网站建设外贸丽水专业网站建设价格

安徽网站建设外贸,丽水专业网站建设价格,福州网站设计网址,沪上装修排名前十有哪些品牌MGR特点 #xff08;1#xff09;基于Paxos协议和原生复制#xff0c;多数节点同意即可通过事务提交#xff1b;#xff08;2#xff09;具备高可用自动故障检测#xff0c;可自动切换#xff1b;#xff08;3#xff09;可弹性扩展#xff0c;集群自动的新增和移除… MGR特点 1基于Paxos协议和原生复制多数节点同意即可通过事务提交2具备高可用自动故障检测可自动切换3可弹性扩展集群自动的新增和移除节点4有单主和多主模式5支持多节点写入具备冲突检测机制可以适应多种应用场景需求。 MGR组复制是什么 1主从复制是异步复制 master事务的提交不需要经过slave的确认slave是否接收到master的binlogmaster并不care。slave接收到master binlog后先写relay log最后异步地去执行relay log中的SQL应用到自身。由于master的提交不需要确保slave relay log是否被正确接受当slave接受master binlog失败或者relay log应用失败master无法感知。 2半同步复制 基于传统异步存在的缺陷MySQL在5.5版本推出半同步复制。可以说半同步复制是传统异步复制的改进在master事务的commit之前必须确保一个slave收到relay log并且响应给master后从库收到并产生 relaylog 后会向主库发送一个 ACK 的信息包当主库获得这个包后认为从库已经获得 relaylog才能进行事务的commit。但是slave对于relay log的应用仍然是异步进行的。 3组复制 基于传统异步复制和半同步复制的缺陷——数据的一致性问题无法保证MySQL官方在5.7.17版本正式推出组复制MySQL Group Replication简称MGR。 由若干个节点共同组成一个复制组一个事务的提交必须经过组内大多数节点N / 2 1决议并通过才能得以提交。如上图所示由3个节点组成一个复制组Consensus层为一致性协议层在事务提交过程中发生组间通讯由2个节点决议(certify)通过这个事务事务才能够最终得以提交并响应。 引入组复制主要是为了解决传统异步复制和半同步复制可能产生数据不一致的问题。组复制依靠分布式一致性协议(Paxos协议的变体)实现了分布式下数据的最终一致性提供了真正的数据高可用方案(是否真正高可用还有待商榷)。其提供的多写方案给我们实现多活方案带来了希望。 组复制脱离了传统的主从模式结构是一个具有容错功能的集群架构在组复制的架构中有多个 server成员构成并且每个成员都可以独立执行事务也就意味着多写的功能但是所有的读写事务必须在冲突校验完成后才能提交如果是只读型的事务那么会直接提交。当某个节点上发出一个读写的事务准备提交时那么这个节点就会向整个集群开始广播这次读写的变更和对应的一个校验标识符然后会针对这个事务产生一个全局的顺序号由于是有顺序号的所以集群中的每个成员都会按照顺序去执行事务的变更从而保证了数据的一致性。 如果在不同的 server 上执行了相同的操作并且产生了事务冲突那么校验机制就会做成相应的判断通常先提交的事务先执行后提交的回滚。所以从某种程度上来说组复制是一种伪同步复制模式。 组复制的模式 1单主模式 在单主模式下组有一个设置为读写模式的单主 server。组中的所有其他成员被自动设置为只读模式超级只读模式。主服务器通常是用于引导组的第一个 server所有其他加入的 server 自动从主服务器同步并设置为只读。 在单主机模式下将禁用在多主机模式下部署的某些检查因为系统会强制在组中每次只有一个写入server。例如在单主模式下允许对具有外键的表进行更改而在多主模式下不允许。在主服务器故障时自动选主机制选择下一个主服务器。通过按字典顺序使用其 UUID来排序剩余的 server 成员并选择列表中的第一个成员来作为下一个主服务器。 如果主服务器从组中移除则启动主节点选择程序然后从组中的其余 server 成员中选择新的主节点。通过查看新视图按照词典顺序将 server 的 UUID 进行排序并选择第一个作为主节点。选择了新的主节点后它将自动设置为只读其他辅助节点仍然为辅助节点因此也是只读。 2多主模式 多主模式也就是所有节点都可以写入每个节点基本都一样。 PXC和MGR的区别: a.执行提交PXC 事务需要在所有节点跑一下MGR 多数节点同意即可执行b.复制PXC 在复制上需要Gcache中缓存MGR 直接写binlogc.新增节点新增节点PXC支持mysqldump xtrabackupMGR直接集成复制克隆 d.网络中断网络中断发生时PXC具有分区的表不可读写MGR 可读不可写 e.流控MGR 写入变慢PXC所有节点不可写 f.跨平台跨平台PXC支持LinuxMGR支持所有平台 g.DDL当PXC在进行DDL时为了保证节点数据一致此时整个集群拒绝写操作注意是集群内所有的表写操作均无法提供写服务但是读操作可以正常进行。 MGR 采用innodb存储引擎支持在线DDL 单主搭建5.7 规划主机 我这里用三台虚拟机 192.168.168.101 3306 192.168.168.102 3306 192.168.168.103 3306 1配置host和IP的映射 在三台主机上分别 vi /etc/hosts。 MySQL 的组复制依然存在解析 host 的 bug所以我们必须在所有节点内把 host和 ip 的映射关系配置完毕。 192.168.168.101 master1192.168.168.102 slave2192.168.168.103 slave3 2关闭防火墙 查看centos7的防火墙 firewall-cmd --state 停止firewall systemctl stop firewalld.service 禁止firewall开机启动 systemctl disable firewalld.service 3快速初始化3台MySQL库 1、压缩包解压 tar -xvf mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.21-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql2、配置环境变量 vi /etc/profile export PATH/usr/local/mysql/bin:$PATH source /etc/profile3、编辑mysql配置文件 vi /etc/my.cnf [mysqld] usermysql basedir/usr/local/mysql datadir/data/3306/data log_bin/data/3306/binlog/mysql-bin port3306 server_id1013306 #(另外两台机器 server_id1023306\ server_id1033306) socket/tmp/mysql.sock gtid-modeon enforce-gtid-consistencytrue log_slave_updates1 relay_log_info_repositoryTABLE master_info_repositoryTABLE relay_log_recoveryon4、创建数据目录和赋权 mkdir -p /data/3306/data mkdir -p /data/3306/binlog chown mysql:mysql -R /data5、初始化 mysqld --defaults-file/etc/my.cnf --basedir/usr/local/mysql --initialize-insecure --datadir/data/3306/data --usermysql 6、启动 mysqld_safe --defaults-file/etc/my.cnf --usermysql  7、登录 mysql -u root mysql -S /tmp/mysql3306.sock -u root 4配置MGR参数 分别在三台配置文件my.cnf上添加配置后重启生效。 101上: transaction_write_set_extractionXXHASH64 loose-group_replication_group_name a876d35e-9110-11e6-a365-842b2b5909d6 loose-group_replication_start_on_boot off loose-group_replication_local_address 192.168.168.101:34901 loose-group_replication_group_seeds 192.168.168.101:34901,192.168.168.102:34902,192.168.168.103:34903 loose-group_replication_bootstrap_group off loose-group-replication-ip-whitelist192.168.168.101,192.168.168.102,192.168.168.103102上: transaction_write_set_extractionXXHASH64 loose-group_replication_group_name a876d35e-9110-11e6-a365-842b2b5909d6 loose-group_replication_start_on_boot off loose-group_replication_local_address 192.168.168.102:34902 loose-group_replication_group_seeds 192.168.168.101:34901,192.168.168.102:34902,192.168.168.103:34903 loose-group_replication_bootstrap_group off loose-group-replication-ip-whitelist192.168.168.101,192.168.168.102,192.168.168.103103上: transaction_write_set_extractionXXHASH64 loose-group_replication_group_name a876d35e-9110-11e6-a365-842b2b5909d6 loose-group_replication_start_on_boot off loose-group_replication_local_address 192.168.168.103:34903 loose-group_replication_group_seeds 192.168.168.101:34901,192.168.168.102:34902,192.168.168.103:34903 loose-group_replication_bootstrap_group off loose-group-replication-ip-whitelist192.168.168.101,192.168.168.102,192.168.168.103 分别将三台库重启 mysqld_safe --defaults-file/etc/my.cnf --usermysql 5创建组复制用户 SET SQL_LOG_BIN0; CREATE USER repl% IDENTIFIED BY repl; GRANT REPLICATION SLAVE ON *.* TO repl%; FLUSH PRIVILEGES; SET SQL_LOG_BIN1; 6安装组复制插件 在3套库上都安装 INSTALL PLUGIN group_replication SONAME group_replication.so; show plugins; 7启动并引导组复制 在单主模式中我们需要默认的选择一个节点作为主节点并且使这个节点成为引导节点。 选择在101主机上的 MySQL 中运行以下的命令 SET GLOBAL group_replication_bootstrap_groupON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_groupOFF; SET GLOBAL group_replication_bootstrap_groupON; 意思是打开节点的引导模式。 START GROUP_REPLICATION; 意思是开启同步。 SET GLOBAL group_replication_bootstrap_groupOFF; 在我们将节点一设置为引导节点后关闭。 启动报错查看日志。 set global.binlog_checksumnone; 在3套库上都需要执行可以写入配置文件。 可以查看到改节点已经加入到集群中 ONLINE。 在erro日志中看到到节点 1 已经通过 MGR 的内部通信管理 GCS 加入到节点中。 查看是否是主节点可以看到101主机的库是主节点 select * from performance_schema.replication_group_members;查询节点是否正常 8.0版本可以直接通过表performance_schemaerformance_schema.replication_group_members查看是否是主节点在5.7中查看是否主节点需要这样查 SELECT IF((SELECT server_uuid) (SELECT VARIABLE_VALUE FROM performance_schema.global_status WHERE VARIABLE_NAME group_replication_primary_member), 1, 0) as is_primary_node; 测试 为了验证组复制是否能做到加入的节点后自动同步我们这里可以在节点 1 上造一点数据。 这里我创建了一些库和一些表。 等节点 2 和节点 3 加入组后观察是否同步 create database test; use test; create table t(id int,name varchar(30),PRIMARY KEY (id)); insert into t select 1,aa; 8节点2加入 set global.binlog_checksumnone; CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDrepl FOR CHANNEL group_replication_recovery; START GROUP_REPLICATION; 2节点加入到集群且不是主 如果是8.0的MGR可以直接从这里查到是否是主 数据也自动同步过来了验证了组复制新加入的节点数据自动同步 9节点3加入 set global.binlog_checksumnone; CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDrepl FOR CHANNEL group_replication_recovery;START GROUP_REPLICATION; 3节点加入集群且不是主 可以查看数据已经同步过来了再次验证了组复制新加入的节点数据自动同步。 注意配置文件没有写 loose-group_replication_single_primary_mode true loose-group_replication_enforce_update_everywhere_checks false 在5.7中开始组复制之前可以手动配置写入 set global group_replication_single_primary_modetrue; set global group_replication_enforce_update_everywhere_checks false; 当然如果不写默认是 多主搭建 多主节点搭建基本和单主步骤一样只需要配置文件my.cnf额外添加本文以下示例为单主节点搭建多主节点搭建亦相差无几。 loose-group_replication_single_primary_modeFALSE loose-group_replication_enforce_update_everywhere_checks TRUE 单主搭建8.0 1、压缩包解压 tar -xvf mysql-8.0.25-linux-glibc2.12-x86_64.tar rm -rf /usr/local/mysql mv mysql-8.0.25-linux-glibc2.12-x86_64 /usr/local/mysql2、配置环境变量 vi /etc/profileexport PATH/usr/local/mysql/bin:$PATH source /etc/profile3、编辑MySQL配置文件 vi /etc/my.cnf [mysqld] usermysql basedir/usr/local/mysql datadir/data/3306/data log_bin/data/3306/binlog/mysql-bin port3306 server_id1013306 #(另外两台机器 server_id1023306\ server_id1033306)socket/tmp/mysql.sock gtid-modeon enforce-gtid-consistencytrue log_slave_updates1 relay_log_info_repositoryTABLE master_info_repositoryTABLE relay_log_recoveryon--101---------------------------------------------------------------------------------------------------------- transaction_write_set_extractionXXHASH64 loose-group_replication_group_name a876d35e-9110-11e6-a365-842b2b5909d6loose-group_replication_start_on_boot off loose-group_replication_local_address 192.168.168.101:34901loose-group_replication_group_seeds 192.168.168.101:34901,192.168.168.102:34902,192.168.168.103:34903loose-group_replication_bootstrap_group off loose-group-replication-ip-whitelist192.168.168.101,192.168.168.102,192.168.168.103--102---------------------------------------------------------------------------------------------------------- transaction_write_set_extractionXXHASH64 loose-group_replication_group_name a876d35e-9110-11e6-a365-842b2b5909d6loose-group_replication_start_on_boot off loose-group_replication_local_address 192.168.168.102:34902loose-group_replication_group_seeds 192.168.168.101:34901,192.168.168.102:34902,192.168.168.103:34903loose-group_replication_bootstrap_group off loose-group-replication-ip-whitelist192.168.168.101,192.168.168.102,192.168.168.103--103---------------------------------------------------------------------------------------------------------- transaction_write_set_extractionXXHASH64 loose-group_replication_group_name a876d35e-9110-11e6-a365-842b2b5909d6loose-group_replication_start_on_boot off loose-group_replication_local_address 192.168.168.103:34903loose-group_replication_group_seeds 192.168.168.101:34901,192.168.168.102:34902,192.168.168.103:34903loose-group_replication_bootstrap_group off loose-group-replication-ip-whitelist192.168.168.101,192.168.168.102,192.168.168.103------------------------------------------------------------------------------------------------------------4、创建数据目录和赋权 mkdir -p /data/3306/data mkdir -p /data/3306/binlog chown mysql:mysql -R /data5、初始化mysqld --defaults-file/etc/my.cnf --basedir/usr/local/mysql --initialize-insecure --datadir/data/3306/data --usermysql 6、启动 mysqld_safe --defaults-file/etc/my.cnf --usermysql 7、登录 mysql -u root mysql -S /tmp/mysql3306.sock -u root 8、安装组复制插件 INSTALL PLUGIN group_replication SONAME group_replication.so; show plugins;9、在101上创建复制用户 SET SQL_LOG_BIN0; CREATE USER repl% IDENTIFIED WITH mysql_native_password BY repl; GRANT REPLICATION SLAVE ON *.* TO repl%; GRANT BACKUP_ADMIN ON *.* TO repl%; FLUSH PRIVILEGES; SET SQL_LOG_BIN1; 10、启动并引导组复制 在单主模式中我们需要默认的选择一个节点作为主节点并且使这个节点成为引导节点。 在 mysql 中运行以下的命令 SET GLOBAL group_replication_bootstrap_groupON; START GROUP_REPLICATION; SET GLOBAL group_replication_bootstrap_groupOFF;11、依次在另外两个节点 CHANGE MASTER TO MASTER_USERrepl, MASTER_PASSWORDrepl FOR CHANNEL group_replication_recovery; START GROUP_REPLICATION; 如下为8.0的单主三节点MGR集群 墨天轮原文链接https://www.modb.pro/db/166364?sjhy复制链接至浏览器或点击文末阅读原文查看) 关于作者 陈家睿云和恩墨MySQL技术顾问,拥有MySQL OCP、PGCE、OBCA、SCDP证书长期服务于电信行业。现负责公司MySQL数据库、分布式数据库运维方面的技术工作热衷于运维故障处理、备份恢复、升级迁移、性能优化的学习与分享。 更多数据库行业相关内容欢迎光临 2021 数据技术嘉年华 https://www.modb.pro/dtc2021扫描下方二维码免费领取大会门票 END 推荐阅读267页2020年度数据库技术年刊 推荐下载2020数据技术嘉年华PPT下载 2020数据技术嘉年华近50个PPT下载、视频回放已上传墨天轮平台可在“数据和云”公众号回复关键词“2020DTC”获得 你知道吗我们的视频号里已经发布了很多精彩的内容快去看看吧↓↓↓ 点击下图查看更多 ↓ 云和恩墨大讲堂 | 一个分享交流的地方 长按识别二维码加入万人交流社群 请备注云和恩墨大讲堂   点个“在看”  你的喜欢会被看到❤
http://www.hkea.cn/news/14571466/

相关文章:

  • 国内男女直接做的视频网站wordpress和apache
  • 免费企业信息查询网站wordpress阅读主题
  • 要怎么做网站安顺做网站的公司
  • 房建设计图网站如何为wordpress加评论
  • 做母婴的网站有哪些成都品牌设计
  • 综述题建设网站需要几个步骤做app 的模板下载网站有哪些内容
  • 怎么在企业站建立网站吗建设网站 注册与登陆
  • php网站开发遇到的问题商贸有限公司怎么样注册
  • 做网站设计哪里有信誉好的做pc端网站
  • 怎样做自己的摄影网站成都设计院招聘
  • 佛山市网站建设 乾图信息科技网上如何建网站卖量具
  • html的制作网站的优点代做财务报表分析网站
  • .net网站费用wordpress采集发布
  • windows2008 iis 网站配置合肥网站到首页排名
  • 友情链接网站大全提供网站制作公司电话
  • 搜索引擎大全网站企业网站备案快吗
  • 静态网站提交表单怎么做竞价托管运营哪家好
  • 建筑必看六个网站建筑网官方网站查询
  • 网站建设脚本语言有哪些图片素材网站模板
  • 建手机网站价格网站排名是怎么做
  • 电商网站 建设步骤无限流量网站建设
  • 织梦修改网站后备份共享虚拟主机 几个网站
  • 展示用网站宁波网站建设科技有限公司
  • 四平市住房和城乡建设局网站引流推广营销
  • 如何把代码放在网站首页教程免费域名注册解析
  • 高校信息化建设网站系统微信摄影网站首页设计
  • 站长之家seo一点询自己做小程序商城
  • 考证培训机构报名网站青岛网站制作seo
  • wordpress页面打开404错误seo咨询邵阳
  • 做影视网站侵权吗爱企网