mysql读写分离

MySQL(一)- 数据库引擎

ⅰ亾dé卋堺 提交于 2019-11-28 14:53:16
MySQL DBMS - MySQL Database Management System。数据库管理系统。 MySQL数据库引擎 ISAM (Indexed Sequential Access Method) isam是一个存在时间较长的数据表格管理方法,被设计的时候就考虑到数据库被查询的次数要远远大于插入的次数,因此isam执行读取的操作很快,而且不占用大量的内存和存储资源。但是,isam也有两个比较致命不足,不支持事务,不能容错。如果硬盘崩溃了,数据无法恢复,因此在重要的程序中使用isam的时候,需要经常备份实时数据,通过其复制特性 ,MySQL能够支持这样的备份应用程序。 MyISAM MyISAM 是 MySQL的 ISAM扩展格式(MySQL5.5之前版本是缺省数据库引擎)数据库引擎。除了提供ISAM里面没有的索引和字段管理功能,还提供了表的锁定机制来优化并发的读写操作,其代价就是需要经常使用 optimize table 命令来恢复被机制所浪费的空间。工具有 修复数据库文件的 MyISAMCHK,恢复浪费空间的MyISAMPACK。不足:不支持事务;数据越多,写操作就会越慢(需要维护数据和索引信息)。   如果使用该数据库引擎,会生成三个文件:   .frm:表结构信息   .MYD:数据文件   .MYI:表的索引信息 InnoDB

ProxySQL读写分离代理

强颜欢笑 提交于 2019-11-28 14:49:17
实现ProxySQL反向代理Mysql读写分离 简介 ProxySQL相当于小型的数据库,在磁盘上有存放数据库的目录;ProxySQL用法和mysql相似 启动ProxySQL后会有两个监听端口; 6032:ProxySQL的管理端口 6033:ProxySQL对外提供服务的端口 注意:ProxySQL区分主从节点,是通过主从服务器配置文件中的read_only来区分的;哪个服务器配置文件中有read_only,哪台服务器就是从节点,所以从节点必须加read_only选项 ProxySQL下载地址 实现ProxySQL代理最少准备4台机器 https://github.com/sysown/proxysql/releases/tag/v2.0.8 主节点配置: [root@master ~]# vim /etc/my.cnf [mysqld] server-id=17 log-bin [root@master ~]# systemctl restart mariadb [root@master ~]# mysql -e 'grant replication slave on *.* to repluser@"192.168.38.%" identified by "centos";' #授权并且创建用于主从同步的账号 [root@master ~]# mysql -e 'grant

mysql面试相关

旧城冷巷雨未停 提交于 2019-11-28 11:07:19
1、列举常见的关系型数据库和非关系型都有那些? 常见关系型数据库:mysql oracle db2 非关系型数据库:mongodb redis 2、MySQL常见数据库引擎及比较? 常用引擎: myisam:不支持事务,支持表锁 innodb:支持事务,支持行锁和表锁 3、简述数据三大范式? 第一:确保每列保持原子性,即每个字段必须是不可拆分的最小单元 例如:创建一个地址的字段时,就应该将其划分为省市区这三个字段,这就满足了上述的原子性。 第二:表中的每列都和主键相关,一个表里只能存在一种数据,不可把多种数据保存在同一张数据库表中。 例如:即订单里存在客户和商品的信息,建议将客户和商品的数据拆分开 即创建两张表 ,一个放订单和客户的信息,一个放订单和商品的信息! 第三:确保每列都和主键直接相关。而不是间接相关。 例如:订单数据表,将客户编号作为一个外键关联字段和订单表建立联系。 而不可以在订单表中添加客户的其他信息。(例如姓名,公司等) 4、什么是事务?MySQL如何支持事务? 是应用程序中一系列严密的操作,所有操作必须成功完成,否则该事务中每个操作都会被撤销。 mysql的事务:存在4个特性:acid 保证数据的安全 start transaction: try: update db set money=100 where name='erha'; update db set

什么是主从复制呢?(详细版)

