上课笔记第三十二天MySQL服务器日志、备份和恢复

1、MySQL服务器日志
                MySQL日志:
                          查询日志:由于I/O占用比较大所以不建议开启。
                          慢查询日志:记录查询时间超出设定时间的查询语句。
                          错误日志:记录错误信息
                          二进制日志:重做日志
                          中继日志:备服务器从主服务器复制过来的数据临时暂存在备服务器上日志文件叫中继日志
                          事务日志:ACID, 随机I/O转换为顺序I/O

show global variables like ‘%log%‘;:显示日志相关参数
               查询日志:
                          {  log_output = {TABLE|FILE|NONE}:指定存储格式,none不记录查询日志信息。
                            general_log = {ON|OFF}: 是否启用查询日志,如果设置为ON,log_output变量才会有意义。
                            general_log_file = /opt/mysqld.log:当log_output有FILE类型时,日志信息的记录位置;}
                慢查询日志:
                          select @@global.long_query_time;:如果查询超过设定值就判定为慢查询。
                          slow_query_log = {ON|OFF}:是否启动慢查询日志
                          slow_query_log_file = /opt/mysqld.log:慢查询日志文件
                错误日志:
                         mysqld会记录启动和关闭过程中输出的信息和运行中产生的错误信息,在主从架构中的从服务器上启动成功,可以在该日志中体现。
                          log_error:指定错误日志路径和文件名
                          log_warnings:是否将警告信息记录在错误日志中
                二进制日志:
                          show {binary | master} logs;:在主从架构中主服务器端处于由mysqld维护状态中的二进制日志文件
                          show binlog events in ‘mysql-bin.000005‘\G:显示二进制文件中的数据
                          日志记录格式分为2种“:
                                   一种为语句记录:记录sql执行语句
                                   一种分为行记录:记录表中修改过的行,例如:时间改变后不能再基于语句记录
                          mysql可以采用混合记录模式:mixed
                          binlog_format:二进制日志记录模式 {MIXED(混合模式)| statement(语句模式)| row(行模式)}
                          log_bin:指定日志文件记录位置 
                          sql_log_bin :是否启用二进制记录日志 
                          max_binlog_size:二进制文件单个大小
                          max_binlog_cache_size: 二进制缓存大小
                          max_binlog_stmt_cache_size:二进制语句缓存大小
                          sync_binlog:是否立即同步缓存到日志文件中,0表示不同步,其他数值表示记录多少语句后同步  
                 二进制日志文件构成
                           日志文件:文件名前缀.文件名后缀:例如在data目录下:mysql-bin.000001 
                           索引文件:文件名前缀.index:例如在data目录下:mysql-bin.index
                 mysqlbinlog:查看二进制二文件每一个at为一个事件开始:例如: mysqlbinlog mysql-bin.000005            
                 事务日志(innodb日志)
                           innodb_log_grep_home_dir:日志文件目录
                           innodb_log_file_size:日志文件大小      
                           innodb_mirrored_log_groups:事务日志镜像。      
                           
2、MySQL备份恢复的基本概念
                  备份类型:(完全备份、部分备份)
                            部分备份:只备份数据库中的一张或多张表。
                            完全备份中增量备份:备份上一次完全备份后有变化的数据
                            热备份、温备份、冷备份:
                                       热备份:在线备份,服务器读写操作不受影响
                                       温备份:在线备份,数据库只能读不能写
                                       冷备份:离线备份,备份期间不能为业务提供服务
                                        myisam:温备,innodb支持热备。
                             物理备份和逻辑备份
                                       物理备份:直接复制物理文件备份
                                                 基于文件备份,直接复制数据文件即可,但是不能跨平台。
                                       逻辑备份:从数据库中导出数据,保存在文本文件中。
                                                 逻辑备份和存储引擎无关myisam和innodb可以相互使用备份数据,特定数据除外例如innodb中支持事务。
    
                 设计备份方案:
                       完全备份+增量备份
          
                  备份工具:
                         mysqldump:逻辑备份工具,支持所有存储引擎,只支持温备,支持完全备份和部分备份。
                         cp、tar:物理备份工具,冷备适用于所有存储引擎
                          lvm2的快照:几乎热备,借助于cp、tar实现物理备份
                         
                   备份方案:
                           mysqldump+binlog:mysqldump:完全备份,通过二进制数据实现增量备份。
                           lvm2快照-binlog:几乎热备,物理备份,binlog增量备份
                           xtrabackup:对innodb支持热备,支持完全备份和增量备份,myisam引擎温备,不支持增备。

