mysql主从配置

配置MySQL5.7基于GTID的复制

邮差的信 提交于 2019-11-29 04:42:57
配置MySQL5.7基于GTID的复制 一、 安装前规划 1.1 大体架构规划如下 master 192.168.9.71:3306 Slave 192.168.9.72:3306 数据库搭建过程请参考《mysql5.7部署文档》 二、 主从复制搭建 2.1 创建同步用户repl(master上) grant replication slave on *.* to 'repl'@'%' identified by '123456'; flush privileges; 注:其中'repl'@'%'部分可以修改为'repl'@'xxx.xxx.xxx.*'或'repl'@'xxx.xxx.xxx.xxx'的形式,出于安全目的用以限制网段或IP访问(其中xxx为具体IP) 2.2 主库my.cnf添加同步参数 server_id=1 log-bin = /mysql/3306/binlog/bin.log #binlog 存放路径,需要根据实际情况修改 log_bin_index = /mysql/3306/binlog/bin.index max-binlog-size=209715200 expire-logs-days = 7 sync-binlog = 1 binlog_format="ROW" log_bin_trust_function_creators = 1

MySQL之存储引擎

不想你离开。 提交于 2019-11-29 01:44:00
MySQL之存储引擎 1.MySQL存储引擎介绍 MySQL中的数据用各种不同的技术存储在文件(或者内存)中。这些技术中的每一种技术都使用不同的存储机制、索引技巧、锁定水平并且最终提供广泛的不同的功能和能力。通过选择不同的技术,你能够获得额外的速度或者功能,从而改善你的应用的整体功能。 例如,如果你在研究大量的临时数据,你也许需要使用内存存储引擎。内存存储引擎能够在内存中存储所有的表格数据。又或者,你也许需要一个支持事务处理的数据库(以确保事务处理不成功时数据的回退能力)。 这些不同的技术以及配套的相关功能在MySQL中被称作存储引擎(也称作表类型)。 MySQL默认配置了许多不同的存储引擎,可以预先设置或者在MySQL服务器中启用。你可以选择适用于服务器、数据库和表格的存储引擎,以便在选择如何存储你的信息、如何检索这些信息以及你需要你的数据结合什么性能和功能的时候为你提供最大的灵活性。 选择如何存储和检索你的数据的这种灵活性是MySQL为什么如此受欢迎的主要原因。其它数据库系统(包括大多数商业选择)仅支持一种类型的数据存储。 遗憾的是,其它类型的数据库解决方案采取的“一个尺码满足一切需求”的方式意味着你要么就牺牲一些性能,要么你就用几个小时甚至几天的时间详细调整你的数据库。使用MySQL,我们仅需要修改我们使用的存储引擎就可以了 2.MySQL结构 MySQL架构总共四层

MySQL数据库设计规范

时光毁灭记忆、已成空白 提交于 2019-11-29 00:31:42
MySQL数据库设计规范 目录 1. 规范背景与目的 2. 设计规范 2.1 数据库设计 2.1.1 库名 2.1.2 表结构 2.1.3 列数据类型优化 2.1.4 索引设计 2.1.5 分库分表、分区表 2.1.6 字符集 2.1.7 程序DAO层设计建议 2.1.8 一个规范的建表语句示例 2.2 SQL编写 2.2.1 DML语句 2.2.2 多表连接 2.2.3 事务 2.2.4 排序和分组 2.2.5 线上禁止使用的SQL语句 1. 规范背景与目的 MySQL数据库与 Oracle、 SQL Server 等数据库相比,有其内核上的优势与劣势。我们在使用MySQL数据库的时候需要遵循一定规范,扬长避短。本规范旨在帮助或指导RD、QA、OP等技术人员做出适合线上业务的数据库设计。在数据库变更和处理流程、数据库表设计、SQL编写等方面予以规范,从而为公司业务系统稳定、健康地运行提供保障。 2. 设计规范 2.1 数据库设计 以下所有规范会按照【高危】、【强制】、【建议】三个级别进行标注,遵守优先级从高到低。 对于不满足【高危】和【强制】两个级别的设计,DBA会强制打回要求修改。 2.1.1 库名 【强制】库的名称必须控制在32个字符以内,相关模块的表名与表名之间尽量提现join的关系,如user表和user_login表。 【强制】库的名称格式:业务系统名称_子系统名

mysql储存引擎

