• mysql主从备份、主从切换的例子


    实现两个Mysql数据库的同步,分为主从模式和相互备份模式。

    实施环境:

    两台Linux机器

    SerA ip:10.0.0.232

    SerB ip:10.0.0.234

    Demo1:主从模式

    Master:SerA    Slave:SerB

    在SerA和SerB上分别建立用于同步的账号(也可以不新建账号,直接给其他账号分配访问权限)

    1. use mysql;  
    2.   
    3. delete from user;  
    4.   
    5. grant all privileges on *.* to '$username'@'%' identified by '$password' with grant option;  
    6.   
    7. flush privileges;   
    上面是为了安全,删除了一些用户(一般都要把默认的没有密码的用户删除)

    StepA:

    SerA配置为Master,在SerA上在my.cnf中添加:

    1. replicate-do-db=$database  
    2.   
    3. server-id=1  
    指定binlog(因为时通过binlog实现数据同步的)

    配置完后重启数据库服务,用show master status可以看到Master信息。

    StepB:

    在SerB的my.cnf中指定

    1. replicate-do-db=$database  
    2.   
    3. server-id=2  
    指定binlog

    配置完后重启数据库服务,用show slave status可以看到Slave信息。

    (在MySQL5.1以后,my.cnf中已经去除了master-host等参数,应该在启动服务之后通过change master to ...命令来实现配置,也可以在启动的时候添加这些参数。下面是change master to ...示例)

    bin/mysql -u$username -p$password -e "stop slave;change master tomaster_host='$mysqlMasterHost',master_port=3306,master_user=$username,master_password=$password;start slave;" 

    mysqlMasterHost是Master的IP,

    master_port是Master的端口,

    master_user和master_password是用于同步的账号和密码

    还有master_log_file和master_log_pos参数指定同步数据的位置。

    可以在mysql命令模式下执行change master,之后start slave

    注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.info

    所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。

    这样就可以实现主从配置,此时在SerA指定数据库中加入数据,SerB中相应的数据库也会添加数据。

     模拟Mysql主从切换

    假设SerA现在无法提供服务,只需在SerB上执行show master status记录master_log_file和master_log_pos,停止ServB的slave。

    在SerA上执行change master 到SerB,并且指定master_log_file和master_log_pos,这样就可以恢复在SerA宕机期间存到SerB上的数据。

    看一些配置和查看命令的结果:

    注意Slave_IO_Running和Slave_SQL_Running的状态都必须是YES

    Demo2:双机互备

    双机互备只是两台机器同时做Master和Slave,

    即在SerA上使它的Master指向SerB,SerB的Maser指向SerA,

    配置其实和Mysql主从模式是一样的。

  • 相关阅读:
    数据库事务的特性以及隔离级别
    非受检异常(运行时异常)和受检异常的区别等
    在测试crontab执行脚本的时候,修改了linux的系统时间,crontab不执行了。
    perl的foreach循环的坑
    javascript中快速求数组的全部元素的相加之和
    js 百度地图
    PHP 取前一天或后一天、一个月时间
    php截取字符串函数
    js jquery 基本元素操作
    PHP 替换标签和标签内的内容
  • 原文地址:https://www.cnblogs.com/linuxnotes/p/3491690.html
Copyright © 2020-2023  润新知