10_MySQL笔记-日志-备份和还原


个人博客
https://blog.youkuaiyun.com/cPen_web


OLTP和OLAP 在线事务处理和在线分析处理
https://my.oschina.net/u/2969788/blog/2875200

oltp和olap
	oltp和olap是两种常见的业务模式
	oltp(on line transcation processing) 在线事务处理 它具有以下特点,常见的系统如银行财务
	实时性要求高
	数据量相对较小
	要求绝对的事务完整性,增删改查操作一般都会涉及
	并发量高
	olap(on line analytical processing) 在线分析处理,这种业务一般是日志的分析和深度挖掘,常见如淘宝的交易记录,百度地图的人口迁徙记录 具有以下特点,olap的结果一般是为决策提供支持
	数据量通常非常大
	对事务要求不高 通常只有 添加和查询操作
	实时性要求不高通常只有汇总后的结果,而汇总分析过程通常可以执行很久

日志

日志 (log)

作用:
	1 .排错
	2 .了解MySQL运行情况
类型:
	1 .二进制日志
	2 .错误日志
	3 .慢日志
	4 .查询日志

错误日志

错误日志:mysql本身就是开启的

错误日志:记录用户登录和服务启动出错相关的信息 --> 默认开启
在配置文件里指定错误日志的路径
[root@cPen mysql]# vim /etc/my.cnf
#log-error=/var/log/mysql/mysql.log
log-error=/data/mysql/mysql.log

默认存放的路径在数据目录下	(路径会存在/data目录下)
编译安装路径:/data/mysql/mysql_compile.err  命令格式:主机名.err

	记录用户登录和服务启动出错相关的信息 --> 默认开启的
	默认放到与数据目录所在的地方,主机名.err
什么时候会写数据到错误日志文件?
	1 .登录失败会记录到错误日志
	2 .配置文件出错也会记录 --> 没有看到效果,编译安装的MySQL --> 需要进一步测试
	3 .启动过程出问题也会记录
mysql_compile.pid	记录mysqld的pid号

如果指定错误日志的路径,注意目的地的目录需要给mysql用户写的权限
[root@cPen ~]# cd /data/mysql/
[root@cPen mysql]# ls |grep "err"
mysql_compile.err
#示例:指定错误日志
[root@cPen mysql]# vim /etc/my.cnf
[mysqld]
log-error=/var/log/mysql/mysql.log
#注:log-error和log_error都可以

[root@cPen mysql]# mkdir /var/log/mysql
[root@cPen mysql]# cd /var/log/
[root@cPen log]# chown mysql:mysql mysql/				#注:加权限,mysql用户要有写的权利

root@(none) mysql>show variables like "log_error";		#注:在MySQL里查看变量的值
#示例:删除pid文件mysql_compile.pid,mysql服务不能关闭,因为里面放了mysqld 的pid号
[root@cPen mysql]# cd /data/mysql/
[root@cPen mysql]# ls |grep mysql_compile.pid
mysql_compile.pid

慢日志

慢日志

默认是关闭的
作用:记录消耗时间比较长的SQL语句,为数据库性能提升提供了线索

存放在数据目录下,名字是主机名 + slow.log
#示例:慢日志默认是关闭的
root@(none) mysql>show variables like "%slow_query%";
| Variable_name       | Value                     |
| slow_query_log      | OFF                       |
| slow_query_log_file | /data/mysql/cPen-slow.log |
#示例:SQL定义的慢查询时间为 10毫秒
root@(none) mysql>show variables like "long_query_time";
| Variable_name   | Value     |
| long_query_time | 10.000000 |

#注:如果一条SQL的执行时间超过10毫秒,就算一条慢SQL,会产生慢日志
#示例:配置慢日志
[root@cPen ~]# vim /etc/my.cnf
[mysqld]
#slow query log
slow_query_log = 1
long_query_time = 0.001
slow_query_log_file = /data/mysql/cPen-slow.log

[root@cPen ~]# service  mysqld restart
[root@cPen ~]# tail -f /data/mysql/cPen-slow.log 
……
最近数据库压力 (负载特别高),客户反映网站或者应用使用特别慢,领导要求你查明原因?
	1 .SQL语句需要优化,在数据库里启用慢日志,找出执行时间比较长的SQL
	2 .业务量太大了,硬件已经达到极限了,top、glances、dstat

通用查询日志

优点
	会记录所有的SQL操作 --> 审计
缺点
	消耗大量的磁盘空间
	消耗cpu、内存、磁盘资源
#示例:查看通用查询日志功能是否开启
root@TENNIS mysql>show variables like 'general_log%';
| Variable_name    | Value                |
| general_log      | ON                   |
| general_log_file | /data/mysql/cPen.log |
#注:通用查询日志默认不开启
#示例:开启通用查询日志 --> 临时开启
root@TENNIS mysql>set global general_log = 1;					#注:临时开启
#注:1是开启,0是关闭
root@TENNIS mysql>show variables like 'general_log';
| Variable_name | Value |
| general_log   | ON    |
#示例:开启通用查询日志 --> 配置文件里设置
[root@cPen ~]# vim /etc/my.cnf
[mysqld]
#general log
general_log
general_log_file=/data/mysql/cPen.log

[root@cPen ~]# tail -f /data/mysql/cPen.log 
……

二进制日志

二进制日志	binary log

二进制日志文件里存放的是二进制数据,不能使用tail、head、cat去查看
默认不开启

默认一个二进制文件的大小是1G
	root@(none) mysql>show variables like 'max_binlog_size';
	| max_binlog_size | 1073741824 |
作用
	记录了什么?
		DML语句、DDL、DCL等
		修改了数据的操作		#注:select语句不会产生二进制日志
	可以用来恢复数据
	主从复制					#注:主 master    从 slave
存放的位置
	数据目录下
		主机名-bin.00000*
		cPen-bin.000001
	以二进制的形式存放的日志,里面不是文本的格式,使用cat,vim不能查看里面的内容
一个二进制日志文件是否记录了整个mysql进程里所有的库的操作?
	答:是的,对所有库进行的操作都会记录到一个二进制文件里

如果需要记录到不同的日志文件里,可以采用多实例

mysql实例:正在运行的一个mysql进程,这个进程里有哪些库可以操作,二进制日志就记录哪些库的操作

多实例:
	多启动几个mysqld的进程,一个mysqld的进程对应一个库
	隔离应用,避免一个库使用特别频繁,影响其他的库
	多实例任然受到整个机器整体系统资源的限制
	经典的例子:一款游戏对应一个实例

多实例的替代方案:使用云服务器:一款游戏使用一台云服务器
#示例:查看二进制日志是否开启
root@(none) mysql>show variables like 'log_bin';
| Variable_name | Value 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

mycpen

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值