浪尽此生 提交于 2019-11-28 23:56:45
1.储存引擎解释 首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点。     在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs、fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的。直观区别是,占用系统的空间大小与清晰程度可能不一样。 那么数据库表里的数据存储在数据库里及磁盘上和上述的视频格式及存储磁盘文件的系统格式特征类似,也有很多种存储方式。   但是对于用户和应用程序来说同样一张表的数据,无论用什么引擎来存储,用户能够看到的数据是一样的。不同储引擎存取,引擎功能,占用空间大小,读取性能等可能有区别。说白了,存储引擎就是在如何存储数据、提取数据、更新数据等技术方法的实现上,底层的实现方式不同,那么就会呈现出不同存储引擎有着一些自己独有的特点和功能,对应着不同的存取机制。   因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即:对表的存储、操作等的实现方法不同),表是什么,表本质上就是磁盘上的文件。   其实MySQL支持多种存储引擎

mysql主从复制运行原理及配置

▼魔方 西西 提交于 2019-11-28 23:19:00
使用场景 主数据库服务器故障后,可切换到从数据库继续工作 不影响主数据库的性能的工作,比如在从数据库作备份、数据统计等工作 常见问题及解决方案 复制延迟 可以利用同步复制机制(Semi-sync)解决,但是影响性能,当主机写入时,确认更新已经同步到备机之后,再返回写操作成功。 主从架构是一种高可用的解决方案,并不是处理高并发的,处理高并发可利用redis缓存来解决。 运行原理 从一个mysql instance(master)复制到另一个mysql instance(slave)的过程我们称之为mysql主从复制。在mysql复制的过程中,主要由3个线程完成sql线程和IO线程在slave,另一个IO线程在matser。 mysql复制的基本过程如下: slave上的IO线程连接master,请求日志文件指定位置或者最开始的位置之后的日志内容 master接收请求,并通过负责复制的IO线程根据请求的信息读取日志文件内容,将日志信息和master端的Binary Log文件的名称以及在Binary Log中的位置返回给slave的IO线程 slaveIO线程接收到信息后,将日志内容写到Relay Log文件最末尾,并将master端的bin-log的文件名和位置记录到master-info文件中。下次请求时可告知master需要请求的位置 slave的sql线程检测到Relay

记录mysql5.7源码安装流程

时间秒杀一切 提交于 2019-11-28 23:17:25
今天给别人的linux服务器安装mysql,选择使用源码安装的,在安装的过程中,还是遇到了一些问题,主要是在一下几点:1、cmake的时候,有些参数配置的路径老是报不存或是提示你查看CMakeOutput.log等日志文件。2、mysql 编译和安装完成后,初始化后,启动失败。这个就看mysql错误日子就好了,今天我就老是初始化失败。主要原因是mysql配置文件my.cnf中的basedir、datadir还有日志文件路径的问题,主要体现在权限和文件是否存在的问题。 现在就把主要流程记录下来,方便自己和朋友之后再次需要源码安装mysql时能够得心应手的完成。 主要流程: 1、环境配置:yum -y install git gcc gcc-c++ libstdc++-devel ncurses-devel cmake 2、准备 boost_1_59_0 sudo ./bootstrap.sh sudo ./b2 --buildtype=complete install --prefix=/usr/local/boost 3、准备mysql 编译脚本等 cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql ...........{你自己的配置参数} 4、编译与安装 make && make install 5、进入配置mysql a、编辑

mysql_mha之rpm

生来就可爱ヽ(ⅴ<●) 提交于 2019-11-28 22:58:28
MHA(Master HA)是一款开源的MySQL的高可用程序,它为MySQL主从复制架构提供了automating master failover 功能。MHA在监控到master节点故障时,会提升其中拥有最新数据的slave节点成为新的master节点,在此期间,MHA会通过与其它从节点获取额外信息来避免一致性方面的问题。MHA还提供了master节点的在线切换功能,即按需切换master/slave节点。 相较于其它HA软件,MHA的目的在于维持MySQL Replication中Master库的高可用性, 其最大特点是可以修复多个Slave之间的差异日志,最终使所有Slave保持数据一致,然后从中选择一个充当新的Master,并将其它Slave指向它 。 (1)从宕机崩溃的master保存二进制日志事件(binlog events); (2)识别含有最新更新的slave; (3)应用差异的中继日志(relay log)到其他的slave; (4)应用从master保存的二进制日志事件(binlog events); (5)提升一个slave为新的master; (6)使其他的slave连接新的master进行复制; 环境 :A主机/B主机1/B主机2/B主机3/mha_manager A:192.168.13.150 B:192.168.13.151 B:192.168

