Relay

Centos7+Mysql8双机热备(主-主复制HA) 操作说明

我怕爱的太早我们不能终老 提交于 2020-08-09 11:04:29
Centos7+Mysql8双机热备(主-主复制HA) 操作说明 庞国明,2018-09-13 1.1 操作前的准备 两台服务器,并同时按照Centos7.3新装版本(必须装相同版本); 如果有外网链接则配置Centos7联网、安装wget工具,如果没有外网链接则跳到 “1.2 centos7下安装mysql”; 配置Centos7 联网 新装Centos7默认联网是关闭的,可以通过以下步骤设置开机联网 第一步:[root@localhost ~]# cd /etc/sysconfig/network-scripts/ 第二步:[root@localhost ~]# ls 这时候你会发现没有教程上说的ifcfg-eth0文件,打开第一个即可。 有的教程找不到就新建一个,肯定是错的。 第三步:[root@localhost ~]# vi ifcfg-eno167777736 第四步:修改ONBOOT为yes 保存退出(参考vi使用方法) 第五步:[root@localhost ~]# service network restart Centos7 下安装wget 本次操作采用Centos 的yum源安装,需要先下载rpm包,因此我们需要先安装wget下载工具 [root@localhost ~]# yum install wget 安装期间会提示确认提示,输入y 确认安装即可。 1

mysql 主主互备实现

*爱你&永不变心* 提交于 2020-08-07 15:05:48
今天星期天,么事就写个MYSQL的主主架构的博客,原理如下图,不是我画的网上找的。 主机作用 操作系统 mysql版本 对应IP vip数据库 mysqlA(主) centos6.4 mysql 5.5.48 192.168.48.129 192.168.48.126 mysqlB(备) centos6.4 mysql 5.5.48 192.168.48.132 一: 在每个节点安装mysql数据库: 《1》到官网去下载最新的yum仓库,并安装 http://dev.mysql.com/downloads/repo/yum/ yum install mysql-community-server 《2》用第三方yum 1、导入第三方源webtatic rpm -Uvh http://repo.webtatic.com/yum/el6/latest.rpm 2、如果已安装低版本的mysql就删除 yum remove mysql mysql-* 3、安装libmysqlclient15 yum install libmysqlclient15 --enablerepo=webtatic 4、安装mysql5.5 yum install mysql55 mysql55-server --enablerepo=webtatic 《3》安装MariaDB 我这里用的这安装的 1、vi

删库不跑路,MySQL数据来恢复

帅比萌擦擦* 提交于 2020-08-06 21:14:58
日常工作中,总会有因手抖、写错条件、写错表名、错连生产库造成的误删库表和数据的事情发生。那么,如果连数据都恢复不了,还要什么 DBA。 1. 前言 数据恢复的前提的做好备份,且开启 binlog,格式为 row。如果没有备份文件,那么删掉库表后就真的删掉了,lsof 中还有记录的话,有可能恢复一部分文件。但若刚好数据库没有打开这个表文件,那就只能跑路了。如果没有开启 binlog,那么恢复数据后,从备份时间点开始的数据都没了。如果 binlog 格式不为 row,那么在误操作数据后就没有办法做闪回操作,只能老老实实地走备份恢复流程。 2. 直接恢复 直接恢复是使用备份文件做全量恢复,这是最常见的场景。 2.1 mysqldump 备份全量恢复 使用 mysqldump 文件恢复数据非常简单,直接解压了执行: gzip -d backup.sql.gz | mysql -u<user> -h<host> -P<port> -p 2.2 xtrabackup 备份全量恢复 恢复过程: # 步骤一:解压(如果没有压缩可以忽略这一步) innobackupex --decompress <备份文件所在目录> # 步骤二:应用日志 innobackupex --apply-log <备份文件所在目录> # 步骤三:复制备份文件到数据目录 innobackupex --datadir=

Mysql 架构及执行流程

☆樱花仙子☆ 提交于 2020-08-06 08:53:28
1. mysql 架构 1.1 简化版架构 客户端+ 核心服务 + 存储引擎 ⬇︎ ⬆︎(客户端)⬇︎⬆︎ =====【连接/线程处理】====} ⬇︎ ⬇︎ 【查询缓存】 ⬅︎ 【解析器】 } 【核心服务】 ⬇︎ ========【优化器】=======} ⬇︎⬆︎ =======【存储引擎】======= 1.2 详细版架构 MySql 逻辑架构图 | -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | | 客户端 | | 「 Connectors : PHP 、 JDBC 、 Python 、navicat」 | | -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ⬇︎ ⬆︎ | === === === === Mysql 服务端 === === === === === === === === === === === === === === === === === === === === === == | | -- -- -- -- -- -- -- -- -- -- -- -- -- -- - | | Connection Pool | | -- -- -- -- -- -- -- -- -- -- --

