数据库⽇志管理
MySQL日志管理
排错
error log 错误⽇志
记录mysql启停错误信息
general log 普通⽇志
记录客户端查询⽇志
终端查询⽇志情况
慢查询⽇志
⼆进制⽇志
⼆进制⽇志 binary log 记录数据被修改的相关信息
# at 219 :表示该查询在⼆进制⽇志⽂件中的位置
\#230527 12:09:02 :表示该查询执⾏的时间,⽇期格式为YYMMDD HH:MM:SS
server id 70 :表示MySQL服务器的ID
end_log_pos 306 :表示该查询在⼆进制⽇志⽂件中的结束位置
CRC32 0xc85c6c41 :表示该查询的CRC32校验和
Query :表示该⽇志记录是⼀个查询
vx: WingspanGovx: WingspanGo
thread_id=2 :表示执⾏该查询的线程ID
exec_time=0 :表示该查询的执⾏时间为0毫秒
error_code=0 :表示该查询没有出错
use wing /*!*/; :表示该查询使⽤了 wing`数据库。
SET TIMESTAMP=1685160542/*!*/; :设置查询的时间戳。
SET @@session.pseudo_thread_id=2/*!*/; :设置当前会话的虚拟线程ID。
SET @@session.foreign_key_checks=1, @@session.sql_auto_is_null=0,
@@session.unique_checks=1, @@session.autocommit=1/*!*/; :设置当前会话的⼀些参数,如外键检
查、⾃动提交等。
SET @@session.sql_mode=1436549152/*!*/; :设置当前会话的SQL模式。
SET @@session.auto_increment_increment=1, @@session.auto_increment_offset=1/*!*/; :设
置当前会话的⾃增计数器起始值和步⻓。
/*!\C utf8 *//*!*/; :设置当前会话的字符集为UTF-8。
SET
@@session.character_set_client=33,@@session.collation_connection=33,@@session.collatio
n_server=8/*!*/; :设置当前会话的字符集和排序规则。
SET @@session.lc_time_names=0/*!*/; :设置当前会话的时间格式。
SET @@session.collation_database=DEFAULT/*!*/; :设置当前会话的数据库排序规则。
TRUNCATE TABLE users/*!*/; :表示执⾏了⼀个 TRUNCATE TABLE 查询,将 users 表清空。
⽇志截断
1.切割binlog⽇志
重启 mysqld 服务, 在 mysql 控制台执⾏ mysql> flush logs
在 mysql 控制台执⾏ reset master 会清空所有 binlog (危险)
2.删除部分binlog⽇志
mysql> purge master logs to 'sql_106_70.000001'; #删除指定⽇志以前的⽇志⽂件
mysql> purge binary logs before '2023-05-27 12:44:00'; #删除指定时间以前的⽇志⽂件
使⽤时间节点进⾏恢复
# mysqlbinlog sql_106_70.000006 --start-datetime='2023-05-28 15:41:00'
# mysqlbinlog sql_106_70.000005 --stop-datetime='2023-05-28 15:40:00'
# mysqlbinlog sql_106_70.000005 --start-datetime='2023-05-28 12:00:00' --stop
datetime='2023-05-28 15:40:00'
使⽤位置点进⾏恢复
# mysqlbinlog sql_106_70.000006 --start-position=219
# mysqlbinlog sql_106_70.000006 --stop-position=503
# mysqlbinlog sql_106_70.000006 --start-position=219 --stop-position=503
2.MySQL****物理备份与恢复