MySQL数据库_ProxySQL实验

实验:ProxySQL

  1. 要怎么做呢,来看图

实验开始

master: 192.168.99.102

  1. 修改配置文件
  1. 启动之
  1. 创建帐号用于主从连接的

slave: 192.168.99.103

  1. 修改配置文件
  1. 启动之
  1. 连接主服务器

proxySQL:192.168.99.101

  1. 安装前还得配置下官方的yum源
    要不就自行下载安装:https://github.com/sysown/proxysql/releases
  1. 安装proxySQL
  1. 启动proxySQL
  1. 端口起来了,看看

[……]

继续阅读

MySQL数据库(二十)_压力测试

性能衡量指标与工具

  1. 数据库服务衡量指标:
    Qps:query per second
    Tps:transaction per second
  2. 压力测试工具:
    mysqlslap
    Sysbench:功能强大(github-sysbench)
    tpcc-mysql
    MySQL Benchmark Suite
    MySQL super-smack
    MyBench

MYSQL压力测试

Mysqlslap

Mysqlslap:来自于mariadb包,测试的过程默认生成一个mysqlslap的schema,生成测试表t1,查询和插入测试数据,mysqlslap库自动生成,如果已经存在则先删除。用–on[……]

继续阅读

MySQL数据库(十九)_MHA高可用集群

MySQL高可用

MMM

MMM: Multi-Master Replication Manager for MySQL,Mysql主主复制管理器是一套灵活的脚本程序,基于perl实现,用来对mysql replication进行监控和故障迁移,并能管理mysql Master-Master复制的配置(同一时间只有一个节点是可写的)

官网: http://www.mysql-mmm.org
https://code.google.com/archive/p/mysql-master-master/downloads

MHA

MHA:Master High Avail[……]

继续阅读

MySQL数据库(十八)_ProxySQL

MySQL读写分离

读写分离案例:

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/a[……]

继续阅读

MySQL数据库(十七)_MySQL复制

MySQL复制

扩展方式: Scale Up ,Scale Out

  1. MySQL的扩展
    读写分离
    复制:每个节点都有相同的数据集
    向外扩展
    二进制日志
    单向
  2. 复制的功用
    数据分布
    读取负载均衡
    数据库备份
    高可用和故障切换
    MySQL升级测试

一主一从

一个主服务器,一个从服务器

一主多从

一个主服务器,多个从服务器

主从复制原理

要使用主从复制,需开启二进制日志功能。主服务器有数据更新,会写入二进制日志,由slave服务线程通过网络传给从服务器,从服务器使用io线程来处理写入从服务器的中继日志,SQL线程从中继日志获取写到数据库中。
2个日志[……]

继续阅读

MySQL数据库(十六)_备份工具:xtrabackup

xtrabackup 备份工具

官网:https://launchpad.net/percona-xtrabackup
percona-server
InnoDB –> XtraDB

percona提供的mysql数据库备份工具,唯一开源的能够对innodb和xtradb数据库进行热备的工具
手册:https://www.percona.com/doc/percona-xtrabackup/LATEST/index.html

  • 特点:
    1. 备份还原过程快速、可靠
    2. 备份过程不会打断正在执行的事务
    3. 能够基于压缩等功能节约磁盘空间和流量
    4. 自动实现备份检验
    5. 开源,免费
  • 4个工具(2.2版本[……]

    继续阅读

MySQL数据库(十五)_备份与恢复

备份和恢复

  1. 为什么要备份
    灾难恢复:硬件故障、软件故障、自然灾害、黑客攻击、误操作测试等数据丢失场景
  2. 备份注意要点
    能容忍最多丢失多少数据
    恢复数据需要在多长时间内完成
    需要恢复哪些数据

一定要做还原测试,用于测试备份的可用性, 还原演练

  1. 备份时需要考虑的因素
    温备的持锁多久
    备份产生的负载
    备份过程的时长
    恢复过程的时长
  2. 备份什么
    数据
    二进制日志、InnoDB的事务日志
    程序代码(存储过程、函数、触发器、事件调度器)
    服务器的配置文件

备份类型:

  1. 按不同类型分:
    • 冷备:读写操作均不可进行,数据库停止状态
    • 温备:读操作可执行;但写操作不可执行
    • 热备:读写操作均可执行,数据库运行状态
      MyI[……]

      继续阅读

MySQL数据库(十四)_日志

日志

  1. 事务日志 transaction log
  2. 错误日志 error log
  3. 通用日志 general log
  4. 慢查询日志 slow query log
  5. 二进制日志 binary log
  6. 中继日志 reley log

事务日志:

事务日志的写入类型为“追加”,因此其操作为“顺序IO”;通常也被称为:预写式日志 write ahead logging
事务日志文件: ib_logfile0, ib_logfile1
事务日志:transaction log

  1. 事务型存储引擎自行管理和使用,建议和数据文件分开存放
    redo log
    undo log
  2. Innodb事务日志相关配置:

[……]

继续阅读

MySQL数据库(十三)_事务与锁

锁是计算机协调多个进程或线程并发访问某一资源的机制。锁保证数据并发访问的一致性、有效性;锁冲突也是影响数据库并发访问性能的一个重要因素。锁是Mysql在服务器层和存储引擎层的的并发控制。
加锁是消耗资源的,锁的各种操作,包括获得锁、检测锁是否是否已解除、释放锁等

  1. 锁粒度:
    • 表级锁:开销小,加锁快;不会出现死锁;锁定粒度大,发生锁冲突的概率最高,并发度最低。
    • 行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生锁冲突的概率最低,并发度也最高。
    • 页面锁:开销和加锁时间界于表锁和行锁之间;会出现死锁;锁定粒度界于表锁和行锁之间,并发度一般。
  2. 锁的读写类型:
    • 读锁:也称共享锁,只读不可写([……]

      继续阅读

MySQL数据库(十二)_索引

索引

索引:是特殊数据结构,定义在查找时作为查找条件的字段,在MySQL又称为键key,索引通过存储引擎实现

  • 优点:
    索引可以降低服务需要扫描的数据量,减少了IO次数
    索引可以帮助服务器避免排序和使用临时表
    索引可以帮助将随机I/O转为顺序I/O
  • 缺点:
    占用额外空间,影响插入速度
  1. 索引类型:
    • B+ TREE、HASH、R TREE
    • 聚集索引、非聚集索引:数据和索引是否存储在一起
    • 主键索引、二级(辅助)索引
    • 稠密索引、稀疏索引:是否索引了每一个数据项
    • 简单索引、组合索引
    • 左前缀索引:取前面的字符做索引
    • 覆盖索引:从索引中即可取出要查询的数据,性能高

聚集索引是基于主键列来组织的,来[……]

继续阅读