MySQL运维篇

运维篇的环境是Linux

目录

1.日志

        1.1错误日志

        1.2二进制日志

        1.3查询日志

        1.4慢查询日志

2.主从复制

        2.1概述

        2.2原理

        2.3搭建 

2.3.1服务器准备

2.3.2主库配置

2.3.3从库配置 

3.分库分表(未完)

        3.1介绍

        3.2Mycat概述

        3.3Mycat入门

        3.4Mycat配置

        3.5Mycat分片

        3.6Mycat管理及监控

4.读写分离

4.1介绍

4.2一主一从

4.3一主一从读写分离

4.4双主双从

4.5双主双从读写分离


1.日志

        1.1错误日志

错误日志:是 MySOL 中最重要的日志之一,它记录了当 mysgld 启动和停止时,以及服务器在运行过程中发生任何严重错误时的相关信息当数据库出现任何故障导致无法正常使用时,建议首先查看此日志。
该日志是默认开启的,Linux默认存放目录 /var/log/,默认的日志文件名为 mysqld.log 。查看日志位置:
 

show variables like '%log_error%';


        1.2二进制日志

二进制日志(BINLOG):记录了所有的 DDL(数据定义语言)语句和 DML(数据操纵语言)语句,但不包括数据查询 (SELECT、SHOW)语句。

作用:1.灾难时的数据恢复     2.MySQL的主从复制。在MySQL8版本中,默认二进制日志是开启着的,涉及到的参数如下:

show variables like '%log_bin%';

日志格式:
        MySQL服务器中提供了多种格式来记录二进制日志,具体格式及特点如下:

日志格式含义
STATEMENT基于SQL语句的日志记录,记录的是SQL语句,对数据进行修改的SQL都会记录在日志文件中
ROW基于行的日志记录,记录的是每一行的数据变更。《默认)
MIXED混合了STATEMENT和ROW两种格式,默认采用STATEMENT,在某些特殊情况下会自动切换为ROW进行记录。
show variables like '%binlog_format%';

日志查看:
                由于日志是以二进制方式存储的,不能直接读取,需要通过二进制日志查询工具 mysqlbinlog 来查看,具体语法
        

mysqlbinlog [参数选项] logfilename

参数选项:
        -d          指定数据库名称,只列出指定的数据库相关操作.
        -o          忽略掉日志中的前n行命令。
        -v          将行事件(数据变更)重构为SOL语句
        -W        将行事件(数据变更)重构为SOL语句,并输出注释信息  

日志删除:
                对于比较繁忙的业务系统,每天生成的binlog数据巨大,如果长时间不清除,将会占用大量磁盘空间。可以通过以下几种方式清理日志

含义
purge master logs to 'binlog.******' 删除******编号之前的所有日志
purge master logs before 'yyyy-mm-dd hh24:mi:ss删除日志为“yyyy-mm-dd hh24:mi:ss”之前产生的所有日志
reset master删除全部 binlog日志,删除之后,日志编号,将从 binlog.000001重新开始

也可以在mysql的配置文件中配置二进制日志的过期时间(秒),设置了之后,二进制日志过期会自动删除。
 

show variables like '%binlog_expire_logs_seconds%';


        1.3查询日志

               查询日志中记录了客户端的所有操作语句,而二进制日志不包含查询数据的SQL语句。默认情况下,查询日志是未开的。如果需要开启查询日志,可以设置以下配置:

show variables like '%general%';

(Linux)修改MySQL的配置文件 /etc/my.cnf 文件,添加如下内容
#该选项用来开启查询日志 , 可选值 : 0或者 1;0代表关闭,1代表开启general log=1
#设置日志的文件名,如果没有指定,默认的文件名为

host name.loggeneral_log_file=mysql_query.log 


        1.4慢查询日志


                慢查询日志记录了所有执行时间超过参数 long_query_time 设置值并且扫描记录数不小于 min_examined,row_limit的所有的SQL语句的日志,默认未开启。long_query_time 默认为 10 秒,最小为0,精度可以到微秒


#慢查询日志
slow querv log=1
#执行时间参数
long query time=2 

        默认情况下,不会记录管理语句,也不会记录不使用索引进行查找的查询。可以使用og_slow_admin_statements和更改此行为 log_queries_not_using_indexes,如下所述。


