zoukankan      html  css  js  c++  java
  • 【Mysql】Linux系统下的数据库服务器主从复制、读写分离、同步数据

    Linux系统下的数据库服务器主从复制、读写分离、同步数据到新的从机

    (1)主从复制

    ① 主机Master的配置步骤:
          a. 编辑etc下的my.cnf文件   ---->  vi /etc/my.cnf 命令
                注意:修改server-id、开启日志机制、复制或忽略复制的数据库
                binlog-do-db=数据库名			要复制的数据库
                binlog-ignore-db=数据库名		要忽略复制的数据库
          b. 重启mysql服务:service mysqld restart
          c. 登录mysql服务器:mysql –uroot –pmysql123
          d. 查看主机的状态:
          e. 关闭防火墙
    ②从机Slave的配置:
          a. 编辑配置文件:vi  /etc/my.cnf
                注意:修改server-id、配置依赖的主机信息
                relay-log-index=slave-relay-bin.index
                relay-log=slave-relay-bin
          b. 重启:service mysqld restart
          c. 登录:mysql –uroot –pmysql123
          d. 关闭slave:stop slave;
          e. 要复制的主机:
              change master to master_host='192.168.62.133',master_user='root',
              master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=107;
    	  注:参数值为主机ip、用户、密码、标红的为主机的状态信息
          f. 启动:start slave;
          g. 查看从机的状态:show slave status G; 		’G’表示以网格形式展示
          h. 关闭防火墙
          i. 同样的方式配置另外一台slave机器
          j. 测试:修改主机数据库表,查看从机是否同步
    
    

    (2)读写分离

    master主机负责写操作;slave从机负责读操作,在实战环境中,一般都是一主多从;写操作比较少,读操作比较多;在主从复制的基础之上配置读写分离,通过mycat来实现读写分离
    1) 系统配置:
          ① 使用虚拟机克隆一台纯净版系统机器
          ② 安装JDK,并配置环境变量(安装(./;rpm -ivh);
                编辑/etc/profile;source /etc/profile)
                让配置生效:source /etc/profile
          ③ 下载mycat,通过文件传输工具,传输到Linux系统下的/usr目录下
          ④ 通过tar –zxvf 解压文件:tar –zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz就能使用
    2) 配置Mycat环境变量:
          ① 配置Linux配置文件:vi /etc/profile
    		在文件底部添加mycat根目录和根目录的命令:
    		export MYCAT_HOME=/usr/mycat    //Mycat安装路径的根目录
                    export PATH=$PATH:/usr/mycat/bin	//将mycat命令添加到path中,可在任意目录下使用
    			 
             让配置生效:source /etc/profile
          ② 在安装(解压)路径下配置conf配置文件和logs日志文件,切换到/usr/mycat目录下可查看
          ③ 修改/usr/mycat/conf目录下的schema.xml、server.xml、wrapper.conf配置文件
                 a. 修改配置/usr/mycat/conf /schema.xml文件:
                    属性解释:
                    balance属性:负载均衡类型,目前的取值有 4 种:
    	               balance="0", 不开启读写分离机制,所有读操作都发送到当前可用的writeHost 上
                           balance="1",全部的 readHost 与 stand by writeHost 参与 select 语句的负载均衡,
                                  简单的说,当双主双从模式(M1 ->S1 , M2->S2,并且 M1 与 M2 互为主备),正常情况下,
                                  M2,S1,S2 都参与 select 语句的负载均衡
    	               balance="2",所有读操作都随机的在 writeHost、 readhost 上分发
                           balance="3",所有读请求随机的分发到 wiriterHost 对应的 readhost 执行,writerHost 
                                  不负担读压力,注意 balance=3 只在 1.4 及其以后版本有, 1.3 没有
                    writeType属性:负载均衡类型,目前的取值有 3 种:
                           writeType="0":所有写操作发送到配置的第一个 writeHost,第一个挂了切到还生存的第二个writeHost:重新启动后以切换后的为准,
    	                      切换记录在配置文件中:dnindex.properties . writeType="1",所有写操作都随机发送到配置的writeHost。writeType="2",没实现
                    switchType:属性,切换(-1表示不自动切换、1默认值,自动切换、2基于MySQL 主从同步的状态决定是否切换
    	     b. 修改配置/usr/mycat/conf /server.xml文件:
                 c. 修改配置/usr/mycat/conf /wrapper.conf文件:vi wrapper.conf
     
           ④ 启动Mycat:mycat start
           ⑤ 关闭防火墙:service iptables stop
           ⑥ 测试:通过Navicat实现连接Mycat
    		ip为mycat所在计算机、端口默认8066、用户名和密码与在server.xml中配置的一致
                    在其数据库中插入一条语句,执行机制:mycat负责将语句发送到主机master,然后master根据配置好的主从复制,把sql语句发送到从机slave
     
           ⑦ 关闭防火墙
    

    (3)新建一台从机,将数据同步到该新机

           ① 在主机master日志中读取日志信息,将最初的数据库日志放到master_log_file和master_log_pos属性上
           ② 将最开始主机状态信息,配置到新机:
    		登录到mysql服务器:mysql –uroot -p
    		  	stop slave;
    			change master to master_host='192.168.62.133',master_user='root',
                            master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=107;
    		注:参数值为主机ip、用户、密码、标红的为主机的状态信息
    			start slave;
    
  • 相关阅读:
    SeaweedFS上手使用指南
    XyTalk企业即时通讯IM开始开源
    大数据项目相关技术栈(Hadoop周边技术)
    Hive SQL基础操作
    Applet Mode
    快速开始
    NetBeans启动Tomcat报“'127.0.0.1' 不是内部或外部命令”启动失败的解决办法
    运行带distance field的Hiero
    Game Loop的几种实现方式
    20150408
  • 原文地址:https://www.cnblogs.com/jwnming/p/13639857.html
Copyright © 2011-2022 走看看