前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mysql复制

mysql复制

原创
作者头像
风起--追风
发布2022-11-17 14:42:49
2K0
发布2022-11-17 14:42:49
举报
文章被收录于专栏:sql与spec性能sql与spec性能

一. 复制及其过程:

mysql的复制,是基于二进制日志binlog的;源(source)将所有的数据以及结构写入binlog中,binlog dump线程可以将源上二进制所有的内容发送到副本(replica);当replica上执行复制时IO线程会启动,连接到源,并要求其将二进制日志中update的内容通过binlog dump线程发送到replica上,IO线程接收到更新的内容并将其保存到relay log(中继日志)中;SQL线程会将relay log中的内容重新执行并写到replica的binlog。

二. 实验

准备两个数据库,一个是干净的,一个是保存有数据的;

  1. 源以及副本配置如下;

server_id:代表mysql数据库,并且保证在复制架构中的唯一性

log_bin:默认开启

binlog_format:指定二进制日志的格式,有statement,mixed,row三种格式

relay_log_recovery:建议设置为on,当开启时,副本SQL线程会放弃所有未执行的中继日志中的语句,将IO线程重新指向新的中继日志,并与IO线程保持位置一致,重新开始同步,确保不会有事务丢失

read-only:禁止客户端对数据库的修改,建议设置为on

skip-slave-start:可以自由决定何时开始复制,不会随着数据库的启动而开始复制

源配置
源配置
副本配置
副本配置

2. 启动复制

在复制启动时需要定位到源上binlog文件的坐标,由file和postion决定;

建立复制用户并分配replication slave权限;

show master status;#查看binlog坐标

create user replica@'%' identified by '666666';

grant replication slave on *.* to replica@'%';

flush privileges;

连接源并开启复制;

change replication source to source_host='192.168.112.88', source_user='replica',source_password='666666',source_log_file='on.000001', source_log_pos=1048;

start replica;

show replica status;#查看复制状态,若 Replica_IO_State: Connecting to source以及Running_state显示正常即成功

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一. 复制及其过程:
    • mysql的复制,是基于二进制日志binlog的;源(source)将所有的数据以及结构写入binlog中,binlog dump线程可以将源上二进制所有的内容发送到副本(replica);当replica上执行复制时IO线程会启动,连接到源,并要求其将二进制日志中update的内容通过binlog dump线程发送到replica上,IO线程接收到更新的内容并将其保存到relay log(中继日志)中;SQL线程会将relay log中的内容重新执行并写到replica的binlog。
    • 二. 实验
    相关产品与服务
    云数据库 SQL Server
    腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档