Mysql

一、Mysql记录日志

MySQL 的日志默认保存位置为 /usr/local/mysql/data

MySQL 的日志配置文件为 /etc/my.cnf

/etc/my.cnf中可配置日志的存储路径

# 错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
log-error=/home/mysql/mysql_error.log

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

# 二进制日志,用来记录所有当MySQL启动、停止或运行时发送的错误信息,默认是关闭的
# 使用相对路径,则文件存储在默认目录/usr/local/mysql/data/中
log-bin=mysql-bin

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

查询mysql日志状态

# 查看通用查询日志是否开启
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;

二、备份恢复概念理解

生产环境,数据尤为重要。备份的主要目的是灾难恢复。

数据库备份的方式

三、数据库备份与恢复

InnoDB存储引擎的数据库在磁盘上存储成三个文件

  • db.opt(表属性文件)

  • 表名.frm(表结构文件)

  • 表名.ibd(表数据文件)。

完全备份与恢复

  • 物理冷备份与恢复

systemctl stop mysqld
yum -y install xz

##压缩备份
cd /usr/local/mysql
tar Jcvf /opt/mysql_all_$(date +%F).tar.xz data/

##进数据库把student数据库删了

##解压恢复
tar Jxvf /opt/mysql_all_2022-06-15.tar.xz -C ./
systemctl restart mysqld.service 
mysql -u root -p
  • 逻辑备份与恢复

mysqldump是常用的逻辑备份工具。

mysqldump可以将指定的库、表导出为SQL脚本

# mysqldump完全备份
# 完全备份一个或多个完整的库(包括其中所有的表)
mysqldump -u root -p[密码] --databases 库名1 [库名2] … > /备份路径/备份文件名.sql    #导出的就是数据库脚本文件
# 完全备份MySQL服务器中所有的库
mysqldump -u root -p[密码] --all-databases > /备份路径/备份文件名.sql
# 完全备份指定库中的部分表
mysqldump -u root -p[密码] 库名 [表名1] [表名2] … > /备份路径/备份文件名.sql
# 查看备份文件
cd /opt/mysql_bak
cat yuji-market.sql | grep -v "^--" |grep -v "^/" |grep -v "^$" 
# mysqldump完全恢复
systemctl start mysqld
mysql -u root -p -e 'drop database school;'
mysql -u root -p -e 'SHOW DATABASES';

mysql -u root -p < /opt/mysql_bak/school.sql 
mysql -u root -p -e 'SHOW DATABASES;'

mysqldump -uroot -p school class1 > /opt/mysql_bak/school_class.sql

mysql -u root -p -e 'drop table school.class1;'
​mysql -u root -p -e 'show tables from school;'     

 mysql -u root -p school < /opt/mysql_bak/school_class.sql  ​
mysql -u root -p -e 'show tables from school;'

增量备份与恢复

增量备份是自上一次备份后增加/变化的文件或者内容。

没有重复数据,备份量不大,时间短。

恢复需要上次完全备份及完全备份之后所有的增量备份才 能恢复,而且要对所有增量备份进行逐个反推恢复。

增量备份要设置my.cnf文件,开启二进制文件log-bin,设置二进制文件记录格式为MIXED。

vim /etc/my.cnf
log-bin=mysql-bin
binlog_format = MIXED
##保存退出
systemctl restart mysqld
ls /usr/local/mysql/data/

具体操作如下:

每周对数据库做全量备份

每天进行增量备份操作,生成新的二进制日志文件(例如 mysql-bin.000002)

插入新数据,以模拟数据的增加或变更

再次生成新的二进制日志文件(例如 mysql-bin.000004)

查看二进制日志文件的内容

四、Mysql存储引擎

数据库存储引擎是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建、查询、更新和删除数据。不同的存储引擎提供不同的存储机制、索引技巧、锁定水平等功能,使用不同的存储引擎,还可以获得特定的功能。

# MySQL给开发者提供了查询存储引擎的功能,执行以下sql即可查询到mysql中的存储引擎
SHOW ENGINES

下图的数据库版本是Mysql8,查询到的存储引擎如下:

存储引擎的选择

存储引擎的详细描述,参考以下文档:

原文链接:https://blog.csdn.net/yjclsx/article/details/81911027

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值