瘦欲@ 提交于 2019-11-28 08:19:33
1.MySQL主从复制入门 首先,我们看一个图: 影响MySQL-A数据库的操作,在数据库执行后,都会写入本地的日志系统A中。 假设,实时的将变化了的日志系统中的数据库事件操作,在MYSQL-A的3306端口,通过网络发给MYSQL-B。 MYSQL-B收到后,写入本地日志系统B,然后一条条的将数据库事件在数据库中完成。 那么,MYSQL-A的变化,MYSQL-B也会变化,这样就是所谓的MYSQL的复制,即MYSQL replication。 在上面的模型中,MYSQL-A就是主服务器,即master,MYSQL-B就是从服务器,即slave。 日志系统A,其实它是MYSQL的日志类型中的二进制日志,也就是专门用来保存修改数据库表的所有动作,即bin log。【注意MYSQL会在执行语句之后,释放锁之前,写入二进制日志,确保事务安全】 日志系统B,并不是二进制日志,由于它是从MYSQL-A的二进制日志复制过来的,并不是自己的数据库变化产生的,有点接力的感觉,称为中继日志,即relay log。 可以发现,通过上面的机制,可以保证MYSQL-A和MYSQL-B的数据库数据一致,但是时间上肯定有延迟,即MYSQL-B的数据是滞后的。 【即便不考虑什么网络的因素,MYSQL-A的数据库操作是可以并发的执行的,但是MYSQL-B只能从relay log中读一条,执行下。因此MYSQL

MySQL读写分离

↘锁芯ラ 提交于 2019-11-28 07:55:39
Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。 因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。 读写分离应用: mysql-proxy:Oracle,https://downloads.mysql.com/archives/proxy/ Atlas:Qihoo,https://github.com/Qihoo360/Atlas/blob/master/README_ZH.md dbproxy:美团,https://github.com/Meituan-Dianping/DBProxy Cetus:网易乐得,https://github.com/Lede-Inc/cetus Amoeba:https://sourceforge.net/projects/amoeba/ Cobar:阿里巴巴,Amoeba的升级版 Mycat:基于Cobar, http://www.mycat.io/ ProxySQL:https://proxysql.com/ ProxySQL ProxySQL:

巨杉学习笔记 | SequoiaDB MySQL导入导出工具使用实战

十年热恋 提交于 2019-11-28 05:21:31
本文来自社区用户投稿,感谢这位小伙伴的技术分享 巨杉数据库架构简介 巨杉数据库作为分布式数据库是计算和存储分离架构,由数据库实例层和存储引擎层组成的。存储引擎层负责数据库核心功能比如数据读写存储以及分布式事务管理。数据库实例层也就是这里的的SQL层负责把应用SQL请求处理后发存储引擎层处理,并且把存储引擎层响应结果反馈给应用层。支持结构化实例比如MySQL实例/PG实例/spark实例,也支持非结构化实例比如 Json实例/S3对象存储实例/PosixFs实例等等。这种架构支持的实例类型比较多,方便从传统数据库无缝迁移到巨杉数据库,减小了开发学习成本,之前也跟数据库圈同行交流,他们对架构也是十分认可。 这里的SQL层采用的是MySQL实例,存储引擎层是有三个数据节点和协调节点编目节点组成。其中数据节点就是用来存储数据的,协调节点不存储数据,是用来把MySQL的请求进行路由分发到数据库节点。编目节点用来存储集群的系统信息比如用户信息/分区信息等等。这里用一个容器来模拟一个物理机或云虚拟机,这里设置的是MySQL实例在一个容器里,编目和节点和协调节点放在了一个容器,三个数据节点分别放在一个容器,三个数据节点构成了三个数据组,每个数据组三个副本。Web应用的海量数据是通过分片切分的方式分散给不同的数据节点,像这里的数据ABC通过分片打散到三台机器。

Linux中mysql5.7主从配置

戏子无情 提交于 2019-11-28 03:51:26
MySQL主从配置(两台Linux之间) 简介 Linux下MySQL数据库的主从同步用来实现读写分离。主数据库进行数据的插入,删除与更新;从数据库专门用来查询操作,缓解数据库的压力。让运行海量数据的时候无论是从速度还是效率上都大大提高,Mysql的主从复制至少是需要两个Mysql的服务,当然Mysql的服务是可以分布在不同的服务器上,也可以在一台服务器上启动多个服务。 主从同步原理 一个异步复制过程,从master复制到slave,由三个线程来完成,其中sql线程和IO线程在slave端,另一个IO线程在master端,要实现MySQL的replication首先需要打开master端的二进制log功能 (1) master 将操作记录到二进制日志(binary log)中; (2)master有一个I/O线程将二进制日志发送到slave; (3) slave IO 线程 将master的binary log events读写到它的中继日志(relay log); (4) slave SQL进程读取中继日志,将重做记录数据到数据库中。 结构图 环境准备 Linux版本:CentOS Linux release 7.6.1810 (Core) MySQL安装包:mysql-5.7.27-1.el7.x86_64.rpm-bundle.tar 主数据库:106.53.73.200

