Relay

MySQL系列详解八:MySQL多线程复制演示-技术流ken

南笙酒味 提交于 2020-04-27 22:27:09
前言 Mysql 采用多线程进行复制是从 Mysql 5.6 开始支持的内容,但是 5.6 版本下有缺陷,虽然支持多线程,但是每个数据库只能一个线程,也就是说如果我们只有一个数据库,则主从复制时也只有一个线程在工作。相当于还是以前的单线程。 从 Mysql 5.7 开始支持同一数据库下并行主从复制。不过默认情况下,还是单数据库单个线程,如果需要使用多线程,需要在从节点进行配置。 Mysql 5.7 对主从复制增加了一种类型,共有两种类型,如下: DATABASE 基于库的并行复制 , 每个数据库对应一个复制线程 LOGICAL_CLOCK 基于组提交的并行复制方式,同一个数据库下可以有多个线程 下面的步骤,在从节点上进行配置。其实只需要修改两处变量即可。 首先需要搭建出来一个主从复制的架构出来,这里就不再演示,请参考上一篇博客《 MySQL系列详解六:MySQL主从复制/慢同步演示-技术流ken 》 演示:实现MySQL多线程复制 1.在从节点查看当前的主从复制的进程数 MySQL [(none)]> show processlist; +----+-------------+--------------------+------+-------------+------+-------------------------------------------------------

MySQL系列详解十:MySQL多源复制演示-技术流ken

末鹿安然 提交于 2020-04-27 22:25:58
前言 多源复制即多主一从结构,多个主服务器端的数据都会同步到后端一个从服务器上面。至于为什么要做多源复制下面的总结很到位。 1、灾备作用:将各个库汇总在一起,就算是其他库都挂了(整个机房都无法连接了),还有最后一个救命稻草; 2、备份:直接在这个从库中做备份,不影响线上的数据库; 3、减少成本:不需要每个库都做一个实例,也减少了DBA的维护成本; 4、数据统计:后期的一些数据统计,需要将所有的库汇总在一起。 MySQL多源复制演示 准备 主1服务器端:10.220.5.137 主2服务器端:10.220.5.138 从服务器端:10.220.5.139 配置两个主服务端 首先要保证三个节点中的server_id不一致,检查各个服务器端server_id 检查主1服务端id [root@ken ~]# vim /etc/my.cnf ... #binlog #binlog_format = STATEMENT binlog_format = row server -id = 1003307 log -bin = /data/mysql/mysql3306/logs/mysql- bin binlog_cache_size = 4M max_binlog_size = 256M max_binlog_cache_size = 1M sync_binlog = 0 expire_logs

MySQL系列详解一:MySQL&&多实例安装-技术流ken

与世无争的帅哥 提交于 2020-04-27 22:06:45
简介 MySQL是一个真正的多用户、多线程SQL数据库服务器。SQL(结构化查询语言)是世界上最流行的和标准化的数据库语言,它使得存储、更新和存取信息更加容易。MySQL是一个客户机/服务器结构的实现,它由一个服务器守护程序mysqld和许多不同的客户程序以及库组成的。 分为关系数据库(mysql、sqlserver、oracle)和 非关系型数据库(redis )。 关系型数据库 库中的数据二维表的方式存储 一.概念 关系:存储数据的表的表名 元组:就是表中的一条记录(一行就是一条记录) 属性:就是表中的一个字段(一列就是一个字段) 域:字段的取值范围 关键字:可以唯一标识一条记录的字段(这也是一个或多个字段) 关系模型:表和表之间的关系 二.关系型数据库的优点 1. 容易理解 2. 可以借助于sql语句来进行数据的读写 3. 便于维护表中的数据(主要用于保证数据完整、数据一致) 三.关系型数据库的缺点 1. 事务一致性(数据一致性) 为了保证数据的完整,会带来额外的开销,导致性能降低 2. 关系型数据库在高并发的读写请求下,会程序系统的性能瓶颈 3. 可扩展性 拆分, 分库,分表 4. 读写的时效性 金融:对时效性往往要求不高 web,社交网络:对时效要较高 5. 需要写复杂的SQL,甚至需要用多表联合查询 非关系型数据库(NoSQL) NoSQL Not Only SQL

