1 数据库高可用实现
1.1 主从复制搭建
1.1.1 编辑主数据库
搭建步骤:
1.为数据库创建服务ID号标识数据库
2.需要开启二进制日志文件
3.查询数据的二进制日志状态(文件名称+文件的位置)
4.从库引入主库的文件进行配置
4.1为从库指定主库的位置
1.IP
2.端口3306
3.用户名和密码
4.二进制文件名称和位置
4.2 启动主从模式
1.2 具体实现过程
1.2.1 开启二进制文件
1.编辑mysql的配置文件
2.配置id和文件名称
3.重启Mysql服务
4.检测二进制日志文件是否生效
cd /var/lib/mysql
1.2.2 查询主库的状态
说明:通过查询主库的状态获取二进制日志文件的名称和数据位置
1.3 配置从数据库
1.3.1 配置从库的标号
说明:编辑从库Id.
2.编辑日志文件
3.重启数据库
service mysql restart
4.检测日志文件
cd /var/lib/mysql/
1.4实现主从
1.4.1 实现主从挂载
1.实现挂载
CHANGE MASTER TO MASTER_HOST="192.168.126.137",
MASTER_PORT=3306,MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",MASTER_LOG_POS=120
2.开启主从服务
#开启主从服务
START SLAVE
3.检测主从的状态
说明:如果出现2个yes表示主从配置成功
#检测主从状态
SHOW SLAVE STATUS
4.主从测试
说明:修改主库的数据,查询从库的数据是否修改
1.4.2 挂载错误
CHANGE MASTER TO MASTER_HOST="192.168.126.137",
MASTER_PORT=3306,MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120
#开启主从服务
START SLAVE
#检测主从状态
SHOW SLAVE STATUS
#如果出现yes/no no/yes
STOP SLAVE
#将主库重启 从库重启 依次执行上述语句
1.5 挂载错误集
1.5.1 关于二进制日志文件多个问题
说明:当重启主数据库时,Mysql会自动的生成一个新的二进制日志文件,并且名称是累加的.这时如果实现主从挂载时,应该以show master status 为准
1.5.2 切记不要复制mysql虚拟机
/var/lib/mysql/auto.cnf
1.5.3 关闭防火墙
如果不关闭防火墙,会出现一直在等待的状态.
1.5.4 查看IO异常信息
1.5.5 回滚mysql
说明:将linux回滚,回滚之后重新配置
3 实现数据库的高可用
3.1 高可用的原则
3.1.1 分析
说明:上图中已经实现了数据库的主从复制,但是如果主数据宕机后,这时整个服务将会停止!!!
升级:通过某些技术手段可以实现高可用.但是会遇到数据如何同步的问题???
说明:当主库宕机后,由从库代替主库完成更新操作,如果主数据库成功启动,这时会出现从数据库和主数据库中的内容不匹配的现象??如何处理???
3.2 双机热备模式
3.2.1 双机热备模式说明
说明:为了满足数据库高可用后出现数据不同步的问题,采用双机热备的形式解决该问题.
图例:
说明:双机热别的形式,是实现数据库高可用的前提条件.当A宕机后,通过mycat实现高可用自动切换到B.这时B持续为用户提供服务,并且将”更新”的信息写入二进制日志文件中,当A数据库启动后会自动的同步数据,最终实现高可用!
3.2.2 双机热备的配置
之前:A主----B从机
现在:B主机---A从机
查询主库的状态
从库挂载主库
#挂载从机
CHANGE MASTER TO MASTER_HOST="192.168.126.141",
MASTER_PORT=3306,MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120
#启动主从服务
START SLAVE
#检测主从状态
SHOW SLAVE STATUS
测试结果
向B数据库添加信息,查看A数据库中是否实现数据同步.如果实现数据同步,则搭建完成
3.3 Mycat介绍
3.3.1 Mycat介绍
3.4 MyCat部署
3.4.1 配置JDK
3.4.2 上传文件
1.上传文件
2.解压Mycat文件
\
3.修改配置文件
3.4.3 Server.xml的配置
3.4.4 配置schema.xml
select 1
3.4.6 Mycat测试
说明:启动Mycat
命令:
./mycat stop
./mycat start
2.检测Mycat启动是否成功
去logs日志下检测Mycat启动是否成功
Mycat对外报错的端口是8066
3.4.7 Mycat测试
说明:将主数据库关闭后,测试应用是否正常.再次开启主数据库后检测数据是否实现数据同步.