#记录执行较慢的管理语句
log slow admin statements =1
#记录执行较慢的未使用索引的语句
log queries not using indexes = 1 


2.主从复制

        2.1概述

        主从复制:是指将主数据库的DDL和 DML操作通过二进制日志传到从库服务器中,然后在从库上对这些日志重新执行(也叫重做),从而使得从库和主库的数据保持同步


MySOL支持一台主库同时向多台从库进行复制,从库同时也可以作为其他从服条器的主库,实现链状复制


MysQL 复制的有点主要包含以下三个方面:
1.主库出现问题,可以快速切换到从库提供服务
2.实现读写分离,降低主库的访问压力
3.可以在从库中执行备份,以避免备份期间影响主库服务


        2.2原理

MySQL的主从复制原理如下:

从上图来看,复制分成三步:
1.Master 主库在事务提交时,会把数据变更记录在二进制日志文件 Binlog 中

2.从库读取主库的二进制日志文件 Binlog ,写入到从库的中继日志 Relay Log

3.slave重做中继日志中的事件,将改变反映它自己的数据。 


        2.3搭建 

2.3.1服务器准备

准备好两台服务器之后,在上述的两台服务器中分别安装好MySQL,并完成基础的初始化准备工作

2.3.2主库配置

        1.修改配置文件/etc/my.cnf 

        2.重启服务器

        3.登录mysql,创建远程连接的账号,并授予主从复制权限

      

        4.通过指令,查看二进制日志坐标 

字段含义说明:
                file:从哪个日志文件开始推送日志文件

                position:从哪个位置开始推送日志

                binlog ignore_db:指定不需要同步的数据库 

2.3.3从库配置 

          1.修改配置文件/etc/my.cnf 

               2.重启服务器 

        3.登录mysql,设置主库配置


        上述是8.0.23中的语法。如果mysql是8.0.23之前的版本,执行如下SOL: 

        4开启同步操作

        5.查看主从同步状态 


3.分库分表

        3.1介绍

        随着互联网及移动互联网的发展,应用系统的数据量也是成指数式增长,若采用单数据库进行数据存储,存在以下性能瓶颈:

I0瓶颈:热点数据太多,数据库缓存不足,产生大量磁盘10,效率较低。请求数据太多,带宽不够,网络10瓶颈。

CPU瓶颈: 排序、分组、连接查询、聚合统计等SQL会耗费大量的CPU资源,请求数太多,CPU出现瓶颈。
        分库分表的中心思想都是将数据分散存储,使得单一数据库/表的数据量变小来缓解单一数据库的性能问题,从而达到提升数据库性能的目的 

 

         sharding]DBC:基于AOP原理,在应用程序中对本地执行的SQL进行拦截,解析、改写、路由处理。需要自行编码配置实现,只支持iava语言,性能较高。
        MyCat:数据库分库分表中间件,不用调整代码即可实现分库分表,支持多种语言,性能不及前者。


        3.2Mycat概述

                Mycat是开源的、活跃的、基于Java语言编写的MySOL数据库中间件。可以像使用mysql一样来使用mycat,对于开发人员来说根本感觉不到mycat的存在。

优势:
1.性能可靠稳定2.强大的技术团队3.体系完善4.社区活跃

下载Mycat:http://dl.mycat.org.cn/

Mycat是采用java语言开发的开源的数据库中间件,支持Windows和Linux运行环境,准备好的服务器中安装如下软件。
1.MysQL    2.JDK      3.Mycat

        3.3Mycat入门

        

  • 0~500M 存入第一个数据库
  • 500M~1000M 存入第二个数据库
  • 1000M~1500M 存入第三个数据库

        3.4Mycat配置

        

        3.5Mycat分片

             3.6Mycat管理及监控

        

4.读写分离

4.1介绍


 

4.2一主一从

4.3一主一从读写分离

4.4双主双从

