蚊子的mysql笔记 - 数据库高可用(上篇)

本文详细介绍数据库冷热备份的方法及优缺点,包括使用sqlYog进行数据导出的冷备份,以及通过二进制日志文件实现的热备份。同时,文章还介绍了如何在两台虚拟机上搭建MySQL主从架构,实现数据同步与读写分离。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库备份

冷备份

说明:定期进行数据导出.工具sqlYog
缺点:
1.不能保证数据的完整性.
2.如果数据库中的文件较大,则导出的.sql文件体积很大.
补充:
数据库冷备份是恢复数据的最后有效手段.

热备份

在这里插入图片描述
主库:主要负责写入二进制日志文件
从库:主要负责监听主库中的数据的修改.并且同步到从库中
调用过程:

  1. 当主库中的数据发生变化时,会将更新的操作写入二进制日志文件中.
  2. 从库通过IO线程实时监听主库中的二进制日志文件,当文件发生变化时,读取变化的日志内容写入中继日志中.
  3. 从库通过Sql线程读取中继日志中的消息,最终将数据同步到从库中.

克隆2台虚拟机

克隆2台全新的数据库mysql-master/mysql-slave.之后将IP设置为固定IP

安装Mysql数据库

  1. 上传Mysql安装文件
    在/usr/local/src中新建mysql文件夹,之后上传数据库安装文件
    在这里插入图片描述
  2. 解压文件
tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar
[root@localhostmysql]# tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar 
Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-devel-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-test-56-5.6.24-rel72.2.el6.x86_64.rpm
Percona-Server-tokudb-56-5.6.24-rel72.2.el6.x86_64.rpm
  1. 安装mysql数据库
    安装顺序:1 56-debug-info 2.shared 3.client 4.server
    安装命令:
    rpm -ivh安装文件的名称
    1.安装Debug-info
    rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm
    在这里插入图片描述
    2.安装shared
    rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm
    在这里插入图片描述
    3.安装client客户端
    rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm
    在这里插入图片描述
    4.安装服务端
    rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm

启动Mysql服务项

启动命令:servicemysql start
重启命令: service mysql restart
关闭命令:servicemysql stop
在这里插入图片描述

导入数据库

关闭防火墙
在这里插入图片描述

  1. 将数据库文件上传到mysql文件夹中

在这里插入图片描述
2. 设定用户名和密码
mysqladmin -u root password root
在这里插入图片描述
3. 使用新密码登录
在这里插入图片描述
4.导入京淘数据库
命令:source绝对路径/usr/local/src/mysql/jtdb.sql;
Source 相对路径jtdb.sql;
在这里插入图片描述
5. 测试检查数据库是否正确
show tables;

6.开启mysql对外访问权限
grant all on . to ‘root’@’%’ identified by ‘root’;
在这里插入图片描述
7.连接数据库
在这里插入图片描述
8.关于数据库报错解决方案
查询进程号PID
在这里插入图片描述

实现数据库主从搭建

开启主库二进制日志文件

  1. 编辑mysql系统配置文件vim /etc/my.cnf
    在这里插入图片描述
  2. 之后重启mysql数据库服务器
    在这里插入图片描述
    检查二进制文件是否存在
    在这里插入图片描述

配置从库

  1. 修改从库二进制文件 vim /etc/my.cnf
    在这里插入图片描述
  2. 重启mysql从库
    在这里插入图片描述

实现数据库主从挂载

  1. 检查主库的状态
    Show master status;
    在这里插入图片描述
  2. 实现主从挂载
/*实现主从挂载主库IP/端口/用户名/密码/二进制日志文件/位置*/
CHANGE MASTER TO MASTER_HOST="192.168.126.162",
MASTER_PORT=3306,
MASTER_USER="root",
MASTER_PASSWORD="root",
MASTER_LOG_FILE="mysql-bin.000001",
MASTER_LOG_POS=120

/*启动主从服务*/
START SLAVE

/*检查主从状态*/
SHOW SLAVE STATUS;

/*如果挂载有误,先关闭主从服务之后重新挂载主从*/
STOP SLAVE

状态检测

执行命令:**SHOW SLAVE STATUS;**如果出现2个yes则表示挂载成功
在这里插入图片描述
之后状态测试
修改主库数据,检查数据是否同步.

实现数据库读写分离

读写分离原理

在这里插入图片描述
用户的写库操作执行主库.用户的读写操作指向从库

Amoeba(变形虫)

Amoeba是一个以MySQL为底层数据存储,并对应用提供MySQL协议接口的proxy。它集中地响应应用的请求,依据用户事先设置的规则,将SQL请求发送到特定的数据库上执行。基于此可以实现负载均衡、读写分离、高可用性等需求。与MySQL官方的MySQL Proxy相比,作者强调的是amoeba配置的方便(基于XML的配置文件,用SQLJEP语法书写规则,比基于lua脚本的MySQL Proxy简单)。

Amoeba搭建步骤

配置JDK环境

  1. 上传JDK
  2. 解压JDK
    在这里插入图片描述
  3. 配置环境变量/etc/profile
    在这里插入图片描述
  4. Source /etc/profile
    在这里插入图片描述

安装Amoeba

  1. FZ工具使用
    在这里插入图片描述
  2. 下载文件
    在这里插入图片描述
  3. 解压文件
    在这里插入图片描述

修改dbServer.xml

  1. 配置amoeba连接数据库
    在这里插入图片描述
  2. 配置数据库链接
    在这里插入图片描述
  3. 配置连接池.定义负载均衡
    在这里插入图片描述

修改Amoeba.xml

  1. 配置IP
    在这里插入图片描述
  2. 定义用户名和密码
    在这里插入图片描述
  3. 配置读写分离
    在这里插入图片描述

修改JVM内存

JVM_OPTIONS="-server -Xms256m -Xmx1024m -Xss196k -XX:PermSize=16m -XX:MaxPermSize=96m"

-Xms256m初始化内存大小256m
-Xmx1024m最大内存1g
-Xss196k每次线程大小
在这里插入图片描述

启动Amoeba

注意事项:关闭防火墙
在这里插入图片描述
命令:
./launcher
./shutdown
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值