Mysql集群方案:Mysql主从复制

…衆ロ難τιáo~ 提交于 2020-08-06 06:58:12
一、MySQL常用集群方案 1、了解 MySQL 集群之前,先看看单节点数据库的弊病: 大型互联网程序用户群体庞大,所以架构需要特殊设计。 单节点数据库无法满足大并发时性能上的要求。 单节点的数据库没有冗余设计,无法满足高可用。 单节点 MySQL无法承载巨大的业务量,数据库负载巨大。 2、最常见的MySQL 集群方案 Repliaction 集群方案 PXC 集群方案( Percona XtraDB Cluster ) 两种集群方案特性如下图: 3、PXC方案 和 Replication方案对比 (1)先看看 PXC方案 图片来源于网络,侵权删 很明显 PXC方案在任何一个节点写入的数据都会同步到其他节点,数据双向同步的(在任何节点上都可以同时读写)。 (2)Replication 集群方案 图片来源于网络,侵权删 Replication方案只能在Master数据库进行写操作,在Slave数据库进行读操作。如果在Slave数据库中写入数据,Master数据库是不能知道的(单向同步的)。 3. PXC 数据的强一致性 PXC 采用同步复制,事务在所有集群节点要么同时提交,要么不提交。 Replication 采用异步复制,无法保证数据的一致性。 下面看看 PXC写入操作: 图片来源于网络,侵权删 当一个写入请求到达PXC集群中的一个 mysql(node1数据库) 数据库时

100道MySQL数据库经典面试题解析(收藏版)

别等时光非礼了梦想. 提交于 2020-08-06 06:26:55
前言 100道MySQL数据库经典面试题解析,已经上传github啦 https://github.com/whx123/JavaHome/tree/master/Java面试题集结号 公众号:捡田螺的小男孩 数据库 1. MySQL 索引使用有哪些注意事项呢? 可以从三个维度回答这个问题:索引哪些情况会失效,索引不适合哪些场景,索引规则 索引哪些情况会失效 查询条件包含or,可能导致索引失效 如何字段类型是字符串,where时一定用引号括起来,否则索引失效 like通配符可能导致索引失效。 联合索引,查询时的条件列不是联合索引中的第一个列,索引失效。 在索引列上使用mysql的内置函数,索引失效。 对索引列运算(如,+、-、*、/),索引失效。 索引字段上使用(!= 或者 < >,not in)时,可能会导致索引失效。 索引字段上使用is null, is not null,可能导致索引失效。 左连接查询或者右连接查询查询关联的字段编码格式不一样,可能导致索引失效。 mysql估计使用全表扫描要比使用索引快,则不使用索引。 后端程序员必备:索引失效的十大杂症 索引不适合哪些场景 数据量少的不适合加索引 更新比较频繁的也不适合加索引 区分度低的字段不适合加索引(如性别) 索引的一些潜规则 覆盖索引 回表 索引数据结构(B+树) 最左前缀原则 索引下推 2. MySQL

MySQL 数据库主从同步配置

余生颓废 提交于 2020-08-06 03:57:39
一、概述 模式: 主从复制,主库写入数据,从库同步主库数据,从库保持与主库内容一致,达到实施备份的效果。 优势: 数据分布(data distribution) 负载平衡(load balancing),实现读写分离,缓解数据库压力。 数据备份(backup) 高可用性与容错行(high availability and failover) 原理图如下: 功能: BinLog:二进制文件,存储MasterDB(主数据库)中修改数据的内容,存储内容的格式有Statement,Row,Mixed。 Relay Log:功能作用与Binlog一样,不同点在于当日志内的内容被读取完后,会被删除。 Binlog dump:将读取Binlog后发送数据给IO线程。 IO线程:将接收到数据传给RelayLog日志。 SQL线程:读取RelayLog数据。 流程: 从库,配置主库信息,建立连接。 MasterDB数据库数据发生变化时,会记录在Binlog日志中。 Binlog dump线程读取Binlog中的内容,将数据发送给IO线程。 IO线程再将数据存入RelayLog中。 SQL线程读取RelayLog中的数据并写入从库。 二、安装和配置 2.1 环境说明 提示:主从库的数据库版本最好保持一致,或者,从库的版本一定要高于主库版本,否则在数据同步过程中可能会出现问题,切记。

stm32编写Modbus步骤

