广告
返回顶部
首页 > 资讯 > 数据库 >DBA成长之路---mysql主从同步,读写分离
  • 217
分享到

DBA成长之路---mysql主从同步,读写分离

2024-04-02 19:04:59 217人浏览 安东尼
摘要

主从同步什么是主从同步: 让其他的数据库服务器自动同步正在提供服务的数据库服务器上 的数据。        1 添加授权用户&

主从同步

什么是主从同步: 让其他的数据库服务器自动同步正在提供服务的数据库服务器上 的数据。

        1 添加授权用户

        Mysql> grant replication slave on *.* to slaveuser@"192.168.4.4" identified by '123456';

        2启用binlog日志

        [root@4-3mysql ~]# vim /etc/my.cnf

        [mysqld]

        server_id=3

        log-bin=master11

        binlog_fORMat="mixed"

        重启数据库服务

        [root@4-3mysql ~]# systemctl restart mysqld

        4 查看日志信息

        mysql> show master status;

        master11.000001

        

        验证主库提供的授权用户

        [root@4-4mysql ~]# mysql -h 192.168.4.3 -u slaveuser -p123456

        修改配置文件

        [root@4-4mysql ~]# vim /etc/my.cnf

        [mysqld]

        server_id=4

        log-bin=db4

        [root@4-4mysql ~]# systemctl restart mysqld

        

        使用本机器的数据管理员登录,指定主库信息

        show slave status;

        mysql> change master to master_host="192.168.4.3", master_user="slaveuser",master_passWord="123456",master_log_file="master11.000001",master_log_pos=154;

        mysql> show slave status\G;

                  Master_Log_File: master11.000001

                  Read_Master_Log_Pos: 154

                  Slave_IO_Running: No

                  Slave_SQL_Running: No

        mysql> start slave;

        mysql> show slave status\G;

                     Slave_IO_Running: Yes

                    Slave_SQL_Running: Yes

         slave 运行2个线程

         Slave_IO:复制master主机 binlog日志文件里的sql到本机的relay-log文件里

         Slave_SQL:执行本机relay-log文件里的SQL语句,重现Master的数据操作

        

从数据库目录下会多的文件

    master.info 连接主服务器信息

    relay-log.info 中继日志信息

    主机名-relay-bin.000000 中继日志文件

    主机名-relay-bin.index 中继日志索引


测试主从同步配置

    在主库服务器上添加访问数据的用户

    mysql> grant all on bbsdb.* to yaya@"%" identified by '123456';

    mysql> show master status;

    | master11.000001 |      446 

    

    在客户端使用授权用户连接主库,产生的数据在从库也能查到

    [root@4-5test ~]# mysql -h 192.168.4.3 -uyaya -p123456

    MySQL [(none)]> create database bbsdb;

    这时在

    [root@4-3mysql ~]# 主服务器

    [root@4-4mysql ~]# 从服务器

    上都会生成相应的表



将从服务器变被独立服务器,关闭同步

    mysql> stop slave;

    rm -rf master.info  relay-log.info

    rm -rf localhost-relay-bin*



故障分析及排除

    原因分析

    连接不上master数据库服务器

    解决办法

    检查物理连接ping 检查授权用户

    检查是否有防火墙规则

    关闭SElinux

    或是binlog日志文件指定错误

    

主从同步结构模式

    一主一从

    一主多从

    主从从

    主主结构(互为)


主从同步常用配置参数

        写在vim /etc/my.cnf

        [mysqld]

        选项=值

        

主库配置文件(对所有的从都有效)

不允许同步的库 binlog_ignore_db=库名1,库名2

只允许同步的库 binlog_do_db=库名1,库名2


        [root@4-3mysql ~]# vim /etc/my.cnf

        binlog_do_db=dba

        [root@4-3mysql ~]# systemctl restart mysqld

        


从库配置文件(只对本机有效)

        只同步的库 replicate_do_db=库名1,库名2

        不同步的库 replicate_ignore_db=库名1,库名2

        级联复制 log_slave_updates



