14.MySQL读写分离方案Atlas
[toc]
中间件Atlas的概述
Atlas简介Atlas是由 Qihoo 360公司Web平台部基础架构团队开发维护的一个基于MySQL协议的数据中间层项目。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。它在MySQL官方推出的MySQL-Proxy 0.8.2版本的基础上,修改了大量bug,添加了很多功能特性。
Atlas主要功能
读写分离
从库负载均衡
IP过滤
自动分表
DBA可平滑上下线DB
自动摘除宕机的DB
Atlas相对于官方MySQL-Proxy的优势
将主流程中所有Lua代码用C重写,Lua仅用于管理接口
重写网络模型、线程模型
实现了真正意义上的连接池
优化了锁机制,性能提高数十倍
Atlas的安装及配置Atlas安装
官方提供的Atlas有两种:
Atlas (普通) : Atlas-2.2.1.el6.x86_64.rpm
tlas (分表) : Atlas-sharding_1.0.1-el6.x86_64.rpm
安装流程
1234567# 在数据库服务器下载Atlaswget h ...
13.MySQL高可用方案MHA
[toc]
MHA的简介作者简介松信嘉範:
MySQL/Linux专家
2001年索尼公司入职
2001年开始使用oracle
2004年开始使用MySQL
2006年9月-2010年8月MySQL从事顾问
2010年-2012年 DeNA
2012年~至今 Facebook
MHA的简介MHA能够在较短的时间内实现自动故障检测和故障转移,通常在10-30秒以内;在复制框架中,MHA能够很好地解决复制过程中的数据一致性问题,由于不需要在现有的replication中添加额外的服务器,仅需要一个manager节点,而一个Manager能管理多套复制,所以能大大地节约服务器的数量;另外,安装简单,无性能损耗,以及不需要修改现有的复制部署也是它的优势之处。
MHA还提供在线主库切换的功能,能够安全地切换当前运行的主库到一个新的主库中(通过将从库提升为主库),大概0.5-2秒内即可完成。
MHA由两部分组成:MHA Manager(管理节点)和MHA Node(数据节点)。MHA Manager可以独立部署在一台独立的机器上管理多个Master-Slave集群,也可以部署在一台Slave上。当 ...
12.MySQL的主从复制
[toc]
主从复制简介案例
2015年5月28日11时,12小时后恢复,损失:平均每小时106.48W$
规避风险的方案
高可用
辅助备份
分担负载
功能简介
复制是 MySQL 的一项功能,允许服务器将一个实例的更改复制到另一个实例。
主服务器将所有数据和结构更改记录到二进制日志中。
从属服务器从主服务器请求该二进制日志并在本地应用其内容。
IO:请求主库,获取上一次执行过的新的事件,并存放到relaylog
SQL:从relaylog中将sql语句翻译给从库执行

