mysql 集群技术01

集群技术

集群概述

MySQL 复制技术

集群目的
    负载均衡     解决高并发
    高可用HA    服务可用性
    远程灾备     数据有效性

类型
            M
            M-S
            M-S-S...
            M-M
            M-M-S-S

  概念
            1. 在主库上把数据更改(DDL DML DCL)记录到二进制日志(Binary Log)中。
            2. 备库I/O线程将主库上的日志复制到自己的中继日志(Relay Log)中。
            3. 备库SQL线程读取中继日志中的事件,将其重放到备库数据库之上。           

集群案例

环境
     环境三部曲
        1.全新服务器-互相通信
        2.全新安装mysql57-分别安装
        3.配置域名解析
    注意
        请重新安装多台数据库,不要克隆已经安装的数据。因为数据库的ID相同。
    master1          10.18.41.54       192.168.232.138          systemctl start mysqld
    master2          10.18.41.66        192.168.232.220         systemctl start mysqld
    slave1             10.18.41.56        192.168.232.221        systemctl start mysqld
    slave 2            10.18.41.69         192.168.232.222        systemctl start mysqld
          建议   (可以使用host文件的形式,也可以使用DNS服务器解析.)

一主一从(M-S)(1)

主(master1)

准备数据1(验证主从同步使用) master1
    create database master1db;
    create table master1db.master1tab(name char(50));
    insert into master1db.master1tab values (1111);
    insert into master1db.master1tab values (2222);      

开启二进制日志       master1
        [root@localhost ~]# vim /etc/my.cnf
            log_bin
            server-id=1
        [root@localhost ~]# systemctl restart mysqld         ( 重启生效)

创建复制用户      master1
        grant replication slave, replication
 client on *.* to 'rep'@'10.18.41.%'      identified by 'QianFeng@123';

备份master数据库的数据        master1
        mysqldump -p'QianFeng@123' --all-databases --single-transaction --master-data=2 --flush-logs > `date +%F`-mysql-all.sql
        scp -r 2020-1-1-mysql-all.sql master2:/tmp   (发送给另一台主机)
观察二进制日志分割点
            CHANGE MASTER TO MASTER_LOG_FILE='localhost-bin.000002', MASTER_LOG_POS=154;

准备数据2(验证主从同步使用)   master1
    insert into master1db.master1tab values (33333333);
    insert into master1db.master1tab values (44444);

从(master2)

测试rep用户是否可用      master2
            部署数据库应用
            mysql -h master1 -urep -p'QianFeng@123'        预防账户问题。

启动服务器序号
            [root@localhost ~]#vim /etc/my.cnf           
             server-id=2           服务器ID是必须设置的。
           [root@localhost ~]# systemctl restart mysqld
            mysql -uroot -p'QianFeng@123'     (测试服务器是否修改正确。能否正常登)

手动同步数据

        mysql>  set sql_log_bin=0;

        mysql>  source /tmp/2020-1-1-mysql-full.sql

设置主服务器   

        mysql> change master to
        master_host='master1',
        master_user='rep',
        master_password='QianFeng@123',
        master_log_file='localhost-bin.000002',
        master_log_pos=154;
    注意,二进制日志的位置,应该参照主服务器备份时生成的新位置。

启动从设备

        mysql> start slave;

查看启动状态(IO-YES/SQL-YES)

        show slave status\G;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值