数据读写分离   maxscale软件  + 一主一从

什么是读写分离: 把客户端访问数据时的查询请求select 和写请求insert 给不同的数据库服务器去处理


写(主服务) 

读 (从服务)


一。

装包

[root@4-5test ~]# rpm -ivh maxscale-2.1.2-1.rhel.7.x86_64.rpm 

修改配置文件:指定数据库服务器

[root@4-5test ~]# vim /etc/maxcale.cnf


  9 [maxscale]

 10 threads=auto 开启线程 根据cpu


 18 [server1] #数据库服务器名

 19 type=server

 20 address=192.168.4.3 #指定ip

 21 port=3306

 22 protocol=MySQLBackend

 23 

 24 [server2] #数据库服务器名

 25 type=server

 26 address=192.168.4.4 #指定ip

 27 port=3306

 28 protocol=MySQLBackend


 36 [MySQL Monitor]

 37 type=monitor

 38 module=mysqlmon

 39 servers=server1,server2 #监听两台 数据库服务器

 40 user=scalemon #授权用户名

 41 passwd=123456 #授权用户密码

 42 monitor_interval=10000 #毫秒  每十秒监听一次


 52 #[Read-Only Service] #Read-Only 全注释

 53 #type=service

 54 #router=readconnroute

 55 #servers=server1

 56 #user=myuser

 57 #passwd=mypwd

 58 #router_options=slave


 63 [Read-Write Service]

 64 type=service

 65 router=readwritesplit

 66 servers=server1,server2 #监听两台 数据库服务器

 67 user=maxscale #授权用户名

 68 passwd=123456 #授权用户密码

 69 max_slave_connections=100%


 75 [MaxAdmin Service] #定义软件管理服务 不用改

 76 type=service

 77 router=cli #使用方式  命令行


 85 #[Read-Only Listener] #Read-Only 全注释

 86 #type=listener

 87 #service=Read-Only Service

 88 #protocol=MySQLClient

 89 #port=4008


 91 [Read-Write Listener]

 92 type=listener

 93 service=Read-Write Service #服务名

 94 protocol=MySQLClient

 95 port=4006 #读写分离监听端口号(默认)


 97 [MaxAdmin Listener] #管理服务监听

 98 type=listener

 99 service=MaxAdmin Service

100 protocol=maxscaled

101 Socket=default

102 port=4009 #指定管理端口



根据配置文件设置,在数据库上添加相应的授权用户


scalemon 123456 监控数据库服务状态的用户(数据库服务状态和主从同步状态)

mysql> grant replication slave,replication client on *.* to scalemon@'%' identified by '123456';


mysql> grant select on mysql.* to maxscale@'%' identified by '123456';

maxscale 123456 检查客户端连接时使用的用户名和密码在监视的数据库服务器上是否存在



在代理主机测试

  mysql -h292.168.4.3 -uscalemon -p123456

  mysql -h292.168.4.3 -umaxscale -p123456

  mysql -h292.168.4.4 -umaxscale -p123456

  mysql -h292.168.4.4 -uscalemon -p123456

启动服务

[root@4-5test ~]# maxscale -f /etc/maxscale.cnf 

[root@4-5test ~]# netstat -pantu | grep maxscale

tcp        0      0 192.168.4.5:42703       192.168.4.3:3306        ESTABLISHED 4877/maxscale       

tcp        0      0 192.168.4.5:44918       192.168.4.4:3306        ESTABLISHED 4877/maxscale       

tcp6       0      0 :::4009                 :::*                    LISTEN      4877/maxscale       

tcp6       0      0 :::4006                 :::*                    LISTEN      4877/maxscale   

二。

测试配置

在代理服务器本机访问管理服务

[root@4-5test ~]# maxadmin -uadmin -pmariadb -P4009

MaxScale> list servers

Servers.

----------------------------------+------------------------------+------------+----------------------+------------------------------

Server                               | Address                       | Port         | Connections     | Status              

----------------------------------+------------------------------+------------+----------------------+------------------------------

