mysql主从配置

大型网站的负载均衡器、db proxy和db

倾然丶 夕夏残阳落幕 提交于 2019-11-30 11:33:11
本文主要分析网站后台架构中的负载均衡器,企业常用的硬件负载均衡器软件负载均衡器、数据库代理服务器和数据库。 1.1 负载均衡 在大型网站部署中,负载均衡至少有三层部署。第一层为web server或者缓存代理之上的负载均衡,第二层为数据库之上的负载均衡,第三层为存储设备之上的负载均衡。 在第一层部署中,最常使用的是硬件负载均衡器有F5 BIG-IP、Citrix NetScaler、Radware、Cisco CSS、Foundry等产品。这些产品价格不菲,高达几十万人民币。在中国大陆,采用F5Network公司的BIG-IP负载均衡交换机的网站有新浪网、雅虎、百度、搜狐、凤凰网、央视国际、中华英才网、猫扑、畅游等。之前淘宝采用 NetScaler作为其硬件负载均衡器。后来用软件负载均衡器LVS和HAproxy混合使用来代替硬件负载均衡器。硬件负载均衡器可以提供OSI参考模型的第四/七层进行负载均衡。在第七层实现负载均衡的原理是,通过检查流经的HTTP报头,根据报头内的信息来执行负载均衡任务。在第四层(网络层)实现负载均衡的DR模式的原理是,通过更改请求包的目的MAC地址来进行负载均衡。 在第一层部署中,最常用的软件负载均衡器为LVS(LinuxVirtual Server)和HAproxy。其中LVS采用基于IP负载均衡技术和基于内容请求分发技术

ubuntu14.04 LTS下Atlas2.2安装说明

落爺英雄遲暮 提交于 2019-11-30 11:07:13
准备工作 本文档是在ubuntu14.04下安装 2.2版本的atlas 。 官方文档很重要,请熟读。 wiki地址: https://github.com/Qihoo360/Atlas/wiki QQ 群:326544838(可以加此群进行咨询) 1. 所用软件: Ubuntu14.04 LTS版 2. 使用服务器地址:192.168.1.244 3. ubuntu14.04 对应的 安装 文件选择 Atlas-2.2-debian7.0-x86_64.deb 4. 主库为192.168.1.160,从库为192.168.1.116,192.168.1.149,192.168.236 2 Atlas 的整体架构 Atlas是由 Qihoo 360, Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它是在mysql-proxy 0.8.2版本的基础上,对其进行了优化,增加了一些新的功能特性。360内部使用Atlas运行的mysql业务,每天承载的读写请求数达几十亿条。 Atlas 是一个位于应用程序与MySQL之间中间件。在后端DB看来,Atlas相当于连接它的客户端,在前端应用看来,Atlas相当于一个DB。Atlas作为服务端与应用程序通讯,它实现了MySQL的客户端和服务端协议,同时作为客户端与MySQL通讯。它对应用程序屏蔽了DB的细节

【10】MySQL:MyCAT 分布式架构

人盡茶涼 提交于 2019-11-30 10:20:15
写在前面的话 在学习的索引的时候,有提到,当数据表数据达到 800W 的时候,索引的性能就开始逐步下降。对于一个公司而言,主要业务数据表达到 1000W 都很容易。同时这张表一般都是业务常用的表,操作还比较频繁。所以为了提升用户体验,需要采用另外的方式对数据库进行优化,那就是分库分表。而 MyCAT 就是能够帮助我们管理分库分表的这样一个中间件。 MyCAT 环境基础架构准备 架构图 1: 架构图 2: 【1】搭建基础环境: 1. 在 db01 :192.168.100.111 上面安装数据库多实例: # 创建基础目录 mkdir -p /data/{data,logs,backup,conf}/mysql-33{07,08,09,10} mkdir -p /data/logs/mysql-33{07,08,09,10}/{bin-log,slow-log,error-log,relay-log} mkdir -p /data/packages/mysql mkdir -p /data/services # 添加用户 useradd -s /sbin/nologin mysql # 修改目录权限 chown -R mysql.mysql /data/logs/mysql-33* chown -R mysql.mysql /data/data/mysql-33* # 清理默认配置文件

数据库中间件详解 | 珍藏版

