数据库高可用

数据库高可用

1.修改从服务器IP地址

为了部署两台服务器必须修改从服务器的IP地址,将IP地址修改为与!=主服务器的IP

  • 一.查找IP文件
  • 跳入目录 network-scripts(etc/sysconfig/network-scripts)
  • 打开文件 ifcfg-ens33
  • 二.修改IP地址
    数据库高可用_第1张图片
    三.重启网卡
  • 命令:service network restart

2.远程连接服务器

连接新主机
连接新主机

2.1安装MariaDB数据库

  • 安装指令 yum install mariadb-server
  • 启动数据库 systemctl start mariadb
  • 设定数据库用户名&密码mysql_secure_installation
  • 设定用户名时遇到提示点Y即可
  • 数据库高可用_第2张图片

2.2修改数据库权限

  • 登录数据库 mysql -uroot -proot
  • 在user表内查询所有用户的权限信息
  • 修改用户权限信息,将localhost修改为"%",%代表着任意的IP地址
  • MariaDB [mysql]> update user set host="%" where host=“localhost”;
  • 刷新数据库权限 flush privileges

2.3关闭防火墙

  • systemctl stop firewalld.service 关闭防火墙
  • firewalld-cmd --state 检查防火墙开关状态

3.连接数据库

使用Sqlyog工具连接两台数据库

3.1将两台数据库的数据进行同步

先将主库的数据导出为Sql文件,再将sql文件导入从库即可实现数据统一

  • 如果数据库导入报错:
  • 数据库高可用_第3张图片

数据库备份问题

数据库冷备份

  • 在规定的时间周期内,通过手动的导入导出的方式实现数据库的同步.
  • 执行稳定,一般不容易出现.
  • 因为是定期备份,所以可能导致备份不及时,导致数据丢失.
  • 数据冷备份是公司恢复数据最后有效的手段

数据库热备份
数据库高可用_第4张图片

  • 主库反生修改时会将数据写入二进制文件中(二进制文件需要手动开启)
  • 从库会开启IO线程去主库读取更新的二进制文件,并且记录读写位置
  • 为了实现数据库同步(异步)功能,将IO县城内读取信息放入中继日志进行保存
  • sql线程会读取中继日志中的数据,之后将数据写入到数据库中.至此整个数据库热备份完成

数据库主从搭建

1.开启主库二进制文件

  • 主库二进制文件位置 /etc/my.cnf
    在这里插入图片描述
  • 编辑二进制文件
    数据库高可用_第5张图片

检查二进制日志文件是否生成

  • /var/lib/mysql 进入mysql目录下
  • systemctl restart mariadb 重启数据库
  • 检查有没有生成二进制文件
    数据库高可用_第6张图片

开启从库二进制文件

注意:server-id=2 不能重复

  • 同主库一样

实现主从挂载

主从挂载应该由从库向主库进行挂载.由从库远程连接主库,之后读取二进制日志文件信息.

  • 执行sql命令 show master status;
    获取File名

    数据库高可用_第7张图片

主从挂载

由从库到主库实现挂载,默认条件下数据库都是主库(通过执行sql语句实现)

  • CHANGE MASTER TO MASTER_HOST="IP地址"
  • MASTER_PORT=端口号,
  • MASTER_USER=“用户名”,
  • MASTER_PASSWORD=“密码”,
  • MASTER_LOG_FILE=“主库二进制File名”,
  • MASTER_LOG_POS=245;
  • START SLAVE; 启动主从服务
  • SHOW SLAVE STATUS; 检查主从状态
  • STOP SLAVE; 关闭主从状态
  • 数据库高可用_第8张图片

数据库主从测试

在数据库主库中添加数据,测试从库刷新之后,是否实现数据同步

.

数据库主从复制/读写分离

引入数据库中间件实现读写分离

Mycat

Mycat是一个数据库分库分表中间件

  • 支持SQL92标准
  • 支持MySQK,Oracle,等等DB常见SQl语法
  • 基于心跳的自动故障切换,支持读写分离,支持MySQL主从,以及galera cluster集群
  • 支持Galera for MySQL 集群
  • 基于Nio实现,有效管理线程,解决高并发问题

主库上传Mycat服务器

上传文件信息
数据库高可用_第9张图片
解压文件信息
tar -xvf Mycat…
在这里插入图片描述

Mycat配置文件(server.xml)

  • Maycat的端口号默认就是8066
  • 定义了Mycat的用户名和密码
  • 数据库高可用_第10张图片
  • yml配置
    数据库高可用_第11张图片

MyCat配置文件(schema.xml)

  • 进行读写分离
  • 数据库高可用_第12张图片

启动Mycat测试

  • 跳转到/user/local/src/mycat/bin
  • 找到mycat可执行文件
  • 数据库高可用_第13张图片
    Mycat命令
  • ./mycat start 启动命令
  • ./mycat status 检查状态
  • ./mycat restart 重启命令
  • ./mycat stop 停止命令
  • 数据库高可用_第14张图片

测试负载均衡

修改数据库的IP地址和端口,连接Mycat服务器.
数据库高可用_第15张图片
测试效果
数据库高可用_第16张图片

实现数据库高可用

高可用是指当服务器发生了故障时,在不影响用户的条件下,自动实现数据的迁移,无需人为的干预
配置2台数据 互为主从. 这样的效果可以保证在主库宕机的之后,用户操作都是从库.当主库重启之后,从库会把数据同步给主库.最终实现了数据的一致性.(两个库中的数据应当保持一致)

同样的方式实现主从挂载

实现数据库高可用的配置




	
	
	

	
	
		
		  
		
			
		
		
		
		
		
		
	
		select 1

		
		
			
			
			
			
			
		

			
			
			
			
			
		
		
			
			
			
			
		
		
	

1.先将Mycat服务器关闭,再将新的配置文件进行替换
2.从起Mycat服务器连接Mycat服务器检查访问是否正确

数据库高可用测试

先将mysql数据库关闭检查用户访问是否受限,之后重启数据库,检查Mysql数据库中的数据是否实现同步.

你可能感兴趣的:(linux,分布式)