MySQL5.7 的GTID复制

核能气质少年 提交于 2020-04-27 22:02:44
                   MySQL5.7 的GTID复制                                         作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任。   在MySQL5.6之后其官方推出了GTID复制方式,和传统的基于bin log复制方式有所不同,接下来我们一起来了解一下它! 一.什么是GTID(global transaction identitifiers)    GTID 复制是完全基于事务的复制,即每个在主库上执行的事务都会被分配到一个唯一的全局ID并记录和应用在主库上。   这种复制方式简化了简历slave和master/slave之间的切换工作,因为其完全不需要找当前执行的bin log和log中的位置完成切换。   一个GTID是master上执行的任何commit事务所分配的全局唯一ID标识,其由两部分组成。即 GTID = source_id:transaction_id。 source_id代表主库的server_uuid,transaction_id代表事务按顺序提交的ID,比如第一个提交则是1,第十个提交的事物则是10.   GTID集合代表一组GTID. 二.MySQL基于GTID的复制 1>.MySQL基于GTID复制的原理      当一个事务在主库提交时

(五)Cisco dhcp snooping实例3-多交换机环境(DHCP服务器和DHCP客户端位于同VLAN)

眉间皱痕 提交于 2020-04-27 21:41:03
试验拓扑 环境:dhcp server和dhcp客户端属于同vlan,但是客户端属于不同的交换机,在L2和L3交换机开启dhcp snooping后得出如下结论 L3交换机的配置 ip dhcp pool vlan27 network 172.28.27.0 255.255.255.0 default-router 172.28.27.254 dns-server 172.28.28.15 ! ! ip dhcp snooping vlan 27 ip dhcp snooping information option allow-untrusted //必须加此命令,因为L3交换机也开启了dhcp snooping,具体解释如下 ip dhcp snooping interface GigabitEthernet0/0 switchport trunk encapsulation dot1q switchport mode trunk media-type rj45 speed 1000 duplex full no negotiation auto ip dhcp snooping limit rate 720 L2交换机配置 ip dhcp snooping vlan 27 ip dhcp snooping ! interface GigabitEthernet0/0

centos7下mysql半同步复制原理安装测试详解

牧云@^-^@ 提交于 2020-04-27 21:39:28
原理简介 : 在MySQL5.5之前,MySQL的复制其实都是异步复制(见下图),主库和从库的数据之间存在一定的延迟,这样存在一个隐患:当在主库上写入一个事务并提交成功,而从库尚未得到主库推送的BinLog日志时,恰好主库宕机了,例如主库可能因磁盘损坏、内存故障等造成主库上该事务Binlog丢失,此时从库就可能损失这个事务,从而造成主从不一致。      为了解决这个问题,从MySQL5.5开始引入了半同步复制机制(Semi_synchronous Replication)。为了保证主库上的每一个Binlog事务都能够被可靠的复制到从库上,主库在每次事务成功提交时,并不及时反馈给前端用户,而是等待其中一个从库也接受到Binlog事务并成功写入中继日志后,主库才返回Commit操作成功给客户端。半同步复制保证了事务成功提交后,至少有两份日志记录,一份在主库的Binlog日志上,另一份在至少一个从库的中继日志Relay Log上,从而更进一步保证了数据的完整性。半同步复制的大致流程如下图:      半同步复制模式下,假如在上图步骤①②③中任何一个步骤中主库宕机,则事务并未提交成功,从库上也没收到事务对应的Binlog日志,所以主从数据是一致的;假如在步骤④传送Binlog日志到从库时,从库宕机或者网络故障,导致Binlog并没有及时地传送到从库上,此时主库上的事务会等待一段时间

MySQL5.7配置基于GTID的复制