面试题总结:可能是全网最好的MySQL重要知识点

为君一笑 提交于 2019-11-28 03:17:20
标题有点标题党的意思,但希望你在看了文章之后不会有这个想法——这篇文章是作者对之前总结的 MySQL 知识点做了完善后的产物,可以用来回顾MySQL基础知识以及 备战MySQL常见面试问题 。 什么是MySQL? MySQL 是一种关系型数据库,在Java企业级开发中非常常用,因为 MySQL 是开源免费的,并且方便扩展。阿里巴巴数据库系统也大量用到了 MySQL,因此它的稳定性是有保障的。MySQL是开放源代码的,因此任何人都可以在 GPL(General Public License) 的许可下下载并根据个性化的需要对其进行修改。MySQL的默认端口号是 3306 。 事务相关 什么是事务? 事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务最经典也经常被拿出来说例子就是转账了。假如小明要给小红转账1000元,这个转账会涉及到两个关键操作就是:将小明的余额减少1000元,将小红的余额增加1000元。万一在这两个操作之间突然出现错误比如银行系统崩溃,导致小明余额减少而小红的余额没有增加,这样就不对了。事务就是保证这两个关键操作要么都成功,要么都要失败。 事物的四大特性(ACID)介绍一下? 原子性: 事务是最小的执行单位,不允许分割。事务的原子性确保动作要么全部完成,要么完全不起作用; 一致性: 执行事务前后,数据保持一致,多个事务对同一个数据读取的结果是相同的; 隔离性:

mysql01

眉间皱痕 提交于 2019-11-28 03:14:05
mysql的安装与配置 安装centos6.9 网卡设置 1 cd /etc/sysconfig/network-scripts 2 vim ifcfg-eth0 3 onboot yes 4 DNS1=8.8.8.8 service network restart mysql的安装 1.http://dev.mysql.com/downloads/repo/yum/2.yum localinstall mysql57-community-release-el6-11.noarch.rpm 3.yum -y install mysql-community-server 重启mysql服务 service mysqld start 第一次登陆从log日志中取得随机密码 1 more /var/log/mysqld.log 修改密码的复杂度 1 修改密码的复杂度 2 set global validate_password_policy=0; 3 修改密码的长度 4 set global validate_password_length=1; 5 6 alter user 'root'@'localhost' identified by 'root'; 其他操作 1 创建用户 2 create user 'test'@'%' identified by 'test'; 3 4

mysql主从

我与影子孤独终老i 提交于 2019-11-28 01:15:29
mysql主从 1. 主从简介 1.1主从作用 实时灾备,用于故障切换 读写分离,提供查询服务 备份,避免影响业务 1.2主从形式 一主一从 主主复制—设置互斥 一主多从—扩展系统读取性能,因为读是从库读取的 多主一从—5.7开始支持 联级复制 如下图所示: 2. 主从复制原理 主从复制步骤: 主库将所有的写操作记录到binlog日志中并生成一个log dump线程,将binlog日志传给从库的I/O线程 从库生成两个线程,一个I/O线程,一个SQL线程 I/O线程去请求主库的binlog,并将得到的binlog日志写到relay log(中继日志)文件中 SQL线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,达到最终数据一致的目的 3. 主从复制配置 主从复制配置步骤: 确保从数据库和主数据库的数据一样 在主数据库里创建一个同步账号授权给数据库使用 配置主数据库(修改配置文件) 配置从数据库(修改配置文件) 需求: 搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,主服务器进行写操作,从服务器进行读操作 环境说明: 数据库角色 IP 应用与系统版本 有无数据 主数据库 192.168.176.111 centos7/redhat7 mysql-5.7 有数据 从数据库 192.168.176.112 centos7/redhat7