目录
一,日志
1,日志的作用和分类
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 普通日志
作用:记录数据库的操作明细,默认关闭,开启后会降低数据库性能
2,日志的基础操作
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; #在数据库中设置开启慢查询的方法
(root@localhost) [hellodb]> show variables like 'general%';
+------------------+-------------------------------------+
| Variable_name | Value |
+------------------+-------------------------------------+
| general_log | OFF |
| general_log_file | /usr/local/mysql/data/localhost.log |
+------------------+-------------------------------------+
2 rows in set (0.01 sec)
#查看通用查询日志未开启
(root@localhost) [hellodb]> show variables like 'log_bin%';
+---------------------------------+-------+
| Variable_name | Value |
+---------------------------------+-------+
| log_bin | OFF |
| log_bin_basename | |
| log_bin_index | |
| log_bin_trust_function_creators | OFF |
| log_bin_use_v1_row_events | OFF |
+---------------------------------+-------+
5 rows in set (0.01 sec)
#查看二进制日志未开启
(root@localhost) [hellodb]> show variables like '%slow%';
+---------------------------+------------------------------------------+
| Variable_name | Value |
+---------------------------+------------------------------------------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | OFF |
| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |
+---------------------------+------------------------------------------+
5 rows in set (0.00 sec)
#查看慢查询日功能未开启
(root@localhost) [hellodb]> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name | Value |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)
(root@localhost) [hellodb]> set global slow_query_log=ON; #开启慢查询日志
Query OK, 0 rows affected (0.01 sec)
(root@localhost) [hellodb]> show variables like '%slow%';
+---------------------------+------------------------------------------+
| Variable_name | Value |
+---------------------------+------------------------------------------+
| log_slow_admin_statements | OFF |
| log_slow_slave_statements | OFF |
| slow_launch_time | 2 |
| slow_query_log | ON #开启了 |
| slow_query_log_file | /usr/local/mysql/data/localhost-slow.log |
+---------------------------+------------------------------------------+
5 rows in set (0.00 sec)
开启日志修改配置文件
[root@localhost data]# vim /etc/my.cnf
[mysql]
port = 3306
[mysqld]
user = mysql
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
character_set_server=utf8
pid-file = /usr/local/mysql/mysqld.pid
socket = /usr/local/mysql/mysql.sock
server-id = 1
log-error=/usr/local/mysql/data/mysql_error.log
##错误日志,用来记录当MySQL启动、停止或运行时发生的错误信息,默认已开启
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
##通用查询日志,用来记录MySQL的所有连接和语句,默认是关闭的
log-bin=mysql-bin
##二进制日志(binlog),用来记录所有更新了数据或者已经潜在更新了数据的语句,
记录了数据的更改,可用于数据恢复,默认已开启
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5
##慢查询日志,用来记录所有执行时间超过long_query_time秒的语句,可以找到哪些查询
语句执行时间长,以便提醒优化,默认是关闭的
查看日志文件
重启服务再查看日志文件
日志文件生成
mysql-bin.index:二进制日志文件的索引
二,备份简介
1,备份的重要性
在生产环境中,数据的安全性至关重要
任何数据的丢失都可能产生严重的后果
造成数据丢失的原因:
程序错误
人为操作错误
运算错误
磁盘故障
灾难(火灾,地震)和盗窃
##造成数据丢失的原因多种多样,因此数据的备份非常重要
2,数据库备份的分类
2.1,物理与逻辑的角度分类
1)物理备份:对数据库操作系统的物理文件(如数据文件,日志文件等)的备份
物理备份方法:
冷备份(脱机备份):是在关闭比数据库的时候进行的
热备份(联机备份):数据库处于运行状态,依赖于数据库的日志文件
温备份:数据库锁定表格(不可写入但可读)的状态下进行备份操作
2)逻辑备份:对数据库逻辑组件(如:表等数据库对象)的备份
备份的对比
冷、温、热备份
冷备:读、写操作均不可进行,数据库停止服务
温备:读操作可执行;但写操作不可执行
热备:读、写操作均可执行
MyISAM:温备,不支持热备
InnoDB:都支持物理备份:直接复制数据文件进行备份,与存储引擎有关,占用较多的空间,速度快