会有一股神秘感。 提交于 2020-08-05 07:17:38
1. modbus协议简介:   modbus协议基于rs485总线,采取一主多从的形式,主设备轮询各从设备信息,从设备不主动上报。 日常使用都是RTU模式,协议帧格式如下所示:   地址 功能码 寄存器地址 读取寄存器个数 寄存器数据1 ..... CrcL CrcH /* AA 03 00 00 00 0A DC 16 addr cmd regH regL lenH lenL crcL crcH 主机发送 AA 03 14 00 00 00 00 00 00 00 00 00 03 00 01 00 00 00 18 00 1C 00 00 81 4B 从机回复 addr cmd datelen .... AA 10 00 0a 00 01 02 00 02 主机修改从机寄存器值 addr cmd regH regL regNum datalen data */   功能码及对应的操作字长: 目前比较简单的实现了读多个保持寄存器,以及写多个保持寄存器,由于不是使用的PLC,所以寄存器地址的划分没有严格按照上表,具体地址后面解释。 2.Modbus协议编写步骤:很多设备厂家都会有自己的modbus协议,大多数都不是很标准    (1)分析板子的具体信息,编写不同的设备结构体,比如只读的结构体,可读写的结构体,保存配置信息的结构体(当主机发送改变配置信息的消息帧时,会改变相应的变量

MySQL主从复制虽好,能完美解决数据库单点问题吗?

ぐ巨炮叔叔 提交于 2020-08-04 15:24:16
一、单个数据库服务器的缺点 数据库服务器存在单点问题; 数据库服务器资源无法满足增长的读写请求; 高峰时数据库连接数经常超过上限。 二、如何解决单点问题 增加额外的数据库服务器,组建数据库集群; 同一集群中的数据库服务器需要具有相同的数据; 集群中的任一服务器宕机后,其它服务器可以取代宕机服务器。 三、MySQL主从复制架构 1、主库将变更写入到主库的binlog中 一些MySQL版本并不会开启二进制日志,所以一定要检查是否开启; 如果刚开始没有开启,后面再进行开启的话,需要重启数据库才能生效,而且数据库的重启往往会对业务造成很大的影响; 尽管二进制日志对性能有稍许的影响,所以还是建议大家无论是否使用复制功能,都要开启MySQL二进制日志,因为增量备份也需要二进制日志。 2、从库的IO线程在指定位置读取主库binlog内容存储到本地的中继日志(Relay Log)中 要完成二进制日志的传输过程,MySQL会在从服务器上启动一个工作线程,称为IO线程,这个IO线程会跟主数据库建立一个普通的客户端连接,然后在主服务器上启动一个特殊的二进制转储线程称为binlogdown线程。 从库上的IO线程通过这个二进制转储线程来读取主库上的二进制事件,如果该事件追赶上主库,则会进入sleep状态,直到主库发起信号通知有新事件产生时,才会被唤醒,relay log的格式和binlog格式是完全相同的

终于学会了 MySQL 主从配置和读写分离

核能气质少年 提交于 2020-08-04 13:47:16
我是风筝,公众号「古时的风筝」,一个简单的程序员鼓励师。 文章会收录在 JavaNewBee 中,更有 Java 后端知识图谱,从小白到大牛要走的路都在里面。 面试官:我看你简历上写的你们公司数据库是 MySQL 读写分离的? 小阿花:嗯,是的。 面试官:那你说说数据库是主从怎么配置? 小阿花:额,都是 DBA 帮我们搞好的,我们直接用就好了。 面试官:你们主从结构遇到过什么故障没,比如从库或者主库挂掉了,怎么解决的? 小阿花:这个也是 DBA 搞的。 面试官:(微笑)好的,今天就到这里,回去等通知吧。 现在不用再等 DBA 了,自己配置 MySQL 主从,自己做自己的 DBA 吧。 背景说明 假设各位都已经安装好了 MySQL 数据库,本次操作采用的 MySQL 版本是 5.7.16。正好还有一台 Mac闲着,所以干脆就用两台物理机直接操作了,没有空闲机器的可以在虚拟机操作是一样的。 以最简单的一主一从配置。 主服务器:192.168.0.101 从服务器:192.168.0.108 数据库层的几种模式 在系统架构中,数据库层主要由如下几种模式,分别是单点模式、主备模式、主从模式。 单点模式 单点模式是最简单的模式,只有一台数据库服务器,部署最简单。但是存在单点风险,一旦这台服务器挂掉,整个系统也就挂掉了。 主备模式 为了解决单点模式的风险,主备模式产生。目前