mysql主从配置

mysql集群与主从复制

冷暖自知 提交于 2020-02-06 02:45:55
mysql的读写分离是通过主从复制来实现的,那么为什么要读写分离呢? 随着用户量的增多,数据库的性能往往会成为一个系统的瓶颈所在,一般系统的“读”压力远远大于“写”压力,所以可以通过数据库的读写分离来提高系统的性能。让主数据库负责“写”操作,从数据库负责“读”操作,从数据库可以部署多个来提高“读”的速度。所以,读写分离可以分担mysql的压力,提供系统的性能和吞吐量 那么主从复制的原理是什么? 1)首先,mysql主数据库在事务提交时会把所有对数据的操作都写入二进制文件binlog中 2)从数据库读取到binlog中的记录,根据这个记录重做数据库操作,通过复制达到数据一致 但是主数据库和从数据库间总会有延迟,如果刚刚保存的数据你就要马上能够读取到,这个时候可以让这次查询去主数据库中执行 接下来实现一个主从复制的小案例 由于本项目的这些服务都是docker的镜像,所以mysql我也想通过docker来安装,这里使用的是5.7版本 docker pull mysql:5.7 首先要创建外部挂载点来挂载容器中的文件 sudo mkdir -p /usr/local/mysql/data sudo mkdir -p /usr/local/mysql/log sudo mkdir -p /usr/local/mysql/conf sudo chmod 775 -R /usr/local

MySQL高可用方案——双主

我的未来我决定 提交于 2020-02-05 18:06:21
MySQL的高可用方案有很多种,双主、MHA、MMM等等,这里只是写下最简单的双主这种高可用方案。 一、配置MySQL互为主从 1、环境准备 系统 IP 主机名 服务 Centos 7.5 192.168.20.2 mysql01 MySQL+keepalived Centos 7.5 192.168.20.3 mysql02 MySQL+keepalived 注:MySQL已部署完成,可参考博文 Centos部署MySQL 5.7 进行部署。 2、开启二进制日志及中继日志 #主机mysql01配置文件如下: [root@mysql01 ~]# cat /etc/my.cnf [mysqld] basedir=/usr/local/mysql datadir=/usr/local/mysql/data port=3306 server_id=1 #server_id必须唯一 socket=/usr/local/mysql/mysql.sock log-error=/usr/local/mysql/data/mysqld.err log-bin=/usr/local/mysql/data/log_bin #指定二进制日志文件 relay-log=/usr/local/mysql/data/relay-bin #指定中继日志 relay-log-index=relay-bin

数据库存储引擎

假如想象 提交于 2020-02-05 07:28:21
mysql存储引擎概述 存储引擎说白了就是如何存储数据、如何为存储的数据建立索引和如何更新、查询数据等技术的实现方 法。因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和操作此表的类型) SQL 解析器、SQL 优化器、缓冲池、存储引擎等组件在每个数据库中都存在,但不是每 个数据库都有这么多存储引擎。MySQL 的插件式存储引擎可以让存储引擎层的开发人员设 计他们希望的存储层,例如,有的应用需要满足事务的要求,有的应用则不需要对事务有这 么强的要求 ;有的希望数据能持久存储,有的只希望放在内存中,临时并快速地提供对数据 的查询。 一种类型表明的是一种存储方式 存储引擎:就是表的类型,不同的类型就会对应不同的处理机制去处理他 事务:就是要么同时成功,要么同时不成功 mysql支持哪些存储引擎? mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。 其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 各种存储引擎的特性 InnoDB MySql 5.6 版本默认的存储引擎。InnoDB 是一个事务安全的存储引擎,它具备提交、回滚以及崩溃恢复的功能以保护用户数据。InnoDB

数据库 -- 存储引擎介绍