4.5双主双从读写分离

  • 28
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
### 回答1: MySQL运维内参是一本介绍MySQL数据库运维的参考书籍,可以帮助数据库管理员(DBA)提供关于MySQL运维的实用知识和经验。 MySQL是一种广泛使用的关系型数据库管理系统,其运维工作对于保持数据库的稳定性和高性能至关重要。MySQL运维内参提供了一系列针对MySQL数据库运维技巧和最佳实践,帮助DBA更好地管理MySQL服务器。 MySQL运维内参涵盖了各个方面的MySQL运维知识,包括数据库安装和配置、性能优化、备份和恢复、故障处理和监控等。对于初学者来说,它提供了从入门到进阶的学习路径;对于有经验的DBA来说,它提供了解决特定问题和优化数据库性能的实用方法。 MySQL运维内参中的知识点和技巧都是经过实践验证的,可以直接应用到实际的MySQL环境中。它从实际运维中总结出的经验,包括遇到的一些常见问题和解决方案,以及一些高级技术和工具的介绍。 通过阅读MySQL运维内参,DBA可以学习到如何提高数据库性能和可靠性,如何进行合理的容量规划和监控,以及如何处理各种故障情况。对于企业而言,MySQL运维内参可以帮助降低数据库管理的成本,提高数据库的运行效率和稳定性。 总之,MySQL运维内参是一本值得DBA阅读和参考的书籍,它可以帮助DBA更好地管理MySQL数据库,提高数据库的性能和可靠性。 ### 回答2: MySQL运维内参是一本关于MySQL数据库运维方面的参考书籍,提供了使用MySQL数据库的最佳实践和运维技巧。这本书的PDF版本提供了便于读者在线阅读和下载的方式。 MySQL是一种广泛应用的关系型数据库管理系统,许多企业和组织都在其业务中使用MySQL数据库。然而,由于MySQL的复杂性和特殊性,对于数据库管理员来说,掌握MySQL运维技术是至关重要的。MySQL运维内参提供了详细的指导和建议,帮助数据库管理员更好地管理和维护MySQL数据库。 这本书包含了许多主题,包括MySQL数据库的安装和配置、性能调优、备份和恢复、故障排除等。每个主题都以实际案例和问题解决方案为基础,结合了作者多年的实践经验和深入研究。读者可以根据自己的需要选择感兴趣的章节进行学习和实践。 MySQL运维内参的PDF版本允许读者在线阅读和下载,使得读者可以随时随地获取所需的信息。这对于那些经常需要查阅MySQL运维方面的知识的数据库管理员来说非常方便。同时,PDF版本也提供了搜索和书签等功能,帮助读者更好地浏览和管理书籍内容。 总之,MySQL运维内参是一本对于MySQL数据库运维非常有价值的参考书籍,而PDF版本则提供了便捷的阅读方式,使得读者可以更好地学习和应用其中的知识。无论是初学者还是有经验的数据库管理员,都可以通过阅读这本书来提升MySQL数据库运维的能力。 ### 回答3: MySQL运维内参是一本关于MySQL数据库运维的指南手册,以PDF格式提供。MySQL是一种开源的关系型数据库管理系统,用于管理和存储大量的数据。MySQL运维内参提供了深入的MySQL运维知识和技巧,帮助数据库管理员更好地管理和维护MySQL数据库MySQL运维内参的内容包括MySQL的安装配置、数据库备份与恢复、性能优化、高可用性和集群部署等方面。这本指南详细介绍了如何正确地安装和配置MySQL数据库,包括选择适合的版本和安全设置。此外,它还提供了备份数据库和恢复数据的方法,以确保数据的安全性和完整性。 性能优化是MySQL运维工作中一个重要的方面。MySQL运维内参会介绍一些常见的性能问题和解决方法,如优化查询语句、索引的使用和调整缓存等。高可用性和集群部署也是数据库运维人员关注的重点。该指南会介绍如何搭建MySQL的主从复制和主主复制,以及如何使用集群技术来实现高可用性和负载均衡。 MySQL运维内参还提供了一些实用的脚本和工具,帮助数据库管理员更高效地进行日常工作。比如,自动备份数据库、监控数据库的运行状态和性能、查询执行计划等。这些工具和脚本可以节省管理员的时间和精力,提高工作效率。 总之,MySQL运维内参是一本非常实用的MySQL数据库管理指南,涵盖了数据库运维的各个方面。无论是初学者还是有经验的数据库管理员,都可以从中学习到宝贵的知识和经验,提高MySQL数据库的管理水平。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豆浆-plus

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值