3、使用mysqldump及lvm2进行备份
                   mysqldump: 客户端,通过mysql协议连接至mysqld;
                             -A、--all-databases:表示全部备份,
                                      例如:./mysqldump -A -uroot -p123456 >/tmp/all1.sql,可以压缩存放xz all1.sql
                             -x、--lock-all-tables:启动备份前锁定所有表,执行温备。
                             -l、--lock-tables:备份单张表只锁定备份表。
                             --single-transaction:innodb热备,启动一个大的单一事务实现备份 
                             -B, --databases db_name1、db_name2:备份单个或多个数据库。不加-B不会创建数据库,需要手动创建数据库后导入数据,加-B会删除原有库重新创建新库在导入数据。
                                      例如:./mysqldump -uroot -p123456 -B mysql >/tmp/all1.sql
                             -C, --compress:压缩传输;
                             --master-data[=#]:例如:mysqldump -uroot -p123456 --master-data=1 -B test > 123.sql
                                      记录当前二进制文件最后事件位置,1表示不注释该语句,2表示注释该语句。一般用2.
                             mysqlbinlog --start-datetime ‘2015-06-13 18:00:00‘ --stop-datetime ‘2015-06-13 18:30:00‘ /mydata/data/mysql-bin.*;:增量备份格式。
                             mysqlbinlog --stop-position=4 /mydata/data/mysql-bin.000007 >/tmp/a.sql:保存事件到4之前的操作语句

mysqldump备份格式
                             mysqldump -uroot -p123456 mysql user>mysql_user.sql :备份mysql数据库中user表
                             mysqldump -uroot -p123456 -B mysql >/tmp/mysql.sql:备份单个数据库 
                             mysqldump -A -uroot -p123456 >/tmp/all1.sql:备份所有数据库

其他选项:
                             -E, --events:备份指定库的事件调度器;
                             -R, --routines:备份存储过程和存储函数;
                             --triggers:备份触发器

flush tables with read lock;:关闭已打开的表,对所有表添加共享锁
                      unlock tables;:解除锁文件
                      show master logs;:显示二进制数据文件
                      show binlog events in ‘mysql-bin.000005‘;:显示当前二进制事件到那个位置
                      flush logs; :滚动二进制日志,为二进制数据添加一个新文件
                      show master status;:显示当前使用的是那个二进制文件和具体位置
 
             物理备份:

注意:
                      在重新安装过mysql后再执行mysqldump时明确启用的是当前数据库的mysqldump
                      将数据和二进制文件放置于不同的设备;二进制日志也应该周期性地备份;

4、xtrabackup的使用
             为避免在还原时产生二进制日志,将临时关闭二进制文件,之后还原数据库,在开启二进制文件
                  set session sql_log_bin=0;
                  source /opt/all.sql;
                  set session sql_log_bin=1;

xtrabackup:工具 官方站点:www.percona.com
                  此工具依赖于perl-DBD-MySQL,rpm包

完全备份:
                 innobackupex --user=root --password=123456  /opt/123.sql

时间: 2024-10-18 03:06:55

上课笔记第三十二天MySQL服务器日志、备份和恢复的相关文章

Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁

Python进阶----pymysql的安装与使用,mysql数据库的备份和恢复,mysql的事务和锁 一丶安装 pip install PyMySQL 二丶pymysql连接数据库 ### 语法: import pymysql # 导入py模块 conn= pymysql.connect("数据库ip","用户","密码","数据库" ) # 打开数据库连接 cursor.execute("SELECT VERSI

mysql大数据备份及恢复(一)

Mysql大数据备份和恢复一 MySQL备份一般采取全库备份.日志备份:MySQL出现故障后可以使用全备份和日志备份将数据恢复到最后一个二进制日志备份前的任意位置或时间:mysql的二进制日志记录着该数据库的所有增删改的操作日志还包括了这些操作的执行时间 Binlog的用途:主从同步.恢复数据库 使用binlog工具备份 查看binlog是否开启,因为默认是关闭的 从上图可知off为关闭状态,一般logbin为只读,在/etc/my.cnf下开启 重启数据库 重启后在目录下查看是否生成bin日志

【windows】环境下mysql的数据备份以及恢复

[windows]环境下mysql的数据备份以及恢复 无论是刚刚入行的'猿友'还是入行很久的'老猿',我相信都会遇到过因为各种原因(很多情况下是自己误删了数据库)的操作.drop databases xxxxx 而误删了线上项目的数据库是一件很恐怖的事情,那么如果大家遇到这种情况怎么办呢?首先不要着急(我感觉说了也白说-,-),先看一看自己的mysql是否开启了binlog日志功能,如果没有???game over !!! 关于查看binlog日志有没有开启,请到自己的Mysql文件下找my.i

MySQL数据库-完全备份及恢复

MySQL数据库-完全备份及恢复 数据库备份的分类 物理角度: 冷备份:也称脱机备份,特点:关掉数据库再备份 热备份:也称联机备份,特点:开启数据库再备份 温备份:数据库只有可读权限的状态下备份 逻辑角度: 对数据库的对象的备份,例如数据表,及数据表中的一些sql语句等 备份策略角度: 完全备份:每次对数据进行整体的备份 差异备份:在第一次完整备份a数据后,以后的每次的备份是a+b,b就是针对于a数据发生变化的数据,称之为'差异数据'.缺点:b的数据内存会越来越大b+=b,导致数据恢复缓慢.恢复

从MySQL全库备份中恢复某个库和某张表【转】

从MySQL全库备份中恢复某个库和某张表 一.全库备份-A [[email protected] backup]#mysqldump -uroot -p123456 --default-character-set=utf8 --single-transaction --extended-insert=false --hex-blob --master-data=2 --log-error=/tmp/test.err --routines --triggers --events --quick -

Linux自学笔记——mysql基础、备份和恢复、主从复制、MHA

RDBMS:关系型数据库管理系统 C/S:通过专有协议 关系模型:表(行,列),二维关系: 范式:第一范式.第二范式.第三范式(在之前的博客中已经做过说明) 关系运算: 选择      投影 数据库:表,索引,视图(虚表) SQL:Structure Query Language DDL,DML 编程接口: 存储过程 存储函数 触发器 事件调度器 过程式编程:选择.循坏 三层模型: 物理层  逻辑层  视图层 解决方案: Oracle, Sybase, Infomix, DB2 MySQL, M

MySQL优化之——备份和恢复

转载请注明出处:http://blog.csdn.net/l1028386804/article/details/46766919 备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具.mysqldump命令执行时将数据库备份成一个文本文件,该文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据 MYSQLDUMP的语法和选项 mysqldump -u user -p pwd -h host

mysql使用mysqldump备份、恢复

  mysqldump是mysql用于转存储数据库的实用程序.它主要产生一个SQL脚本,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT等 mysqldump 语法 :      默认配置读取路径:  /etc/mysql/my.cnf     /etc/my.cnf    ~/.my.cnf            Usage: mysqldump [OPTIONS] database [tables]           OR     mysqldump [OPTI

我的MYSQL学习心得 备份和恢复(详细)

备份 逻辑备份方法 使用MYSQLDUMP命令备份 MYSQLDUMP是MYSQL提供的一个非常有用的数据库备份工具.mysqldump命令执行时将数据库备份成一个文本文件, 该文件中实际上包含了多个CREATE 和INSERT语句,使用这些语句可以重新创建表和插入数据 MYSQLDUMP的语法和选项 mysqldump -u user -p pwd -h host dbname[tbname,[tbname...]]>filename.sql 选项/Option 作用/Action Perfo