不问归期 提交于 2020-04-27 21:17:05
MySQL5.7下配置GTID 复制的方法: 修改主库和从库的配置文件,加入下列部分的配置项: 主库: [mysqld] log-bin=mysql-bin binlog_format= ROW gtid-mode = ON enforce_gtid_consistency = ON 从库: [mysqld] log-bin=mysql-bin binlog_format= ROW log_slave_updates = ON gtid-mode = ON enforce_gtid_consistency = ON master-info-repository=TABLE relay-log-info-repository=TABLE 说明 : 在传统的slave端,binlog是不用开启的,但是在GTID中,slave端的binlog是必须开启的,目的是记录执行过的GTID(强制)。 MySQL 5.6中,还必须开启 log_slave_updates ,即使是master也要开启 1、GTID比传统复制的优势: 1、更简单的实现failover,不用以前那样在需要找log_file和log_Pos。 2、更简单的搭建主从复制。 3、比传统复制更加安全。 4、GTID是连续没有空洞的,因此主从库出现数据冲突时,可以用添加空事物的方式进行跳过。 2、GTID的工作原理: 1

Zabbix监控mysql主从

旧街凉风 提交于 2020-04-27 21:16:38
1)判断Mysql主从是否正常,是通过主从上面的SQL和IO线程都为yes状态判断(通过awk取值,grep过滤和统计yes的个数,如果为2则为正常值) ,随后我们取值得脚本或者命令写入zabbix-agent端的配置文件中的“Userparamenter”,格式 为:Userparamenter [自定义 键值] ,[脚本或者命令参数]。 2)我们需要自己定义添加监控mysql主从的模板和item监控项,创建监控项和图形都是可以的 3)创建完成之后,我们可以为zabbix主从状态定义监控报警 主从配置: mysql-master端: [root@mysql-master]# vim /etc/my.cnf (大致配置,如果需要详细的请看mysql篇) server-id =1 log-bin=/var/lib/mysql/mysql-bin root@mysql-master # /etc/init.d/mysqld restart mysql> grant replication slave on *.* to 'xiaoyu'@'192.168.10.138' identified by '123.com'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; mysql> show master

华为交换基本配置命令--S5700为例

倾然丶 夕夏残阳落幕 提交于 2020-04-27 20:17:54
华为S5700交换配置命令 Sava 配置完交换机后保存当前配置命令 System-view 进入系统视图命令 Display current-configuration 查询当前配置 Console口进入用户界面 User-interface console 0 进入第0个console用户界面 Authentication-mode passwd 配置从console口登入交换机模式为密码模式 Set authentication password cipher admin@123 配置从console口登入交换机的密码 Vlan 10 创建一个vlan Interface meth 0/0/1 进入交换机的第一个管理网口 ip address 192.168.1.10 255.255.255.0 设置网口ip及掩码 int gigabitethernet 0/0/1 进入第一个业务网口 port link-type access trunk hybrid 配置三个接口模式 port default vlan 10 把此接口加入vlan port access trunk hybrid allow-pass vlan 10 20 30 设置此接口可以通过的vlan int gig 0/0/1 clear configuration this undo shutdown

详解MySQL主从复制实战

本秂侑毒 提交于 2020-04-27 18:40:56
基于GTID的复制 简介 基于GTID的复制是MySQL 5.6后新增的复制方式. GTID (global transaction identifier) 即全局事务ID, 保证了在每个在主库上提交的事务在集群中有一个唯一的ID。 在原来基于日志的复制中, 从库需要告知主库要从哪个偏移量进行增量同步, 如果指定错误会造成数据的遗漏, 从而造成数据的不一致. 而基于GTID的复制中, 从库会告知主库已经执行的事务的GTID的值, 然后主库会将所有未执行的事务的GTID的列表返回给从库. 并且可以保证同一个事务只在指定的从库执行一次。 GTID开启配置如下: SHOW VARIABLES LIKE ' %GTID% ' ; 结果: 实战 1、在主库上建立复制账户并授予权限 基于GTID的复制会自动地将没有在从库执行的事务重放, 所以不要在其他从库上建立相同的账号. 如果建立了相同的账户, 有可能造成复制链路的错误. mysql > create user ' repl ' @ ' 172.% ' identified by ' 123456 ' ; 注意在生产上的密码必须依照相关规范以达到一定的密码强度, 并且规定在从库上的特定网段上才能访问主库. mysql > grant replication slave on * . * to ' repl ' @ ' 172.% ' ;