孤人 提交于 2020-02-05 06:13:48
mysql引擎介绍 1,概念   mysql5.6支持的存储引擎包括InnoDB、MyISAM、MEMORY、CSV、BLACKHOLE、FEDERATED、MRG_MYISAM、ARCHIVE、PERFORMANCE_SCHEMA。其中NDB和InnoDB提供事务安全表,其他存储引擎都是非事务安全表。 mysql支持的存储引擎 MySQL服务器采用了多层设计和独立模块,插件式存储引擎体系结构,允许将存储引擎加载到正在运新的MySQL服务器中,图中的Pluggable Storage Engines部分。采用MySQL服务器体系结构,由于在存储级别上(也就是Pluggable Storage Engines)提供了一致和简单的应用模型和API,应用程序编程人员和DBA可不再考虑所有的底层实施细节。因此,尽管不同的存储引擎具有不同的能力,应用程序是与之分离的。存储引擎就司职与文件系统打交道了。 并发性:某些应用程序比其他应用程序具有很多的颗粒级锁定要求(如行级锁定)。 事务支持:并非所有的应用程序都需要事务,但对的确需要事务的应用程序来说,有着定义良好的需求,如ACID兼容等。 引用完整性:通过DDL定义的外键,服务器需要强制保持关联数据库的引用完整性。 物理存储:它包括各种各样的事项,从表和索引的总的页大小,到存储数据所需的格式,到物理磁盘。 索引支持

mysql主从备份及原理分析

拟墨画扇 提交于 2020-02-05 05:04:59
一.mysql主从备份(复制)的基本原理 mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。    二.mysql主从备份配置方法 在进行mysql主从备份时,最好确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。    主机(master)配置: 1.修改mysql配置文件my.cnf 在[mysqld]标签下添加以下几行 [plain] view plain copy log-bin #开启二进制日志 server-id=id #主服务器id号 binlog-do-db=db_nameA #指定对db_nameA记录二进制日志 binlog-ignore-db=db_namB #指定不对db_namB记录二进制日志 注意: log-bin,server

mysql主从备份及原理分析

我怕爱的太早我们不能终老 提交于 2020-02-05 05:03:48
原文链接: http://blog.csdn.net/qmhball/article/details/8233769 一.mysql主从备份(复制)的基本原理 mysql支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。mysql复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新、删除等等)。因此,要进行复制,必须在主服务器上启用二进制日志。每个从服务器从主服务器接收主服务器已经记录到其二进制日志的保存的更新。当一个从服务器连接主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,并在本机上执行相同的更新。然后封锁并等待主服务器通知新的更新。从服务器执行备份不会干扰主服务器,在备份过程中主服务器可以继续处理更新。    二.mysql主从备份配置方法 在进行mysql主从备份时,最好确保主从服务器的版本兼容。从服务器至少与主服务器版本相同或更高。    主机(master)配置: 1.修改mysql配置文件my.cnf 在[mysqld]标签下添加以下几行 [plain] view plain copy log-bin #开启二进制日志 server-id=id #主服务器id号 binlog-do-db=db_nameA #指定对db_nameA记录二进制日志 binlog

Mysql 高可用集群 ------ MHA

◇◆丶佛笑我妖孽 提交于 2020-02-04 11:53:34
文章目录 一、MHA 简介 二、部署 MHA 第一步:三台主从服务器安装 mysql 第二步:修改 mysql 的主配置文件:/etc/my.cnf ,注意三个服务器的 server-id 不能一样 第三步:三个服务器启动 mysql 服务 第四步:配置 Mysql 主从同步(一主两从) 第五步:安装 MHA 第六步:启动 MHA 一、MHA 简介: MHA(Master High Availability) (1)目前在MySQL高可用方面是一个相对成熟的解决方案,它由日本DeNA公司youshimaton(现就职于Facebook公司)开发,是一套优秀的作为MySQL高可用性环境下故障切换和主从提升的高可用软件。在MySQL故障切换过程中,MHA能做到在0~30秒之内自动完成数据库的故障切换操作,并且在进行故障切换的过程中,MHA能在最大程度上保证数据的一致性,以达到真正意义上的高可用。 (2)该软件由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以单独部署在一个独立的机器上管理多个master-slave集群,也可以部署在一台slave节点上。MHA Node运行在每台MySQL服务器上,MHA Manager会定时探测集群中的master节点,当master出现故障时

30_MHA集群概述 、 部署MHA集群 测试配置