天涯浪子 提交于 2019-11-30 10:05:26
1 数据库拆分过程及挑战 互联网当下的数据库拆分过程基本遵循的顺序是:垂直拆分、读写分离、分库分表(水平拆分)。每个拆分过程都能解决业务上的一些问题,但同时也面临了一些挑战。 1.1 垂直拆分 对于一个刚上线的互联网项目来说,由于前期活跃用户数量并不多,并发量也相对较小,所以此时企业一般都会选择将所有数据存放在一个数据库 中进行访问操作。举例来说,对于一个电商系统,其用户模块和产品模块的表刚开始都是位于一个库中。 其中:user、user_account表属于用户模块,product_category、product表属于产品模块。 刚开始,可能公司的技术团队规模比较小,所有的数据都位于一个库中。随着公司业务的发展,技术团队人员也得到了扩张,划分为不同的技术小组,不同的小组负责不同的业务模块。例如A小组负责用户模块,B小组负责产品模块。此时数据库也迎来了第一次拆分:垂直拆分。 这里的垂直拆分,指的是将一个包含了很多表的数据库,根据表的功能的不同,拆分为多个小的数据库,每个库包含部分表。下图演示将上面提到的db_eshop库,拆分为db_user库和db_product库。 通常来说,垂直拆分,都是根据业务来对一个库中的表进行拆分的。关于垂直拆分,还有另一种说法,将一个包含了很多字段的大表拆分为多个小表,每个表包含部分字段,这种情况在实际开发中基本很少遇到。

史上最全大厂Mysql面试题总结

心不动则不痛 提交于 2019-11-30 07:01:11
今天跟大家分享下大厂Mysql面试题的知识。 1 MySQL的复制原理以及流程 基本原理流程,3个线程以及之间的关联; 主:binlog线程——记录下所有改变了数据库数据的语句,放进master上的binlog中; 从:io线程——在使用start slave 之后,负责从master上拉取 binlog 内容,放进 自己的relay log中; 从:sql执行线程——执行relay log中的语句; 2 MySQL中myisam与innodb的区别,至少5点 (1)、问5点不同; 1>.InnoDB支持事物,而MyISAM不支持事物 2>.InnoDB支持行级锁,而MyISAM支持表级锁 3>.InnoDB支持MVCC, 而MyISAM不支持 4>.InnoDB支持外键,而MyISAM不支持 5>.InnoDB不支持全文索引,而MyISAM支持。 (2)、innodb引擎的4大特性 插入缓冲(insert buffer),二次写(double write),自适应哈希索引(ahi),预读(read ahead) (3)、2者selectcount(*)哪个更快,为什么 myisam更快,因为myisam内部维护了一个计数器,可以直接调取。 3 MySQL中varchar与char的区别以及varchar(50)中的50代表的涵义 (1)、varchar与char的区别

MySQL不停机添加从库

限于喜欢 提交于 2019-11-30 05:19:12
背景 主节点上线运行了一段时间后,数据量日益增大,故需要添加slave节点来更好地支撑业务的发展。但是,此时也有一定量的用户了,所以不能把主节点停机,而是在不停机的情况下添加slave节点,具体实现方法如下: 环境 防火墙和selinux都关闭 master slave IP 192.168.7.71 192.168.7.72 主机名 master01 slave01 OS CentOS7 CentOS7 MySQL版本 5.7.28 5.7.28 操作步骤 1.在master上对数据库做完全备份,并且拷贝到slave节点 1.1 查看当前master上的数据库 mysql> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | db1 | | db2 | | mysql | | performance_schema | | sys | +--------------------+ 1.2 使用mysqldump工具进行全库备份 [root@master01 ~]#mysqldump -p -A -F --single-transaction --master-data=1 > /backup/fullbackup_`date +%F_

Linux Centos 7 - MySQL 5.7离线安装