主从复制原理主从复制的前提
两台或两台以上的数据库实例
主库要开启二进制日志
主库要有复制用户
主库的server_id和从库不同
从库需要在开启复制功能前,要获取到主库之前的数据(主库备份,并且记录binlog当时位置)
从库在第一次开启主从复制时,时必须获知主库:ip,port,user,password,logfile,pos
IP:10.0.0.51
Port:3306
User:rep
Password:Help9090
logFile:mysql-bin.000002
Pos:120
...
11.MySQL的备份和恢复
[toc]
备份的原因
运维工作的核心
第一个是保护公司的数据.
第二个是让网站能7*24小时提供服务(用户体验)。
备份的意义
备份就是为了恢复。
尽量减少数据的丢失(公司的损失)
mysqldump做备份原理
逻辑备份,备份所有的SQL语句
如果表存在,则先删表
根据原有的表结构重新创建一张新表
锁表
所有数据会以INSERT的形式插入到表中
解锁
123456789101112131415161718DROP TABLE IF EXISTS `stu_name`;/*!40101 SET @saved_cs_client = @@character_set_client */;/*!40101 SET character_set_client = utf8 */;CREATE TABLE `stu_name` ( `id` int(11) DEFAULT NULL, `name` varchar(10) DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8;/*!40101 SET character_set_cli ...
10.MySQL日志管理
[toc]
MySQL日志简介
错误日志
作用:
记录mysql数据库的一般状态信息及报错信息,是我们对于数据库常规报错处理的常用日志。
123456789101112131415[ERROR] Could not use /application/mysql/data/slow.log for logging(error 2 - No such file or directory). Turning logging off for theserver process. To turn it on again: fix the cause, then eitherrestart the query logging by using "SET GLOBAL SLOW_QUERY_LOG=ON"or restart the MySQL server.# 服务没有启动ps -ef|grep mysqlnetstat -lntup# 启动并生成了socket但是位置不对[mysqld]socket=/xxx[mysql]socket=/xxx
默认位置:
源码安装 ...
1.MySQL基础入门
[toc]
MySQL简介MySQL概述数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。在计算机系统中,数据以二进制信息单元0,1的形式表示。
数据的定义: 数据是指对客观事件进行记录并可以鉴别的符号,是对客观事物的性质、状态以及相互关系等进行记载的物理符号或这些物理符号的组合。它是可识别的、抽象的符号。
数据库管理系统
DBMS
存数据
取数据
数据库管理系统类型
关系型数据库(RDBMS)
使用SQL语句管理数据库
互相关联的二维表组成
最大特点数据安全性方面强(ACID)
非关系型数据库(NoSQL)
不使用SQL语句管理数据库
一般来说由 Json格式
Key:Value 键值对
关系型数据库和非关系型数据库对比
时代特点对比:
web1.0时代
企业提供内容,用户浏览,所以关系型数据库够用,并发并不高,所以不需要nosql。
web2.0时代
核心是企业提供平台,用户参与提供内容,这个时代关系型数据 ...
2.NFS功能及配置
[toc]
NFS共享存储描述NFS是Network File System的缩写及网络文件系统。NFS主要功能是通过局域网络让不同的主机系统之间可以共享文件或目录。
NFS系统和Windows网络共享、网络驱动器类似, 只不过windows用于局域网, NFS用于企业集群架构中, 如果是大型网站, 会用到更复杂的分布式文件系统FastDFS,glusterfs,HDFS
NFS作用
实现多态服务器数据共享
实现多态服务器数据一致
NFS原理
用户进程访问NFS客户端,使用不同的函数对数据进行处理
NFS客户端通过TCP/IP的方式传递给NFS服务端。
NFS服务端接收到请求后,会先调用portmap进程进行端口映射。
nfsd进程用于判断NFS客户端是否拥有权限连接NFS服务端。
Rpc.mount进程判断客户端是否有对应的权限进行验证。
idmap进程实现用户映射和压缩
最后NFS服务端会将对应请求的函数转换为本地能识别的命令,传递至内核,由内核驱动硬件。
NFS架构图示
部署NFS服务NFS配置详解123456789rw # read write 客户端针对服务端的 ...
1.Rsync功能及配置
[toc]
Rsync功能描述是一款开源,多功能,全量或者增量本地,远程数据同步,适用于linux,unix ,windows,macOS
官网:https://rsync.samba.org/
全量备份将所有的数都进行一次备份
增量备份基于全量备份来说,只给新增的数据进行备份
常用端口123456789# rsync端口是873# 其他常见端口ssh 22telnet 23http 80ftp 21https 443rdp 3389
配置Rsync环境准备
外网
内网
主机
角色
10.0.0.31
172.16.1.31
nfs
rsync客户端
10.0.0.41
172.16.1.41
backup
rsync服务端
123456# rsync服务类型C/S类型# 详细说明C=client # 客户端S=service # 服务端
rsync选项12345678910111213141516# 常用选项rsync -avz# 选项-a 归档模式传输 = -rtopglD------------------------------------r ...
示例:Rsync、NFS、HTTP结合部署
[toc]
Rsync、NFS、http网页统一用户(多个模块)准备环境1234Rsync: backup服务器、nfs服务器NFS: web(1-2)服务器、nfs服务器backup服务器、nfs服务器、web(1-2)服务器
搭建Rsync
搭建Rsync服务端
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152# 打开backup服务器# 使用yum命令安装rsyncyum install -y rsync# 创建www组uid为600groupadd www -g 600# 创建www统一用户uid、gid均为600useradd www -u 600 -s /sbin/nologin -M -g 600# 创建backup和backup1mkdir /backup(1)#编辑配置文件vim /etc/rsyncd.confuid = wwwgid = wwwport = 873fake super = yesuse chroot = n ...
nginx常见问题
[toc]
Nginx多Server优先级问题描述在开始处理一个http请求时,nginx会取出header头中的Host变量,与nginx.conf中的每个server_name进行匹配,以此决定到底由哪一个server来处理这个请求,但nginx如何配置多个相同的server_name,会导致server_name出现优先级访问冲突。
演示实例123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104# 准备nginx对应的配置文件cat 1.conf 2.conf 3.confserver{ listen 80; server_name _; root /code/1; index index.html;}serve ...