首页 > 数据库 >开源数据库Mysql_DBA运维实战 (总结)

开源数据库Mysql_DBA运维实战 (总结)

时间:2023-08-19 11:32:27浏览次数:48  
标签:运维 DBA 数据库 Mysql 查询 MySQL 服务器 日志 优化


开源数据库Mysql_DBA运维实战 (总结)

开源数据库Mysql_DBA运维实战 (总结)_服务器

SQL语句都包含哪些类型

DDL

DCL

DML

DQL

Yum 安装MySQL的配置文件

  1. 配置文件:/etc/my.cnf
  2. 日志目录:/var/log/mysqld.log
  3. 错误日志:/var/log/mysql/error.log

MySQL的主从切换

  1. 查看主从复制状态
  2. 停止主数据库的写入操作
  3. 记录当前二级制日志文件和位置
  4. 更新从数据库的配置
  5. 在新主数据库上启用写入操作

MySQL主从复制的步骤

MySQL主从复制是一种用于数据备份和负载均衡的机制,它允许在一个MySQL服务器(主服务器)上执行写操作,并将这些操作同步到其他一个或多个MySQL服务器(从服务器)。通过这种方式,可以提高数据库性能、可靠性和可扩展性。

MySQL主从复制所需的基本步骤:

1. 配置主服务器
   在主服务器上,需要启用二进制日志记录(binlog)并设置唯一的服务器ID。二进制日志记录将捕获所有对数据库的写操作,而服务器ID将在主服务器和从服务器之间提供唯一标识符。

2. 配置从服务器
   在从服务器上,需要启用中继日志记录(relay log),并将其指定为主服务器的二进制日志位置。然后设置唯一的服务器ID,以便主服务器和从服务器之间进行正确的数据同步。

3. 启动复制过程
   在主服务器上,必须创建一个从服务器帐户,并授予复制权限。从服务器将使用此帐户连接到主服务器,并检查二进制日志以获取更改。在从服务器上,必须配置连接信息以确保与主服务器的正确通信。

完成这些步骤后,主服务器上的任何更改都将自动同步到从服务器。从服务器将成为可读副本,可以使用它来处理只读查询,而主服务器则处理写操作。

需要注意的是,在MySQL主从复制中,从服务器只能读取数据。如果要在从服务器上执行任何写操作,则必须将其作为主服务器启动,并且必须确保在切换时正确处理数据同步。

MySQL主从复制的原理

前提是作为主服务器角色的数据库服务器必须开启二进制(binlog)日志

原理: 主服务器上面的任何修改都会保存在二进制日志( Bin-log日志) 里面。 从服务器上面启动一个I/O线程, 连接到主服务器上面请求读取二进制(Bin-log)日志,然后把读取到的二进制日志写到本地的Realy-log(中继日志)里面。 从服务器上面同时开启一个SQL线程,读取Realy-log(中继日志),如果发现有更新立即把更新的内容在本机的数据库上面执行一遍。

MySQL主从延迟如何解决

  1. 网络优化:延迟问题可能与网络带宽和延迟有关。确保主从服务器之间的网络连接稳定,并优化网络带宽,可以减少复制延迟。
  2. 优化复制线程:MySQL主从复制中有一个I/O线程负责读取主服务器的二进制日志,另一个SQL线程负责应用日志到从服务器。优化这些复制线程的性能参数和配置,如增加线程数、调整缓冲区大小等,可以提高复制的效率。
  3. 减少主服务器的负载:如果主服务器的负载较高,可能会导致复制延迟。考虑优化主服务器的性能和负载,如调整查询优化、增加硬件资源等,以减轻主服务器的负载,提高复制性能。
  4. 优化从服务器的配置:从服务器的性能和配置也会影响复制延迟。确保从服务器具备足够的资源,如CPU、内存、磁盘等,并根据实际情况进行适当的配置优化,以提高复制性能。
  5. 监控和调优:定期监控主从复制的延迟情况,并分析延迟发生的原因。根据监控结果进行调优,如调整复制参数、优化查询语句、增加硬件资源等,以缩小复制延迟。

MySQL的优化操作

