MySQL数据库有关备份和恢复的操作详解(一)

MySQL数据库有关备份和恢复的操作详解

一、数据备份的重要性:

1、在生产环境中,数据的安全性至关重要;

2、任何数据的丢失都可能产生严重的后果;

3、造成数据丢失的原因:

-程序错误
-人为操作错误
-运算错误
-磁盘故障
-灾难(如火灾、地震)和盗窃
例如之前的哔站上海服务器。

二、前言:日志

MySQL 的日志默认保存位置为 /usr/local/mysql/data。
在这里插入图片描述
日志类型与作用:

1.redo 重做日志:达到事务一致性(每次重启会重做)

作用:确保日志的持久性,防止在发生故障,脏页未写入磁盘。重启数据库会进行redo log执行重做,达到事务一致性。

2.undo 回滚日志

作用:保证数据的原子性,记录事务发生之前的一个版本,用于回滚,innodb事务可重复读和读取已提交 隔离级别就是通过mvcc+undo实现

3.errorlog 错误日志⭐⭐⭐

作用:Mysql本身启动,停止,运行期间发生的错误信息

4.slow query log 慢查询日志⭐⭐⭐

作用:记录执行时间过长的sql,时间阈值(10s)可以配置,只记录执行成功
另一个作用:在于提醒优化

5.bin log 二进制日志⭐⭐⭐⭐

作用:用于主从复制,实现主从同步
记录的内容是:数据库中执行的sql语句

6.relay log 中继日志⭐⭐⭐⭐

作用:用于数据库主从同步,将主库发来的bin log保存在本地,然后从库进行回放

7.general log 普通日志

作用:记录数据库的操作明细,默认关闭,开启后会降低数据库性能

三、MySQL-日志配置文件:

1、配置主配置文件:my.cnf

vim /etc/my.cnf
[mysqld]
##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/usr/local/mysql/data/mysql_error.log     #指定日志的保存位置和文件名

##通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log

##二进制日志(binlog),用来记录所有更新了数据或者已经潜在更新了数据的语句,记录了数据的更改,可用于数据恢复,默认已开启
log-bin=mysql-bin      
或
log_bin=mysql-bin

##中继日志
一般情况下它在Mysql主从同步(复制)、读写分离集群的从节点开启。主节点一般不需要这个日志

##慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询语句执行时间长,以便提醒优化,默认是关闭的
s1ow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5        #设置超过5秒执行的语句被记录,缺省时为10秒

复制文段:

log-error=/usr/local/mysql/data/mysql_error.log
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
log-bin=mysql-bin
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5
--->wq
systemctl restart mysqld
mysql -u root -p
show variables like 'general%';       #查看通用查询日志是否开启
show variables like 'log_bin%';       #查看二进制日志是否开启
show variables like '%slow%';         #查看慢查询日功能是否开启
show variables like 'long_query_time';    #查看慢查询时间设置
set global slow_query_log=ON;         #在数据库中设置开启慢查询的方法

PS:variables 表示变量 like 表示模糊查询

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
通用查询日志;
在这里插入图片描述
二进制日志;
在这里插入图片描述
慢查询日志;
在这里插入图片描述
慢查询时间;
二进制日志开启后,重启mysql 会在目录中查看到二进制日志

cd /usr/local/mysql/data
ls
mysql-bin.000001		#开启二进制日志时会产生一个索引文件及一个索引列表
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值