zoukankan      html  css  js  c++  java
  • 第十四周作业

    #### 1 MariaDB主从复制原理 

    1.数据更新,将其写入bin-log文件,bin-log是数据的二进制文件,记录了所有sql语句。

    2.我们的目标就是把主数据库的bin-log文件的sql语句复制过来。通过slave服务线程保存在中继日志

    3.让其在从数据的relay-log重做日志文件中再执行一次这些sql语句即可。

    #### 2 MariaDB一主一从架构构建

    服务器 A:192.168.242.130

    服务器B:192.168.242.131

    1.查看是否已安装Mariadb:rpm -qa | grep mariadn

    2.开始安装:yum install -y mariadb mariadb-server

      copy配置文件并覆盖:cp /usr/share/mysql.my-huge.cnf /etc/my.cnf

    3.启动mariadb服务:systemctl start  mairadb

    4.配置Mariadb主从

    修改my.cnf配置文件,设置server-id,master节点不需要修改,默认为1

    slave节点修改为2,并且重启slave节点:systemctl restart mariadb

    在master节点上建立主从复制用户并授权:在master节点上登录mariadb:mysql -uroot -      proot

    GRANT REPLICATION SLAVE ON *.*{所有权限} TO 'slave'@'%'{用户名为slave,%为任意地址} identified by 'slave';

    查询master的状态,看是否配置成功,命令:show master status

    5.在slave节点上指定master的信息和binlog文件

    命令语法: 

    CHANGE MASTER TO 

    MASTER_HOST='master的IP',MASTER_USER='master授权的用户',MASTER_PASSWORD='master授权用户的密码',MASTER_LOG_FILE='master的binlog文件',MASTER_LOG_POS=binlog起始位置;

    PS:注意语法逗号前后不要用空格

    在slave节点登录mariadb:mysql -uroot -proot

    执行命令:

    CHANGE MASTER TO 

    MASTER_HOST='192.168.132.65',MASTER_USER='slave',MASTER_PASSWORD='slave',MASTER_LOG_FILE='mysql-bin.000016',MASTER_LOG_POS=1254;

    执行成功之后需要重启slave,否则Slave_IO_Running和Slave_SQL_Running显示为No

    6.重启

    7.重新查看slave状态,Slave_IO_Running和Slave_SQL_Running已变为Yes

    命令:show slave statusG

     

    #### 3 MariaDB级联复制

     在中间的从服务器启用配置

    【mysql】

    server-id=18

    log_bin

    log_slave_updates

    read-only

    实现中间slave节点能将master的二进制日志在本地数据库进行更新,并且也同时更新本机的二进制,从而实现级联复制。

    #### 4 MariaDB半同步复制

     默认情况下,Mysql的复制功能是异步,异步复制可以提供最佳的性能,主库把binlog日志发送给从库即结束,并不验证从库是否接收完毕。这意味着主服务器或从服务器端发送故障时,有可能从服务器没有接收到主服务器发送过来的binlog日志,这个就会造成主服务器和从服务器的数据不一样,甚至在恢复数据时发生丢失。

    1.在master实现,启用半同步功能

    2.在其他所有slave节点上都实现,启用半同步功能

    3.在master上实现,创建数据库,立即成功

    4.在master实现,创建数据库,立即成功

    5.在所有slave节点实现,停止复制线程

    6.在master实现,创建数据库,等待3s才能成功

    7.在任意一个slave节点实现,恢复复制线程

    8.在master实现,创建数据库,立即成功

    #### 5 MariaDB高可用方案MHA

    IP地址分别为192.168.130.132-134 

    MHA 192.168.130.132

    master 192.168.130.133

    slave1 192.168.130.134

    1.在管理节点上安装两个包

    yum install -y mha4mysql-manager-.......

    yum install -y mha4msqlpnode........

    2.在所有MYSQL服务器上安装

    yum install -y mha4mysql-node

    3.在所有节点实现相互之间ssh key验证

    ssh-keygen

    ssh-copy-id 192.168.130.132

    rsync -av .ssh 192.168.130.133:/root/

    rsync -av .ssh 192.168.130.134:/root/

    4.在管理节点建立配置文件

    mkdir /etc/mastermha/

    vim /etc/mastermha/app1.cnf

    添上user=mhauser

    ssh_user=root #用于实验远程ssh基于key的链接,访问二进制日志

    repl_user=repluser #主从复制的用户信息

    ping_interval=1 #健康性检查的时间间隔

    master_ip_failover_script=/usr/local/bin/master_ip_failover

    report_script=/usr/local/bin/sendmail.sh

    check_repl_delay=0

    [sercerl]

    hostname=192.168.130.132

    candidate_master=1

    [server2]

    hostname=192.168.130.133

    candidate_master=1

    master

    [server3]

    hostname=192.168.130.134

    5.实现master

    vim /etc/my.conf

    [mysqld]

    server_id=1

    log-bin

    skip_name_resolve=1

    general_log

    mysql>show master logs

    mysql>grant replication slave on *.* to repluser@'192.168.130.%' identified by 'xuziran'

    mysql>grant all on *.* to mhauser@'192.168.130.%' identified by 'xuziran';

    6.配置vip

    ifconfig eth0:1 192.168.130.100/24

    7.实现slave

    vim /etc/my.cnf

    8.检查Mha的环境

    masterha_check_ssh --conf /etc/mastermha/app1.cnf

    masterha_check_repl --conf=/etc/mastermha/app.cnf

    9.启动MHA

    开启MHA,默认是前台运行

    nohup masterha_manager --conf=/etc/mastermha/app1.cnf &> /dev/null

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    javaSE基础知识点
    java自定义注解
    java自定义线程池
    java写投票脚本自动化初探
    java线程安全初窥探
    锁的深入理解
    java守护线程与非守护线程
    java设计模式初探
    java内存模型初窥探
    uniapp中组件之间跳转遇到的问题
  • 原文地址:https://www.cnblogs.com/xuziran88/p/13595679.html
Copyright © 2011-2022 走看看