zoukankan      html  css  js  c++  java
  • 数据库的高可用_数据备份_主从配置_主从挂载_双击热备

    数据库的高可用

    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 删掉重做

  • 相关阅读:
    android Textview动态设置大小
    小米1plus MIUI RadioButton的问题
    快读
    高精集合
    清北学堂part2
    清北学堂part1
    OTZ%%%子谦。大佬
    筛质数大优化
    回文日期
    高精度加法
  • 原文地址:https://www.cnblogs.com/erma0-007/p/8619586.html
Copyright © 2011-2022 走看看