一、数据库同步
1.数据库冷备份
手动的将数据库文件,定期进行转储.
缺点:
1.效率低
2.有可能丢失数据
原因: 数据库冷备份 是公司恢复数据最后有效的手段.
2.数据库热备份
备份原理:
1.当数据库修改时,会将修改的信息,写入二进制日志文件中(二进制文件默认是关闭的).
2.当二进制日志文件中有数据时,数据库从库会通过IO线程读取二进制文件信息.
3.IO线程将读到的数据写到中继日志中.
4.Sql线程将中继日志中的文件 写到从数据库中,最终实现数据库主从同步.
二、修改数据库主库配置
1.搭建策略
129当作主库,130当作从库
2.修改二进制日志文件
1).编辑二进制文件位置
三、修改数据库从库配置
四、实现数据库主从同步
4.1 确定主库状态
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 数据库主从测试
在主库中添加数据库表,检查从库是否同步.
五、数据库高可用(HA)
1.实现数据库读写分离/负载均衡
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 上传安装包
2.3.2 解压Mycat
1).解压Mycat
[root@localhost src]# tar -xvf Mycat-server-1.7.0-DEV-20170416134921-linux.tar.gz
2).移动Mycat文件
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
2.3.6 Mycat命令
2.3.7 报错检查
2.3.8 负载均衡测试
将从数据库信息,手动的进行修改. 效果:主库和从库的数据暂时不一致(存在风险)
3 实现数据库双机热备
3.1 原理说明
说明: 实现数据库高可用的前提条件是实现主从的备份.
之前的操作:
主库 :192.168.126.129
从库 : 192.168.126.130
现在的配置:
主库 :192.168.126.130
从库 : 192.168.126.129
3.2 实现双主模式配置
1).检查主库状态
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服务
1.4.3 数据库高可用的测试
1.首先应该将129的数据库宕机(关闭)
2.启动程序,通过数据库代理检查是否访问正确(查). 入库是否正常(写)
3.重启129的数据库. 检查数据是否真的同步了.