news 2025/12/30 3:01:41

MySQL运维篇——日志和主从复制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
MySQL运维篇——日志和主从复制

日志

(错误日志,二进制日志,查询日志,慢查询日志)

(1)错误日志:服务器运行中发生错误时的相关信息 /var/log/

show variables like ‘%log_error%’ ; —查看日志位置

(2)二进制日志binlog:记录了所有DDL语句(数据库和表操作)和DML语句(增删改数据),不包含查询语句。

作用:灾难时数据恢复、mysql主从复制

show variables like ‘%log_bin%’ ; —是否开启,日志文件位置,日志索引

日志格式:statement、row(默认)、mixed,查看show variables like ‘%binlog_format%’ ;

--读日志语句(更新前后的数据都有) mysqlbinlog [option] logfile_name --参数-d指定数据库名称,-o忽略前n行,-v将行事件重构为sql语句 --参数-vv将行事件重构为sql语句,并输出注释信息 mysqlbinlog -v binlog.000002 --日志清理 reset master; --删除全部binlog日志,日志编号将从binlog.ooooo1重新开始 purge master logs to 'binlog.***'; --删除***编号之前的所有日志 purge master logs before 'yyyy-mm-dd hh24:mi:ss'; --删除指定时间之前产生的所有日志 --配置二进制日志的过期时间,设置后过期自动删除 show variables like '%binlog_expire_logs_seconds%';

(3)查询日志:记录所有操作语句,默认查询日志未开启。

show variables like ‘%general%’;

(4)慢查询日志:记录所有执行时间超过long_query_time参数并且扫描记录数不小于min_examined_row_limit的所有sql语句,默认未开启,默认10秒

在配置文件设置

slow_query_log=1 # 开启

long_query_time=2 # 时间参数

主从复制

主从复制:两台服务器,一台主库master,一台从库slave,将主数据库的操作通过二进制日志文件binlog传到从库,从库上对这些日志重新执行(重做),使得两者之间数据保存同步。

MySQL支持一台主库同时向多台从库进行复制,从库同时也可以作为主库,实现链状复制。

作用:主库出现问题,快速切换从库提供服务;实现读写分离,降低主库访问压力;可以从库执行备份,避免备份期间影响主库服务;

原理:主库事务提交数据变更记录在binlog——从库读取binlog写入从库的中继日志relaylog——从库重做relaylog中的事件,改变自己的数据;

搭建流程(主库上所有数据库之后的操作都会同步到从库,从binlog.000004的663位置之后开始接收,主库之前已有的历史数据没有同步,增量复制)

--ubuntu的mysql的配置文件/etc/mysql/mysql.conf.d/mysqld.cnf --1、主库修改配置文件并重启 server-id=1 --必须唯一 log-bin=mysql-bin --开启二进制日志 binlog_format=row --设置二进制日志row格式 systemctl restart mysql --2、进入主库mysql,创建复制用户(从库使用来复制binlog) mysql -uroot -p CREATE USER 'repl'@'%' IDENTIFIED BY '123456'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; --授予仅主从复制的权限 FLUSH PRIVILEGES; --刷新权限 --3、查看binlog位置(File binlog.000004 position 663) SHOW MASTER STATUS; --3.1(如果需要做全量同步,主库加全局锁执行mysqldump+文件导入) --4、从库修改配置文件并重启 server-id=2 read_only=1 --只读 systemctl restart mysql --5、进入从库mysql,设置主库配置(主库IP地址,连接主库的用户名和密码,binlog文件名和位置) CHANGE MASTER TO MASTER_HOST='192.168.10.10',MASTER_USER='repl',MASTER_PASSWORD='123456', MASTER_LOG_FILE='mysql-bin.000003',MASTER_LOG_POS=154; --6、启动从库复制线程,查看复制状态(两个running是yes) START SLAVE; SHOW SLAVE STATUS\G;
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2025/12/28 7:33:55

北京历年住房公积金月缴存额上限及同比增长率表

住房公积金年度执行时间范围月缴存额上限(元)同比增长率(%)备注说明2013-3760-无前期数据20142014.07.01-2015.06.30417010.90较 2013 年上调20152015.07.01-2016.06.30465411.61-20162016.07.01-2017.06.3051029.63-20172017.07.…

作者头像 李华
网站建设 2025/12/25 5:24:19

【计算机网络笔记】第五章 网络层的控制平面

一、路由协议路由协议的目标:路由协议的核心目标是确定从发送主机到接收主机的最优路径(即路由)。路径指数据包从初始源主机到目标主机时,需经过的路由器序列。最优路径需满足成本最低、传输速度最快、网络拥塞最少等条件。路由算…

作者头像 李华
网站建设 2025/12/24 4:16:18

Scarab模组管理器:空洞骑士玩家的终极安装解决方案

Scarab模组管理器:空洞骑士玩家的终极安装解决方案 【免费下载链接】Scarab An installer for Hollow Knight mods written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/sc/Scarab Scarab是一款专为《空洞骑士》量身打造的跨平台模组管理工具&am…

作者头像 李华
网站建设 2025/12/24 4:16:16

SolidWorks零件连接方式介绍

在SolidWorks中,零件的连接方式是通过装配体环境实现的,其核心是通过配合关系(Mate)、高级连接(Advanced Mates)或特定功能模块(如焊接、螺栓连接、运动仿真中的约束)来定义零件间的…

作者头像 李华
网站建设 2025/12/24 4:16:14

Flutter与DevEco Studio结合开发简单项目实战指南

随着跨平台开发技术的普及和HarmonyOS生态的崛起,将Flutter的跨平台优势与DevEco Studio的HarmonyOS开发能力相结合,成为不少开发者的需求。本文将以一个简单的“待办事项列表”项目为例,详细讲解如何使用Flutter与DevEco Studio协同开发&…

作者头像 李华
网站建设 2025/12/25 11:52:47

Flutter开发基石:Dart语言从入门到实战核心指南

作为Flutter框架的唯一开发语言,Dart凭借其简洁的语法、高效的性能以及对跨平台开发的良好适配,成为移动开发领域的热门语言。对于想要入门Flutter的开发者而言,掌握Dart语言是搭建开发能力的核心前提。本文将从Dart语言的基础语法入手&#…

作者头像 李华