MySQL是一个常用的关系型数据库管理系统,对其进行优化操作可以提升数据库的性能和效率。

我们可以定期优化和重建索引,提高索引的性能和效率,使用合适的查询缓存机制,根据负载情况,调整MySQL配置参数,合理设计表结构,避免冗余数据,使用主从复制和主从集群来实现读写分离和负载均衡,以提高系统的可用性和性能

以下是一些常见的MySQL优化操作:

1. 索引优化:通过创建适当的索引来加快查询速度。可以使用`CREATE INDEX`语句创建索引,也可以使用`EXPLAIN`命令来分析查询语句的执行计划,找出需要创建索引的字段。

2. 查询优化:避免使用`SELECT *`查询所有字段,而是只选择需要的字段。使用`WHERE`子句限制查询的范围,避免全表扫描。使用`JOIN`语句来优化多表查询。

3. 配置优化:调整MySQL的配置参数来适应实际需求。例如,增加`innodb_buffer_pool_size`参数的值可以提高InnoDB存储引擎的性能。

4. 表结构优化:避免使用过多的冗余字段和表,合理设计表结构。使用合适的数据类型来存储数据,避免浪费空间。

5. 缓存优化:使用缓存来减少对数据库的访问。可以使用MySQL自带的查询缓存功能,也可以使用外部缓存系统如Redis。

6. 查询缓存的使用:MySQL自带的查询缓存功能可以缓存查询结果,提高查询性能。但是在高并发环境下,查询缓存可能会导致性能问题,因此需要根据实际情况来决定是否启用查询缓存。

以上只是一些常见的MySQL优化操作,具体的优化策略需要根据实际情况进行调整。在进行优化操作之前,建议先进行性能测试和分析,找出瓶颈所在,并根据实际情况来选择合适的优化方法。


1. 选择合适的存储引擎: InnoDB
2. 选取磁盘读写速度较快的设备作为Mysql服务器
3. 充分使用索引
4. 增加慢查询日志功能
5. 频繁访问的数据,用缓存数据库解决
6. 单条查询最后增加 LIMIT 1,停止全表扫描
7. 设置最大连接数
8. 设置引擎的读写速度

MySQL如何备份

使用mysqldump命令导出mysql数据库的结构和数据,保存为sql文件

Mysqldump -u username -p password --all-databases > backup.sql

MySQL集群架构

集群目的

负载均衡    解决高并发

高可用HA   服务可用性

远程灾备     数据有效性


一主一从

主节点:负责接受客户端的写请求,并将写入数据同步到节点

从节点:只能读取数据,不能对数据库进行写操作,通过异步复制的方式,接受主节点的binlog,并在本地重放这些操作,实现与主库数据的同步

MySQL读写分离


定义: MySQL读写分离是指将数据库的读操作和写操作分别分配到不同的服务器上执 行,以提高服务器的整体性能。

实现方式: 一般实现MySQL读写分离可以通过在应用程序中手动编写读写分离代码或 使用第三方中间件,在应用程序与数据库之间增加一个代理层来实现。目前比较常用的 中间件有MHA、MaxScale、proxysql等。

原理: 读写分离的原理就是将所有的写操作都集中在一个master server上,而把读操 作分散到多个slave server中,并通过复制来保证数据的一致性。读写分离的优势在于 能够避免过多的查询操作对主服务器的影响,从而提高了应用程序的并发能力。

配置: 在配置MySQL的读写分离时,需要在应用程序中指定读写分离的地址和端口号, 并且要注意读操作是否会异常等问题。维护: 在维护MySQL的读写分离时,需要对主 服务器和从服务器都进行监控,尽可能降低延迟并确保数据的一致性。同时还需要做好 备份和恢复工作,以便在出现故障时能够迅速恢复。

MySQL的具体恢复流程

如果存在备份文件,可以从备份文件进行恢复,停止mysql,将备份文件复制到mysql目录下,启动mysql


标签:运维,DBA,数据库,Mysql,查询,MySQL,服务器,日志,优化
From: https://blog.51cto.com/SongR/7147989