大城市里の小女人 提交于 2019-11-30 04:17:07
内部网络通过离线包的方式进行安装。 一、下载 下载地址:https://dev.mysql.com/downloads/mysql/ 进入页面后,点击右侧链接。 下载对应版本。 通过xftp6等工具上传到服务器上。 二、安装和配置 2.1 查询并卸载系统自带的Mariadb rpm -qa | grep mariadb rpm -e --nodeps 文件名 2.2 建立用户组和用户 检查mysql组合用户是否存在 # 检查mysql组和用户是否存在,如无则创建 cat /etc/group | grep mysql cat /etc/passwd | grep mysql 建立1个mysql用户和mysql用户组 # 添加mysql用户组 groupadd mysql # 添加mysql用户 useradd -g mysql mysql -d /home/mysql # 修改mysql用户的登陆密码 passwd mysql 2.3 创建临时目录、数据目录和日志目录 /home/mysql/3306/data /home/mysql/3306/log /home/mysql/3306/tmp 2.4 解压并修改权限 将下载的mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz安装包上传至服务器/usr/local目录下 # 再解压缩 tar

centos 6.5设置mysql主从同步过程记录

最后都变了- 提交于 2019-11-30 03:34:28
在centos 6.5上设置了mysql主从功能,记录一下。 服务器1(主) IP:192.168.1.201 系统版本:centos 6.5 mysql版本:mysql 5.5 服务器2(从) IP:192.168.1.202 系统版本:centos 6.5 mysql版本:mysql 5.5 这里两台服务器的系统版本和mysql版本均一致,这也是官方推荐的做法。在开始设定之前,最好能确保主库和从库一致。 1、主库和从库创建同步用户 mysql> grant replication slave, replication client on *.* to repl@'192.168.1.%' identified by '密码'; 这里讲主从同步限制在局域网内。 2、主库配置 编辑mysql配置文件/etc/my.cnf,设定如下配置: log-bin=mysql-bin binlog_format=mixed server-id = 1 binlog_format这里选用混合模式,也是mysql 5.5安装包里的my.cnf默认的值。 3、从库配置 编辑mysql配置文件/etc/my.cnf,设定如下配置: log-bin=mysql-bin binlog_format=mixed server-id = 2 relay_log = /var/lib/mysql/mysql

MySQL数据库基础(3)多实例应用实战

可紊 提交于 2019-11-30 03:32:57
一、什么是MySQL多实例?     简单的说,就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,这些服务进程通过不同的socket监听不同的服务端口来提供各自的服务。     共用一套MySQL安装程序     使用不同(也可以相同)的my.cnf配置文件、启动程序、数据文件     作个比喻,MySQL多实例相当于房子的多个卧室一样,每个势力可以看做一个卧室,整个服务器就是一套房子。逻辑上是独立的,但是互相会有影响。 二、多实例的作用与问题     1、有效利用服务器资源         当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。     2、节约服务器资源         当公司资金紧张,但是数据库又需要各自尽量独立提供服务,而且,需要主从同步等技术时,多实例就再好不过了。     3、资源互相抢占问题         当某个服务实例并发很高或者有慢查询时,整个实例会消耗整个更多的内存、CPU、磁盘IO资源,导致服务器上的其他的实例提供服务的质量下降。这就相当于大家住在一个房子的不同卧室一样,早晨起来上班,都要刷牙、洗脸等,这样卫生间就会被长期占用,其它人就要等待一样的道理。 三、MySQL多实例生产应用场景     1、资金紧张型公司的选择     2、并发访问不是特别大的业务     3

Mysql - 高可用方案之MHA

风流意气都作罢 提交于 2019-11-30 03:20:25
一、概述 本文将介绍mysql的MHA(Master High Availability)方案,官方文档地址: https://github.com/yoshinorim/mha4mysql-manager/wiki/Installation MHA架构由三台mysql服务器(一主两从)和一台manager节点组成,当主库发生故障时,manager能自动从众多从库中选择一台slave log最新的从库转变成主库,然后将其它所有节点重新指向新的主库。将丢失数据的概率降至最低。 写库故障发生前: 写库故障发生后: 二、节点介绍 本次实验采用4台虚拟机,操作系统版本Centos6.10,mysql版本5.7.25 manager 10.40.16.60 管理 管理集群 node1 10.40.16.61 主库 提供写服务 node2 10.40.16.62 从库 提供读服务 node3 10.40.16.63 从库 提供读服务 还须预留1个vip,现在不用配置,这里先提一下,后面的安装步骤用得到 10.40.16.71 写vip 三、安装 1. 配置一主二从 其中node1是主库,node2和node3是从库。具体的复制搭建这里就省略,要是这都不会,那么该文章对你就没意思了。 注明:集群中使用的复制账号为repl,密码是'123456' node1(10.40.16.61) (root