京淘day10-数据库优化

一、数据库同步

1.数据库冷备份

手动的将数据库文件,定期进行转储.
缺点:
1.效率低
2.有可能丢失数据
原因: 数据库冷备份 是公司恢复数据最后有效的手段.

2.数据库热备份

备份原理:
1.当数据库修改时,会将修改的信息,写入二进制日志文件中(二进制文件默认是关闭的).
2.当二进制日志文件中有数据时,数据库从库会通过IO线程读取二进制文件信息.
3.IO线程将读到的数据写到中继日志中.
4.Sql线程将中继日志中的文件 写到从数据库中,最终实现数据库主从同步.
京淘day10-数据库优化_第1张图片

二、修改数据库主库配置

1.搭建策略

129当作主库,130当作从库

2.修改二进制日志文件

1).编辑二进制文件位置
在这里插入图片描述

三、修改数据库从库配置

京淘day10-数据库优化_第2张图片

四、实现数据库主从同步

4.1 确定主库状态

京淘day10-数据库优化_第3张图片

4.2 配置主从挂载

/*我是130  从库  IP/PORT/USER/PASSWROD/二进制日志/pos*/
CHANGE MASTER TO MASTER_HOST="192.168.126.129",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=245;
/*开启主从服务*/
START SLAVE;    
/*检查主从服务状态*/
SHOW SLAVE STATUS;
/*如果启动不成功 执行如下步骤  检查最后几项的报错信息 
  之后修改配置文件. 关闭主从服务.之后重新执行挂载命令
*/
STOP SLAVE;

4.3 数据库主从测试

在主库中添加数据库表,检查从库是否同步.
京淘day10-数据库优化_第4张图片

五、数据库高可用(HA)

1.实现数据库读写分离/负载均衡

京淘day10-数据库优化_第5张图片

2.Mycat代理

2.1 Mycat 介绍

Mycat数据库分库分表中间件活跃的、性能好的开源数据库中间件!

2.2 Mycat关键特性

  • 支持SQL92标准
  • 支持MySQL、Oracle、DB2、SQL Server、PostgreSQL等DB的常见SQL语法
  • 遵守Mysql原生协议,跨语言,跨平台,跨数据库的通用中间件代理。
  • 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群。
  • 支持Galera for MySQL集群,Percona Cluster或者MariaDB cluster
  • 基于Nio实现,有效管理线程,解决高并发问题。
  • 支持数据的多片自动路由与聚合,支持sum,count,max等常用的聚合函数,支持跨库分页。
  • 支持单库内部任意join,支持跨库2表join,甚至基于caltlet的多表join。
  • 支持通过全局表,ER关系的分片策略,实现了高效的多表join查询。
  • 支持多租户方案。
  • 支持分布式事务(弱xa)。
  • 支持XA分布式事务(1.6.5)。
  • 支持全局序列号,解决分布式下的主键生成问题。
  • 分片规则丰富,插件化开发,易于扩展。
  • 强大的web,命令行监控。
  • 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server 、 mongodb 、巨杉。
  • 支持密码加密
  • 支持服务降级
  • 支持IP白名单
  • 支持SQL黑名单、sql注入攻击拦截
  • 支持prepare预编译指令(1.6)
  • 支持非堆内存(Direct Memory)聚合计算(1.6)
  • 支持PostgreSQL的native协议(1.6)
  • 支持mysql和oracle存储过程,out参数、多结果集返回(1.6)
  • 支持zookeeper协调主从切换、zk序列、配置zk化(1.6)
  • 支持库内分表(1.6)
  • 集群基于ZooKeeper管理,在线升级,扩容,智能优化,大数据处理(2.0开发版)。

2.3 MyCat配置

2.3.1 上传安装包

京淘day10-数据库优化_第6张图片

2.3.2 解压Mycat

1).解压Mycat
[root@localhost src]# tar -xvf Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz
2).移动Mycat文件
京淘day10-数据库优化_第7张图片

2.3.3 编辑Server.xml

说明: 用户与代理数据库之间的链接,通过Server.xml进行配置.
1).默认端口
在这里插入图片描述

2.3.4 编辑schemas.xml

说明:该文件表示代理与数据库的配置 HOST:PORT:用户名:密码:数据库名称




    
    
    
    
        
          
        
            
        
        
        
        
        
        
    
        select 1
        
        
            
            
            
            
        
            
            
            
            
            
        
    
` 
2.3.5 上传安装文件

将课前资料中的文件上传到指定的位置: /usr/local/src/mycat/conf
京淘day10-数据库优化_第8张图片

2.3.6 Mycat命令

京淘day10-数据库优化_第9张图片

2.3.7 报错检查

京淘day10-数据库优化_第10张图片

2.3.8 负载均衡测试

将从数据库信息,手动的进行修改. 效果:主库和从库的数据暂时不一致(存在风险)
京淘day10-数据库优化_第11张图片

3 实现数据库双机热备

3.1 原理说明

说明: 实现数据库高可用的前提条件是实现主从的备份.
之前的操作:
主库 :192.168.126.129
从库 : 192.168.126.130
现在的配置:
主库 :192.168.126.130
从库 : 192.168.126.129
京淘day10-数据库优化_第12张图片

3.2 实现双主模式配置

1).检查主库状态
京淘day10-数据库优化_第13张图片
2).实现主从配置

show MASTER status
# 我是129 之前是主库,今天当从库
CHANGE MASTER to MASTER_HOST="192.168.126.130",
MASTER_PORT=3306,
MASTER_user="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=700;
#启动主从服务
start slave    
#检查状态
show slave status;

4 实现数据库高可用

4.1 修改schema.xml配置文件




    
    
    
    
        
          
        
            
        
        
        
        
        
        
    
        select 1
        
        
            
            
            
            
        
            
            
            
            
            
        
            
            
        
    

4.2 上传文件

1).停止mycat服务
京淘day10-数据库优化_第14张图片

1.4.3 数据库高可用的测试

1.首先应该将129的数据库宕机(关闭)
2.启动程序,通过数据库代理检查是否访问正确(查). 入库是否正常(写)
3.重启129的数据库. 检查数据是否真的同步了.

你可能感兴趣的:(linux)