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


SQL语句都包含哪些类型
DDL
DCL
DML
DQL
Yum 安装MySQL的配置文件
- 配置文件:/etc/my.cnf
- 日志目录:/var/log/mysqld.log
- 错误日志:/var/log/mysql/error.log
MySQL的主从切换
- 查看主从复制状态
- 停止主数据库的写入操作
- 记录当前二级制日志文件和位置
- 更新从数据库的配置
- 在新主数据库上启用写入操作
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主从延迟如何解决
网络优化:延迟问题可能与网络带宽和延迟有关。确保主从服务器之间的网络连接稳定,并优化网络带宽,可以减少复制延迟。
优化复制线程:MySQL主从复制中有一个I/O线程负责读取主服务器的二进制日志,另一个SQL线程负责应用日志到从服务器。优化这些复制线程的性能参数和配置,如增加线程数、调整缓冲区大小等,可以提高复制的效率。
减少主服务器的负载:如果主服务器的负载较高,可能会导致复制延迟。考虑优化主服务器的性能和负载,如调整查询优化、增加硬件资源等,以减轻主服务器的负载,提高复制性能。
优化从服务器的配置:从服务器的性能和配置也会影响复制延迟。确保从服务器具备足够的资源,如CPU、内存、磁盘等,并根据实际情况进行适当的配置优化,以提高复制性能。
监控和调优:定期监控主从复制的延迟情况,并分析延迟发生的原因。根据监控结果进行调优,如调整复制参数、优化查询语句、增加硬件资源等,以缩小复制延迟。
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
相关文章:
开源数据库Mysql_DBA运维实战 (总结)
开源数据库Mysql_DBA运维实战 (总结) SQL语句都包含哪些类型 DDL DCL DML DQL Yum 安装MySQL的配置文件 配置文件:/etc/my.cnf日志目录:/var/log/mysqld.log错误日志:/var/log/mysql/error.log MySQL的主从切换 查看主…...
图神经网络与分子表征:1. 分子图和图神经网络基础
CSDN的朋友们大家好,好久没写系列文章了。 近期读了很多图神经网络(GNN)和分子表征(molecular representation)的论文,正好最近不是很忙,所以我决定把自己的学习过程记录下来,与大家…...
Spring Boot与Redisson的整合。分布式锁
Spring Boot与Redisson的整合可以帮助您在Spring Boot应用程序中使用分布式锁、缓存等功能。下面是一些基本步骤来整合Spring Boot与Redisson: 添加Maven/Gradle依赖: 在您的Spring Boot项目的pom.xml(Maven)或build.gradle&#…...
Lua中逻辑运算符and,or,not 区别与用法
在Lua中,逻辑运算符包括 and、or 和 not。它们用于对布尔值进行逻辑运算。 and运算符: 当同时满足两个表达式时,返回第二个表达式的值;否则,返回第一个表达式的值。如果第一个表 达式的值为false或nil,则…...
使用 spaCy 增强 NLP 管道
介绍 spaCy 是一个用于自然语言处理 (NLP) 的 Python 库。SpaCy 的 NLP 管道是免费且开源的。开发人员使用它来创建信息提取和自然语言理解系统,例如 Cython。使用该工具进行生产,拥有简洁且用户友好的 API。 如果您处理大量文本,您会想了解更多相关信息。例如,它是关于什…...
【HCIP】08.ISIS中间系统
链路状态协议,传递LSA信息ISIS基于数据链路层封装在OSI时,也有自己的网络层地址和自己的路由协议,即ISIS。之前的ISIS支持OSI的网络层地址,是为OSI中的CLNP(无连接网络协议)网络设计的路由协议,…...
Android 13 Framework 添加自定义的系统服务CustomService
目的: 添加自定义的系统服务,在自定义的服务中开发定制的API接口和功能,独立于系统核心服务,方便开发和维护。 开发环境:Android 13 MTK平台 涉及修改的文件如下 device/mediatek/sepolicy/base/private/service_contexts device/mediatek/sepolicy/base/vendor/platfo…...
前端食堂技术周刊第 95 期:Fresh 1.4、Rollup 迁移至 SWC计划、RSC Devtools、使用开源库的边界、AI 帮你讲论文
美味值:🌟🌟🌟🌟🌟 口味:冰葡美式 食堂技术周刊仓库地址:https://github.com/Geekhyt/weekly 大家好,我是童欧巴。欢迎来到前端食堂技术周刊,我们先来看下…...
【TypeScript】枚举类型
在 TypeScript 中,枚举(Enum)是一种用于定义命名常量集合的数据类型。枚举使代码更加可读和可维护,因为它们为一组具有语义的值提供了命名。 以下是 TypeScript 中枚举的基本用法和特点: // 声明一个枚举 enum Direc…...
快速通过华为HCIP认证
你可以按照以下步骤进行准备和学习: 华为认证课程和资料--提取码:1234https://pan.baidu.com/s/1YJhD8QbocHhZ30MvrKm8hg 了解认证要求:查看华为官方网站上的HCIP认证要求和考试大纲,了解考试的内容、考试形式和考试要求。 学习相关知识&am…...
派森 #P124. 公式计算
描述 输入数正整数m,输出0! 1! ...m!的计算结果。 样例 输入 5 输出 154 代码: m int(input()) result 1 factorial 1 for i in range(1, m 1):factorial * iresult factorial print(result) # 法2def factorial(n):"""计…...
opencv进阶14-Harris角点检测-cv2.cornerHarris
类似于人的眼睛和大脑,OpenCV可以检测图像的主要特征并将这 些特征提取到所谓的图像描述符中。然后,可以将这些特征作为数据 库,支持基于图像的搜索。此外,我们可以使用关键点将图像拼接起 来,组成更大的图像。&#x…...
JVM中对象和GC Root之间的四种引用关系
1. 强引用 只有所有 GC Roots 对象都不通过【强引用】引用该对象,该对象才能被垃圾回收 由GC Root直接new出来的对象是强引用,只有当GC Root不再引用该对象的时候,才会被回收 例子: List<String> list new ArrayList<&…...
【李宏毅机器学习】注意力机制
输出 我们会遇到不同的任务,针对输出的不一样,我们对任务进行划分 给多少输出多少 给一堆向量,输出一个label,比如说情感分析 还有一种任务是由机器决定的要输出多少个label,seq2seq的任务就是这种,翻译也…...
Nginx使用keepalived配置VIP
VIP常用于负载均衡的高可用,使用VIP可以给多个主机绑定一个IP,这样,当某个负载应用挂了之后,可以自动切到另一个负载。 我这里是在k8s环境中做的测试,集群中有6个节点,我给140和141两个节点配置VIP。 1. 安…...
C语言编写图形界面
文章目录 环境使用库基础概念句柄 程序的入口创建窗口定义窗口类注册窗口类创建窗口 完整代码运行效果 环境 使用的是VSCode MinGW; 使用库 我们使用windows.h库来实现图形化界面。 头文件如下: #include <windows.h>windows.h是 Windows 操作…...
K8s学习笔记3
Kubernetes功能: Kubernetes是一个轻便的可扩展的开源平台,用于管理容器化应用和服务。通过Kubernetes能够进行应用的自动化部署和扩缩容。在Kubernetes中,会将组成应用的容器组合成一个逻辑单元以更易管理和发现。Kubernetes积累了作为Goog…...
ceph集群的扩容缩容
文章目录 集群扩容添加osd使用ceph-deploy工具手动添加 添加节点新节点前期准备新节点安装ceph,出现版本冲突 ceph-deploy增加节点 集群缩容删除osd删除节点 添加monitor节点删除monitor节点使用ceph-deploy卸载集群 实验所用虚拟机均为Centos 7.6系统,8…...
gremlin安装使用 详细步骤
gremlin是一个图数据库查询工具,注意他只是一个工具类似于dbeaver,navicat,sqlyog,是专门来分析图数据库的一个工具。 下载 下载地址Apache Download Mirrors 省事的可以直接 wget https://www.apache.org/dyn/closer.lua/tin…...
Java语言怎么编写一个程序计算出租车的运输费用:出租车起步15公里以内20块钱,需要支付调头费用
下面是一个Java语言编写的计算出租车运输费用的程序: java import java.util.Scanner; public class TaxiFareCalculator { public static void main(String[] args) { Scanner input new Scanner(System.in); System.out.print("请输入出租车行驶的里程&…...
大数据学习栈记——Neo4j的安装与使用
本文介绍图数据库Neofj的安装与使用,操作系统:Ubuntu24.04,Neofj版本:2025.04.0。 Apt安装 Neofj可以进行官网安装:Neo4j Deployment Center - Graph Database & Analytics 我这里安装是添加软件源的方法 最新版…...
应用升级/灾备测试时使用guarantee 闪回点迅速回退
1.场景 应用要升级,当升级失败时,数据库回退到升级前. 要测试系统,测试完成后,数据库要回退到测试前。 相对于RMAN恢复需要很长时间, 数据库闪回只需要几分钟。 2.技术实现 数据库设置 2个db_recovery参数 创建guarantee闪回点,不需要开启数据库闪回。…...
React Native 导航系统实战(React Navigation)
导航系统实战(React Navigation) React Navigation 是 React Native 应用中最常用的导航库之一,它提供了多种导航模式,如堆栈导航(Stack Navigator)、标签导航(Tab Navigator)和抽屉…...
全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比
目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec? IPsec VPN 5.1 IPsec传输模式(Transport Mode) 5.2 IPsec隧道模式(Tunne…...
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南
精益数据分析(97/126):邮件营销与用户参与度的关键指标优化指南 在数字化营销时代,邮件列表效度、用户参与度和网站性能等指标往往决定着创业公司的增长成败。今天,我们将深入解析邮件打开率、网站可用性、页面参与时…...
NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈
在日常iOS开发过程中,性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期,开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发,但背后往往隐藏着系统资源调度不当…...
Java求职者面试指南:计算机基础与源码原理深度解析
Java求职者面试指南:计算机基础与源码原理深度解析 第一轮提问:基础概念问题 1. 请解释什么是进程和线程的区别? 面试官:进程是程序的一次执行过程,是系统进行资源分配和调度的基本单位;而线程是进程中的…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