MySQL主从复制

余生长醉 提交于 2019-11-28 22:39:35
1. 简介   随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求。此时数据库集群就很好的解决了这个问题。采用MySQL分布式集群,能够搭建一个高并发、负载均衡的集群服务器。在此之前我们必须要保证每台MySQL服务器里的数据同步。数据同步我们可以通过MySQL内部配置就可以轻松完成,主要有主从复制和主主复制。   MySQL数据库自身提供的主从复制功能可以方便的实现数据的多处自动备份,实现数据库的拓展。多个数据备份不仅可以加强数据的安全性,通过实现读写分离还能进一步提升数据库的负载性能。 下图就描述了一个多个数据库间主从复制与读写分离的模型(来源网络):   在一主多从的数据库体系中,多个从服务器采用异步的方式更新主数据库的变化,业务服务器在执行写或者相关修改数据库的操作是在主服务器上进行的,读操作则是在各从服务器上进行。如果配置了多个从服务器或者多个主服务器又涉及到相应的负载均衡问题,关于负载均衡具体的技术细节还没有研究过,今天就先简单的实现一主一从的主从复制功能。 1.1 为什么要做主从复制? 读写分离。在业务复杂的系统中,有这么一个情景,有一句sql语句需要锁表,导致暂时不能使用读的服务,那么就很影响运行中的业务,使用主从复制,让主库负责写,从库负责读,这样,即使主库出现了锁表的情景,通过读从库也可以保证业务的正常运作。 做数据的热备

MySQL之主从同步

早过忘川 提交于 2019-11-28 22:24:04
一、主从同步概念 1.1 什么是主从同步? MySQL 主从同步是指将数据从一个 MySQL 数据库服务器主节点复制到一个或多个从节点。 MySQL 默认采用异步复制方式,这样从节点不用一直访问主服务器来更新自己的数据,数据的更新可以在远程连接上进行,从节点可以复制主数据库中的所有数据库或者特定的数据库,或者特定的表。 1.2 主从同步使用场景 数据备份 读写分离 高可用 1.3主从同步原理 MySQL 主从同步是基于拷贝 binlog日志 来实现主从复制。 二、准备环境 1) 安装docker 2) 拉取 MySQL 镜像 [root@VM_0_15_centos conf]# docker pull mysql:5.7 3) 创建 docker 自定义网络段 [root@VM_0_15_centos /]# docker network create --subnet=192.168.0.0/16 mynetwork 4) 创建三个 MySQL 数据库容器 [root@VM_0_15_centos data]# docker run -di --name=my_01 --net mynetwork --ip 192.168.0.2 -p 33306:3306 -v /data/mysql/my1/conf:/etc/mysql/conf.d -v /data/mysql/my1

MySQL存储引擎介绍

拟墨画扇 提交于 2019-11-28 22:23:55
目录 一 存储引擎解释 二 MySQL存储引擎分类 三 存储引擎的使用 一 存储引擎解释   首先确定一点,存储引擎的概念是MySQL里面才有的,不是所有的关系型数据库都有存储引擎这个概念,后面我们还会说,但是现在要确定这一点。     在讲清楚什么是存储引擎之前,我们先来个比喻,我们都知道录制一个视频文件,可以转换成不同的格式,例如mp4,avi,wmv等,而存在我们电脑的磁盘上也会存在于不同类型的文件系统中如windows里常见的ntfs、fat32,存在于linux里常见的ext3,ext4,xfs,但是,给我们或者用户看懂实际视频内容都是一样的。直观区别是,占用系统的空间大小与清晰程度可能不一样。 那么数据库表里的数据存储在数据库里及磁盘上和上述的视频格式及存储磁盘文件的系统格式特征类似,也有很多种存储方式。   但是对于用户和应用程序来说同样一张表的数据,无论用什么引擎来存储,用户能够看到的数据是一样的。不同储引擎存取,引擎功能,占用空间大小,读取性能等可能有区别。说白了,存储引擎就是在如何存储数据、提取数据、更新数据等技术方法的实现上,底层的实现方式不同,那么就会呈现出不同存储引擎有着一些自己独有的特点和功能,对应着不同的存取机制。   因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即:对表的存储、操作等的实现方法不同),表是什么