十年热恋 提交于 2020-02-04 09:47:56
版本:5.7.28 1.准备MHA集群环境 准备6台虚拟机,并按照本节规划配置好IP参数 在这些虚拟机之间实现SSH免密登录 在相应节点上安装好MHA相关的软件包 使用6台RHEL 7虚拟机,如图-1所示。准备集群环境,安装依赖包,授权用户,配置ssh密钥对认证登陆,所有节点之间互相以root秘钥对认证登录,管理主机以root密钥对认证登录所有数据节点主机,配置mha集群。 1.1 修改主机名,配置IP msyql{50..57} 192.168.4.{50..57} 1.2 安装包(51-55) ]# tar -xvf mha56.tar.gz ]# cd mha ]# yum -y install perl-*.rpm 1.3 在管理主机上安装mha_node 和 mha-manager包(56操作) ]# yum -y install perl-DBD-mysql perl-DBI ]# rpm -ivh mha4mysql-node-0.56-0.el6.noarch.rpm 1.4 配置ssh密钥对认证登陆 所有节点之间可以互相以ssh密钥对方式认证登陆(以51为例) ]# ssh-keygen ]# for i in {50..57} > do > ssh-copy-id 192.168.4.$i > done ]# cat /etc/hosts 127.0.0.1

mysql 复制基础

坚强是说给别人听的谎言 提交于 2020-02-03 00:41:43
mysql 复制基础 一、引入 mysql 服务器性能不够、压力大,如何解决? 一种、纵向扩展,为服务器升级配置(cpu、内存、磁盘) 另一种 则是水平扩展,添加多台服务器共同工作,mysql复制就是解决多台mysql服务器协同工作问题 mysql复制的其他功用 数据分布 负载均衡读 备份 高可用和故障切换 MySQL升级测试 mysql 复制的特点 每个节点都有相同的数据集 向外扩展 二进制日志 单向 主从复制特点: 异步复制 主从数据不一致比较常见 二、MySQL复制的模型 一主一从 读写分离 一主多从 ​ 为了解决服务读的压力,但是无法解决写压力大的问题,由于复制(同步数据)过程是串行的,过多的从服务器,会造成主服务器的进程压力大 级联复制 ​ 解决了一主多从的主服务器压力,但是仍然无法解决写压力大的问题 主主复制 ​ 可以同时写,但是如果两个服务器同时写入同一个主键的记录时,会产生冲突 ;实际通常通过调度器用来做一主一从,相比较传统的一主一从,当主从发生故障切换时,恢复的时间更短 环状复制 ​ 主主的变形,一个数据更新了数据,会一级一级的更新,直到所有的数据库都更新完 多主一从 ​ 实际上是从节点上跑了两个没有业务逻辑关系的数据库,两个主节点上各有一个,本质上仍然是一主一从,从节点上运行mysql的多实例可以达到相同效果。 生产极少这样用 三、mysql

MySQL 高可用之主从复制

情到浓时终转凉″ 提交于 2020-02-02 05:11:44
MySQL主从复制简介 Mysql的 主从复制 方案,都是 数据传输 的,只不过MySQL无需借助第三方工具,而是自带的同步 复制功能 ,MySQL的 主从复制 并不是磁盘上文件直接同步,而是将 binlog 日志发送给从库,由从库将 binlog 文件里的内容写入本地数据库。 在生产环境中,MySQL主从复制都是异步方式同步,即不是实时同步数据。 MySQL主从复制原理 1.主从复制中的线程及文件 主库线程: Dump(IO) thread(也成为 IO 线程):在复制过程中,主库发送二进制日志的线程 从库线程: IO thread:向主库请求binlog日志,并且接受binlog日志的线程 SQL thread:专门用于请求binlog日志的线程,将其内容写入数据库 主库的文件: binlog文件:主库的binlog日志 从库的文件: relaylog:中继日志,存储请求过来的binlog日志 master.info: 从库连接主库的重要参数(user,password,ip,port) 记录最后一次获取过主库的binlog日志的位置点 relay-log.info 存储从库SQL线程已经执行过的relaylog日志位置点 Mysql主从复制图解: 从库 读取 master.info 文件中的信息(连接参数,最后一次请求binlog的位置点),向 主库 请求binlog文件,