mysql的事务控制和数据库的备份和恢复

server/2024/12/23 11:51:30/

事务控制语句

行锁和死锁

行锁

两个客户端同时对同一索引行进行操作

客户端1正常运行

客户端2想修改,被锁行

除非将事务提交才能继续运行

死锁

客户端1删除第5行

客户端2设置第1行为排他锁

客户端1删除行1被锁

客户端2更新行5被锁

如何避免死锁

mysql的备份和还原以及日志管理

备份的目的就是灾难恢复

数据备份的分类

备份策略

全量备份

查看mysql数据保存路径

vim /etc/my.cnf

tar Jcvf /opt/mysql_all_$(date +%F).tar.xz /usr/local/mysql/data/

mysql的data目录,打包的格式.xz,保存到opt的目录下

mysqldump的备份和恢复

热备份

通过二进制日志进行备份和还原

先将mysql的二进制日志功能打开

二进制日志的记录格式

使用mysqlbinlog命令来查看日志文件

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001

二进制日志的分割
mysqladimn -u root -p123456 flush-log

通过二进制日志进行恢复
mysqlbinlog --no-defaults mysql-bin.000001 | mysql -u root -p123456

如果日志在当前文件则不需要指明路径,反之必须指明路径

mysqladmin -u root -p123456 flush-logs
我们是按天来执行的,我们就可以按天对数据库进行增量的备份。
mysqlbinlog --no-defaults mysql-bin.000004 | mysql -u root -p123456
基于位置和时间进行恢复

mysqlbinlog --no-defaults --start-position='1338' mysql-bin.000005 | mysql -u root -p123456
从指定位置开始恢复数据,一直恢复到文件的结尾。
mysqlbinlog --no-defaults --stop-position='1338' mysql-bin.000005 | mysql -u root -p123456
从开始恢复到结束位置
从指定位置开始,到指定的位置结束:
mysqlbinlog --no-defaults --start-position='1338' --stop-position='1338' mysql-bin.000005 |mysql -u root -p123456
mysqlbinlog --no-defaults --start-datetime='1338' mysql-bin.000005 | mysql -u root -p123456
从指定时间开始恢复数据,一直恢复到文件的结尾。
mysqlbinlog --no-defaults --stop-datetime='1338' mysql-bin.000005 | mysql -u root -p123456
从开始时间到结束位置
从指定时间开始,到指定的时间结束:
mysqlbinlog --no-defaults --start-datetime='2024-12-20 13:47:17' --stop-datetime='2024-12-20 13:47:38' mysql-bin.000005 |mysql -u root -p123456
log-error=/usr/local/mysql/date/mysql-error.log
#记录mysql在启动,停止或者是运行时,产生错误的日志
general_log=ON general_log_file=/usr/local/mysql/date/mysql_general.log
#开启mysql在使用过程中的记录日志
slow_query_log=ON slow_query_log_file=/usr/local/mysql/date/mysql_slow_query.log long_query_time=5
#开启慢查询日志,用来记录所有查询的时间超过long_query_time=5的记录,查询的执行时间超过5秒钟就会记录。
不注明,默认是10秒

开启错误日志

og-error=/usr/local/mysql/date/mysql-error.log
#记录mysql在启动,停止或者是运行时,产生错误的日志
general_log=ON general_log_file=/usr/local/mysql/date/mysql_general.log
#开启mysql在使用过程中的记录日志
slow_query_log=ON slow_query_log_file=/usr/local/mysql/date/mysql_slow_query.log long_query_time=5
#开启慢查询日志,用来记录所有查询的时间超过long_query_time=5的记录,查询的执行时间超过5秒钟就会记录。
不注明,默认是10秒


http://www.ppmy.cn/server/152483.html

相关文章

Knowledge Graph Prompting for Multi-Document Question Answering

题目 知识图谱提示多文档问答 论文地址:https://arxiv.org/abs/2308.11730 项目地址:https://github.com/YuWVandy/KG-LLM-MDQA 摘要 大型语言模型 (LLM) 的“预训练、提示、预测”范式在开放域问答 (OD-QA) 中取得了显著成功。然而,很少有研…

每日计划-1221

1. 完成 SQL6 查找学校是北大的学生信息 2. 八股部分 1) 选择排序冒泡排序 包括 代码 时间复杂度 空间复杂度 稳定性 是否能对代码进行提升 选择排序代码&#xff1a; #include <iostream> #include <vector>using namespace std;// 选择排序函数 void sel…

vue入门教程:组件透传 Attributes

一、透传Attributes的基本概念 透传Attributes指的是传递给一个组件&#xff0c;但没有被该组件声明为props或emits的attribute或者v-on事件监听器。最常见的例子包括class、style和id。当一个组件以单个元素为根路径渲染时&#xff0c;透传的attribute会自动被添加到根元素上…

RFdiffusion get_torsions函数解读

函数功能 get_torsions 函数根据输入的原子坐标(xyz_in)和氨基酸序列(seq),计算一组主链和侧链的扭转角(torsions)。同时生成备用扭转角(torsions_alt),用于表示可以镜像翻转的几何结构,并返回掩码(tors_mask)和是否平面化(tors_planar)的信息。 输入参数 xyz…

本机如何连接虚拟机MYSQL

要让本机&#xff08;主机&#xff09;连接到虚拟机上的 MySQL 数据库&#xff0c;你需要确保虚拟机和主机之间的网络连接正常&#xff0c;并且 MySQL 配置允许外部连接。以下是实现本机连接虚拟机 MySQL 的步骤&#xff1a; 步骤 1&#xff1a;确认虚拟机与本机的网络连接 确…

FastAPI vs Go 性能对比分析

FastAPI vs Go 性能对比分析 总体结论 FastAPI 虽然性能优秀&#xff0c;但整体上仍无法完全达到 Go 的性能水平。 详细对比 优势 FastAPI 开发效率高Python生态系统丰富自动API文档生成类型检查和验证异步支持好 Go 原生性能更强内存占用更低并发处理能力强编译型语言的优…

防火墙规则配置错误导致的网络问题排查

防火墙规则配置错误可能导致服务器的网络中断、服务不可用或访问受限等问题。排查和修复防火墙规则配置错误需要系统性的方法&#xff0c;以快速定位问题并恢复正常服务。以下是防火墙规则配置错误导致网络问题的排查与解决指南。 一、常见防火墙配置错误及其影响 错误的默认策…

vue3+vite 引入动画组件库 Inspira UI

关于Inspira UI Inspira UI不是传统的组件库。相反&#xff0c;它是精选的优雅组件集合&#xff0c;您可以轻松将其集成到您的应用程序中。只需选择所需的组件&#xff0c;复制代码&#xff0c;然后自定义以适合您的项目即可。您可以随意使用和修改代码&#xff01; 官网地址…