【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;
posted @ 2020-09-09 16:52  JWnMing  阅读(155)  评论(0编辑  收藏  举报