数据库的高可用_数据备份_主从配置_主从挂载_双击热备

数据库的高可用

1.1 数据库知识

1.1.1 数据库的工作原理

说明:数据库其实内部有缓冲区,在缓冲区中的数据是待处理的数据,数据库源源不断的从缓存区中获取数据进行处理.但是如果并发压力高了,会造成缓存区数据溢出.最终导致数据库宕机,不能正常响应.

 

1.1.2 数据库说明

说明:数据库如果想实现高可用的性能.需要解决以下的问题

  1. 多个数据库如何实现数据同步.
  2. 用户如何选择链接哪个数据库
  3. 如果数据库宕机,如何实现高可用
  4. 如果数据库宕机,宕机后的数据如何实现数据同步

 

 

 

1.1.3 解决思路

 

说明:

经过架构的优化,让服务器将来不会直接连接真实的数据库.而是链接代理数据.

在代理数据库中进行相应的配置,实现读和写的分离.进一步提高数据库的性能.

1.2 数据备份

1.2.1 冷备份

说明:定时的将数据库的信息进行导出,存放到固定的磁盘中.如果数据库出现宕机,则可以通过数据备份实现数据的恢复.

特点:操作次数少,数据备份不完全.但是作为数据恢复的最后手段一般也会使用

建议:定期实现冷备份进行保存

方式:一般通过某些数据库工具进行人为的导出.

1.2.2 热备份

说明:如果主数据库进行了更新操作时,会实时向从库发送数据.这时从库接收数据和自动的进行写库操作.这样的备份方式可以做到实时备份.

 

1.3 数据库热备份

1.3.1 原理

 

步骤:

  1. 当主库信息发生修改时,主库会将信息写入到二进制日志文件中(需要手动开启)
  2. 从库中通过IO线程实时监听主库的二进制文件.主要监听变化的数据
  3. 从库将获取到的数据写入中继日志中
  4. 通过Sql线程读取中继日志信息.实现数据库写入,最终实现数据同步.

 问题:) (了解)

  1. 为什么读取二进制日志后不进行直接写库操作??

a) 为了数据的安全性

  1. 中继日志有什么作用

a) 保证数据的有效

b) 可以被别人读取,实现数据的备份.

 

后台数据库搭建

2.1 数据库Linux部署

2.1.1 准备服务器

说明:将京淘空白虚拟机进行克隆,修改名称mysql-master.

 

 

2.1.2 拍摄快照

说明:一般采用快照的方式记录当前虚拟机状态,如果后期操作过程中,造成了不可挽回的损失,则直接恢复快照即可.

 

 

通过上述操作可以实现系统的回滚

2.1.3 固定IP地址

说明:点击网络配置后选择最新的网络环境autoeth3.点击Edit

选择IpV4进行IP配置

 

2.2 Mysql部署

2.2.1 创建文件夹

mkdir mysql

[root@localhost src]# ls

mysql

[root@localhost src]# cd mysql/

[root@localhost mysql]# ls

[root@localhost mysql]# pwd

 

2.2.2 导入安装文件

 

2.2.3 解压jar

tar -xvf Percona-Server-5.6.24-72.2-r8d0f85b-el6-x86_64-bundle.tar

2.2.4 安装Mysql

 

 

命令:

rpm -ivh Percona-Server-56-debuginfo-5.6.24-rel72.2.el6.x86_64.rpm

rpm -ivh Percona-Server-shared-56-5.6.24-rel72.2.el6.x86_64.rpm

rpm -ivh Percona-Server-client-56-5.6.24-rel72.2.el6.x86_64.rpm

rpm -ivh Percona-Server-server-56-5.6.24-rel72.2.el6.x86_64.rpm

 

2.2.5 启动Mysql

service mysql start

 

 

2.2.6 设定用户名和密码

mysqladmin -u 'root' password "root"

 

2.2.7 登录并且导入sql

 

在输入password时是没有提示的.

导入京淘sql语句

 

2.2.8 开放权限

grant all on *.* to 'root'@'%' identified by "root";

退出mysql后关闭防火墙

service iptables stop

 

2.2.9 通过工具连接

 

 

2.2.10 如果启动报错

如果报错信息中含有 XXX.pid socket报错.杀死进程后再次启动mysql

service mysql start

 

 

2.3 修改mysql配置文件

2.3.1 修改my.cnf

路径:/etc/my.cnf   vim my.cnf

 

 

重启Mysql:

 

 

2.3.2 检测二进制日志文件是否开启

说明:如果mysql的安装目录  /var/lib/mysql中有二进制文件则表示启动成功.

 

 

2.4 安装从数据库

与刚才的步骤相同

2.5 主从配置

2.5.1 修改从库的My.cnf文件

 

 

2.5.2 重启从库

service mysql restart

 

 

2.5.3 检测从库的二进制

检测从库的二进制日志是否成功

 

 

2.6 主从挂载

2.6.1 查看主库状态

说明:

主库创建完成后应该告诉从库,主库的二进制日志名称和二进制日志的位置.这时从库才能根据位置实现实时备份.

/*查询主库的状态 file表示二进制文件名称 position表示主库默认位置*/

SHOW MASTER STATUS;

 

 

2.6.2 实现主从挂载

说明:数据库中的主从复制,实质就是将从库挂载到主库的操作.

 

/*

主从挂载的语法

1.chage master to 主机host="IP地址",主机port=3306,

主机user="root",主机password="root",

主机二进制文件名称="mysql-bin-00001",主机pos=120

*/

 

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表示主从复制成功.

 

 

 

 

 

 

 

实现双机热备

说明:

在实际开发过程中,很少单独的使用主从复制.为了实现主库和从库严格的数据备份.在公司中采用双机热备的形式.

好处:如果实现了双机热备,及时有一台数据库宕机,也不会影响数据同步.应该宕机的这台数据库会监听另外一台主机.实时读取二进制日志文件,实现数据同步.

 

设计图:

 

3.1 双机热备的步骤

3.1.1 查看从的状态

 

 

3.1.2 实现主从挂载

说明:

实现双机热备时,应该在Master中挂载slave.

/*实现双机热备另外一台主机*/

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

 

/*启动slave*/

START SLAVE

 

/*查看状态*/

SHOW SLAVE STATUS

 

3.1.3 效果展现:

说明:这时无论修改主机还是从机都可以实现数据的同步.这样做更具有通用性.

 

 

主从复制中遇到的问题

4.1 主库问题

4.1.1 检测主库中的二进制日志文件是否启动

Cd /var/lib/mysql 查询是否还有二进制文件

 

4.1.2 从库的挂载时IP是否正确

说明:从库挂载主库时应该向主库看齐,写主库的IP

4.1.3 密切关注主库的Posion

 

 

4.1.4 从库启动

如果挂载失败,先将slave关闭

/*如果需要停止服务*/

STOP SLAVE

 

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;

 

4.1.5 检测主从server-id是否相同

说明:切记修改主库和从库的server-id

主库:server-id=1

从库:server-id=2

 

4.1.6 挂载数据时最好保证数据一致.

说明:如果还是挂载不成功,设法将主库和从库数据保持一致.

 

4.1.7 删掉重做

posted @ 2018-03-21 20:57  小黑妹007  阅读(350)  评论(0编辑  收藏  举报