mysql的备份和恢复和日志管理

mysql的备份和恢复和日志文件(配置文件当中的设置)

备份的目的是什么:

备灾。

在生产环境中,数据的安全性非常重要。

造成数据丢失的原因:

1、程序出错

2、人为的问题

3、磁盘故障

备份的分类:

物理备份:对磁盘或者对文件直接进行备份

冷备份:脱机备份,先把指定的程序关闭然后对资源进行备份

热备份:联机备份,不用关闭程序就可以对资源进行备份

逻辑备份:根据数据库文件当中保存的sql语句,表结构等等,以特定的格式和命令对文件的内容进行还原

热备份的一种。

只能对表。库没了没有办法恢复

主从复制可以恢复

物理备份 全量备份:

把数据库的内容整个一次性的做备份。

mysql自带备份命令。可以

mysqldump -u root -p123456 --databases xy102 > /opt/xy102.sql
#备份数据库
删除数据库后
mysql -u root -p123456< /opt/xy102.sql
#恢复数据库

mysqldump -u root -p123456 --databases xy102 xy103 > /opt/xy_all
.sql
#备份多个数据库
mysqldump -u root -p123456 --all-database > /opt/all.sql
#备份所有
mysqldump -u root -p123456 xy102 student > /opt/xy102_st.sql
#备份指定数据库中的表
mysqldump -u root -p123456 xy102 student t1 > /opt/xy102_st_t1.sql
#备份数据库中多个表

备份和还原时,两台数据库的版本最好一致

增量备份:

开启二进制日志的功能

binlog 逻辑备份,会生成一个文件,这个文件里面包含了sql语句,要使用特定的方式和语句才能恢复

vim /etc/my,cof
log-bin=mysql-bin
#开始起二进制日志功能
binlog_format=MIXED
#记录二进制日志的文件格式
systemctl restart mysqld

STATEMENT 基于sql语句:只是记录用户操作的sql语句,高并发的情况之下,记录操作的sql语句的顺序可能出错

导致恢复数据时,就会有丢失或者误差。效率高

ROW 基于行:记录每一行的数据,准确,高并发也不会出错,但是恢复的效率低

MIXED 混合模式:正常情况下使用statement,高并发使用row,智能判断

mysqlbinlog --no-defaults --base64-output=decode-rows -v mysql-bin.000001
#特殊编译使mysql日志能够被二进制解析
mysqlbinlog --no-defaults /usr/local/mysql/data/mysql-bin0001 | mysql -u root -p
#从日志文件中恢复
mysqladmin -u root -p flush-logs
#给日志文件进行断点
mysqlbinlog --no-defaults --start-position ='8224' mysql-bin.00001 | mysql -u root -p
#从8224开始恢复到最后,开始位置恢复
mysqlbinlog --no-defaults --stop-position ='9011' mysql-bin.00001 | mysql -u root -p
#从开头到9011结束,后面不执行,结束位置恢复

mysqlbinlog --no-defaults --start-position ='8224' --stop-position='9011' mysql-bin.00001 | mysql -u root -p
#指定位置恢复
mysqlbinlog --no-defaults --start-datetime='2024-7-19 13:48:16' --stop-datetime='2024-7-19 13:52:25' mysql-bin00001 | mysql -u root -p
#根据时间恢复
vim /etc/my.cnf

general_log=ON
#开启通用查询日志
general_log_file=/usr/local/mysql/data/mysql_general.log
#查询日志的保存位置
log-error=/usr/local/mysql/data/mysql_error.log
#错误日志的保存位置,不需要ON,错误日志默认是开启的
slow_query_log=ON
#开启慢查询日志
slow_query_long_file=/usr/local/mysql/data/mysql_slow_query.log
#设定慢查询日志保存位置
long_query_time=5
#默认的慢查询时间10秒,超过5秒的记录都会保存


相关推荐

  1. mysql备份恢复日志管理

    2024-07-20 05:34:04       14 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-20 05:34:04       52 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-20 05:34:04       54 阅读
  3. 在Django里面运行非项目文件

    2024-07-20 05:34:04       45 阅读
  4. Python语言-面向对象

    2024-07-20 05:34:04       55 阅读

热门阅读

  1. 形状之美:WebKit中CSS形状的实现与创新

    2024-07-20 05:34:04       18 阅读
  2. 掌控视界:WebKit与CSS视口单位的卓越支持

    2024-07-20 05:34:04       16 阅读
  3. 视觉探秘:sklearn中聚类标签的可视化之道

    2024-07-20 05:34:04       17 阅读
  4. DPKG(Debian / Ubuntu包管理工具)的深入探索与使用

    2024-07-20 05:34:04       14 阅读
  5. 机器学习概貌了解

    2024-07-20 05:34:04       17 阅读
  6. HadoopHa自动安装脚本

    2024-07-20 05:34:04       14 阅读
  7. 极狐GitLab如何启用和配置PlantUML?

    2024-07-20 05:34:04       20 阅读
  8. 新建vue项目和安装第三方库

    2024-07-20 05:34:04       13 阅读
  9. MybatisPlus(MP)基础知识全解析

    2024-07-20 05:34:04       18 阅读
  10. 基于Gunicorn+Flask+Docker模型的高并发部署实践

    2024-07-20 05:34:04       16 阅读
  11. 概率论原理精解【4】

    2024-07-20 05:34:04       17 阅读
  12. Linux 下的项目开发:从入门到精通

    2024-07-20 05:34:04       16 阅读
  13. 29. python装饰器

    2024-07-20 05:34:04       14 阅读
  14. 数据库系列

    2024-07-20 05:34:04       15 阅读
  15. 编写优雅的Python程序

    2024-07-20 05:34:04       16 阅读