server1                              | 192.168.4.3                 |  3306     |           0                | Master, Running

server2                              | 192.168.4.4                 |  3306     |           0                | Slave, Running

----------------------------------+------------------------------+------------+----------------------+-------------------------------


在客户端 访问代理服务器 存储数据或查询数据

4-3

mysql> create database bbsdb;

Query OK, 1 row affected (0.00 sec)

mysql> create table bbsdb.t1(id int);

Query OK, 0 rows affected (0.26 sec)


MySQL [(none)]> show grants;

+---------------------------------------------------------------------------------------+

| Grants for yaya@%                                                                           |

+---------------------------------------------------------------------------------------+

| GRANT USAGE ON *.* TO 'yaya'@'%'                                          |

| GRANT ALL PRIVILEGES ON `bbsdb`.* TO 'yaya'@'%'            |

+---------------------------------------------------------------------------------------+

2 rows in set (0.00 sec)

查看时显示为从服务

MySQL [(none)]> select @@hostname;

+---------------------+

| @@hostname |

+---------------------+

| 4-4mysql          |

+---------------------+

1 row in set (0.00 sec)


MySQL [(none)]> insert into bbsdb.t1 values(100);

添加后切换为主服务

MySQL [(none)]> select @@hostname;

+---------------------+

| @@hostname |

+---------------------+

| 4-3mysql          |

+---------------------+

1 row in set (0.00 sec)


您可能感兴趣的文档:

--结束END--

本文标题: DBA成长之路---mysql主从同步,读写分离

本文链接: https://www.lsjlt.com/news/40016.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • DBA成长之路---mysql主从同步,读写分离
    主从同步什么是主从同步: 让其他的数据库服务器自动同步正在提供服务的数据库服务器上 的数据。        1 添加授权用户&...
    99+
    2022-10-18
  • redis主从同步与读写分离
    一、原理Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面是关于redis主从复制的一些特点:...
    99+
    2022-10-18
  • MySQL主从同步和读写分离如何配置
    这篇文章主要为大家展示了“MySQL主从同步和读写分离如何配置”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“MySQL主从同步和读写分离如何配置”这篇文章吧。 ...
    99+
    2022-10-19
  • 6\MySQL 主从同步 、 MySQL 读写分离 、 MySQL 性能调优
    day06一、mysql主从同步 二、数据读写分离三、MySQL优化++++++++++++++++++++++++++++++++一、mysql主从同步 1.1 主从同步介绍?从库服务器自动同步主库上数...
    99+
    2022-10-18
  • MySQL数据库的主从同步配置与读写分离
    使用mysql主从复制的好处有: 1、采用主从服务器这种架构,稳定性得以提升。如果主服务器发生故障,我们可以使用从服务器来提供服务。 2、在主从服务器上分开处理用户的请求,可以提升数据处理效率。 3、将主服...
    99+
    2022-10-18
  • SQL Server搭建主从同步实现读写分离
    一、概念简介 1.1、基本概念 1)读写分离概念:是把对数据库的读操作和写操作分离开。在一定程度上,读写分离可以缓解读写操作并发时产生锁的问题。 2)读写分离原理:是让主数据库处理事务性增、删、改操作(INSERT、DELETE、UPDA...
    99+
    2016-01-18
    SQL Server搭建主从同步实现读写分离
  • MySQL实现主从复制与读写分离的具体步骤
    下面一起来了解下MySQL实现主从复制与读写分离的具体步骤,相信大家看完肯定会受益匪浅,文字在精不在多,希望MySQL实现主从复制与读写分离的具体步骤这篇短内容是你想要的。环境介绍:主云服务器(master...
    99+
    2022-10-18
  • 在CentOS7上搭建MySQL主从复制与读写分离的具体操作步骤
    本篇文章给大家主要讲的是关于在CentOS7上搭建MySQL主从复制与读写分离的具体操作步骤的内容,感兴趣的话就一起来看看这篇文章吧,相信看完在CentOS7上搭建MySQL主从复制与读写分离的具体操作步骤...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作