相关文章

  • 启动mysql时报错"/etc/init.d/mysqld: Permission denied"
    问题描述:启动mysql时报错"/etc/init.d/mysqld:Permissiondenied",如下所示:数据库:mysql5.5.18系统:rhel6.51、异常重现[root@MySQL5518-Master~]#servicemysqldstartenv:/etc/init.d/mysqld:Permissiondenied2、解决步骤[root@MySQL5518-Master~]#ll/etc/init.d......
  • 【LeetCode173. 最多连胜的次数】MySQL用户变量编程解法
    目录题目地址题目描述代码题目地址https://leetcode.cn/problems/longest-winning-streak/description/题目描述选手的 连胜数是指连续获胜的次数,且没有被平局或输球中断。编写解决方案来计算每个参赛选手最多的连胜数。结果可以以任何顺序返回。代码WITHt1AS(......
  • Java智慧工地系统源码(微服务框架+Java+MySQL)
    智慧工地系统是依托物联网、互联网、AI、可视化建立的大数据管理平台,是一种全新的管理模式,能够实现劳务管理、安全施工、绿色施工的智能化和互联网化。围绕施工现场管理的人、机、料、法、环五大维度,以及施工过程管理的进度、质量、安全三大体系为基础应用,实现全面高效的工程管理需......
  • 【LeetCode1454. 活跃用户】MySQL 用户自定义变量,面向过程编程解决"连续天数"的问题
    目录题目地址题目描述代码题目地址https://leetcode.cn/problems/active-users/description/题目描述活跃用户是指那些至少连续 5天登录账户的用户。编写解决方案, 找到活跃用户的id和name。返回的结果表按照id排序 。代码注意需要处理,同一天多次登录的情形......
  • Linux unixODBC 连接 MySQL数据库
    LinuxunixODBC连接MySQL数据库1.下载unixODBC及MySQLConnector/ODBC1.1unixODBC下载https://www.unixodbc.org/ 1.2MySQLConnector/ODBC下载https://downloads.mysql.com/archives/c-odbc/选择版本选择:5.3.132. 安装驱动安装unixODBCtar-zxvfunix......
  • Mysql数据库
     问题1:如何定位Mysql慢查询?分析:聚合查询、多表查询、表数据量过大、深度分页查询,导致页面加载慢、接口压测响应时间超过1s。答:A使用开源运维工具,比如Arthas、SkyWalking;B使用Mysql自带的慢查询日志,调试阶段使用; 问题2:SQL执行慢,是如何分析优化的呢?聚合查询,加临时表......
  • 构建高性能的后端服务:使用 Java Spring Boot 和 MySQL
    在现代应用开发中,构建高性能的后端服务是至关重要的。本文将介绍如何利用JavaSpringBoot框架和MySQL数据库来构建一个高性能的后端服务,实现数据存储与检索。为什么选择JavaSpringBoot和MySQL?JavaSpringBoot:SpringBoot是一个快速开发框架,可以帮助你迅速构建独立的、......
  • zabbix-agent2监控mysql
    1、安装zabbixagent2到mysql服务器mysql服务器地址为10.0.0.6,安装zabbix_agent2。不同系统的安装方式有略微差别2、在zabbixagent2端修改配置vim/etc/zabbix/zabbix_agent2.confServer=10.0.0.5ServerActive=10.0.0.5Hostname=10.0.0.63、在mysql服务器新建zabbix监控......
  • Linux 下php7.2安装mysql扩展
    环境CPU:x86_64OS:CentOSLinuxrelease7.5php:7.2.34pdo_mysql:7.2.34安装进入安装包mysql扩展目录进入到php安装包(php-7.2.34.tar.gz)的解压目录php-7.2.34中的扩展目录,准备进行编译cd/opt/php-7.2.34/ext/pdo_mysql编译安装mysql扩展这个过程3步执行:--with......
  • mysql中利用sql语句修改字段名称,字段长度等操作--九五小庞
    在网站重构中,通常会进行数据结构的修改,所以添加,删除,增加mysql表的字段是难免的,有时为了方便,还会增加修改表或字段的注释,把同字段属性调整到一块儿。这些操作可以在phpmyadmin或者别的mysql管理工具中完成,但是我们有时为了更方便的管理,会选择写sql语句来实现。1.修改字段的长度语......