一.日志

1.查询日志

记录每一条sql语句,建议不开启,因为如果访问量较大,会占用相当大的资源,影响性能;
vim /etc/my.cnf.d/server.cnf
general_log = ON| OFF#查询日志开关
general_log_file localhost.log #查询日志的文件名字/var/lib/mysql)
log_output TABLE | FILE | NONE #查询日志的存储形式

2.慢查询日志(重要)

执行时长超出指定时间的查询操作(测试命令:select sleep();)
slow_query_log = OFF|ON #开启慢查询日志
slow_query_log_file = LOCALHOST-SLOW.log #慢查询日志的文件路径
long_query_time #慢查询时长;默认是10s
log_slow_rate_limit#如果要记录的慢查询日志非常多的话,会按照速率来记录,默认1秒记录一个
log_slow_verbosity=full | query_plan #记录的详细级别

3.错误日志

mysqld启动和关闭过程中输出的事件信息
mysqld运行中产生的错误信息
event scheduler 运行一个event时产生的日志信息
在主从复制架构中的从服务器上启动从服务器线程时产生的信息 log_error = /var/log/mysql_error.log#指定错误日志的输出位置
log_warnings 为0, 表示不记录告警信息。
log_warnings 为1, 表示告警信息写入错误日志。
log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。(默认为2)

4.二进制日志(非常重要)

针对时间点还原起着至关重要的作用
查看二进制日志:
SHOW {BINARY | MASTER} LOGS
SHOW BINLOG EVENTS [IN 'log_name']
show master status;
记录导致数据改变或者可能导致数据改变的SQL语句
log_bin = OFF | ON
log_bin_basename = /var/lib/mysql/mysql-bin binlog_format=STATEMENT|ROW|MIXED:二进制记录格式
STATEMENT:基于“语句”记录
ROW:基于“行”记录
MIXED:让系统自行判定该基于哪种方式进行
sql_log_bin=|:是否启用二进制日志
log_bin_index=PATH:二进制日志索引位置
sync_binlog=|:设定是否启动二进制日志同步功能
max_binlog_size=SIZE:单个二进制文件最大体积,默认为1G
expire_logs_days=#超过多少天就清除二进制日志,默认为0,代表不启用此功能
二进制日志滚动:
.flush logs;
.文件超出指定大小
.service mariadb restart
二进制日志文件的构成:
日志文件:mysql-bin.xxxxx,二进制格式
索引文件:mysql-bin.index,索引文件 二进制日志格式:
# :: server id end_log_pos CRC32 0xeb1cde6b Query thread_id= exec_time=
error_code=
use `testdb`/*!*/;
事件发生的日期和时间: ::
事件发生的服务器标识:server id
事件的结束位置:end_log_pos
事件的类型:Query
事件发生时所在服务器执行此事件的线程ID:thread_id=
语句的时间戳与将其写入二进制文件中的时间差:exec_time=
错误代码:error_code=
事件内容:

5.中继日志

复制架构中,备服务器用于保存主服务器的二进制日志中读取到的事件

6.事务日志(重要)

innodb_buffer_pool_size                    一般设置成为物理内存的3/,或者4/
innodb_log_files_in_group = 事务日志文件的个数,默认为2个事务日志文件
innodb_log_file_size = (48m) 事务日志文件的单个大小48m
innodb_log_group_home_dir = ./ 事务日志文件的所在路径,默认就在mariadb的数据目录/var/lib/mysql
事务型存储引擎自行管理和使用(Innodb,myisam引擎是不支持事务,外键,行级锁)
redo log : 重做日志
undo log :撤销日志

二.备份和恢复

1.为什么要备份?

(1).灾难恢复:硬件故障,软件故障,自然灾害,黑客攻击,误操作
(2).测试
(3).注意的要点:
备份需要多少时间;   能容忍最多丢失多少数据;
恢复数据需要在多场时间内完成;   需要恢复哪些数据
①做还原测试,用于测试备份的可用性
②还原演练

2.备份类型

(1).完全备份,部分备份

完全备份:整个数据集
部分备份:只备份数据子集

(2).增量备份、差异备份

增量备份:仅备份最近一次完全备份或增量备份(如果有增量备份)以来变化的数据
差异备份:仅备份最近一次完全备份以来变化的数据;

(3).热备、温备、冷备

热备:读写操作均可执行
温备:读操作可以、写不行
冷备:读写操作均不能执行

MyISAM:温备,不能热备;
Innodb:热备

(4).物理备份、逻辑备份

物理备份:直接复制数据文件进行备份,与存储引擎无关
逻辑备份:从数据库中“导出”数据库另存而进行备份

3.备份什么?

数据
二进制日志,innodb的事务日志
代码(存储过程,存储函数,触发器,时间调度器)
服务器的配置文件

4.设计备份方案

数据集:完全+增量
备份手段:物理,逻辑
对于备份较大的数据建议物理备份,对于较小的数据建议用逻辑备份;

5.备份工具的选择

(1).mysqldump+复制binlog
mysqldump:完全备份
复制binlog中指定时间范围内的event:增量备份
(2).lvm2快照+复制binlog:
lvm2快照:适用cp或者tar等做物理备份:完全备份
复制binlog中指定时间范围内的event:增量备份
(3).xtrabackup|mariabackup:
由Percona提供的支持对InnoDB做热备(物理备份)工具
完全备份,增量工具

三.备份工具操作

1.基于二进制文件的恢复(逻辑备份)

(1).基于位置恢复

mysqlbinlog /var/lib/mysql/mysqlbin.000001 --start-postion=1011 --stop-postion=1093 | mysql -uroot -proot

(2).基于时间点恢复

mysqlbinlog --start-datetime="2019-06-08 22:55:13" --stop-datetime="2019-06-08 22:55:13" binlog.0000011 > bin.sql

source bin.sql

2. mysqldump备份工具(逻辑备份)

备份testdb数据库(-l代表备份单个数据库时锁定该库的所有表;-x当对所有数据库备份时锁定所有数据库的所有表
mysqldump -uroot -proot -l --databases testdb > testdb.sql
#备份所有数据库
mysqldump -uroot -proot --all-databases > all_databases.sql
#备份testdb数据库下的students表
mysqldump -uroot -proot testdb students > students.sql
还原数据(sql命令行下)
source testdb.sql

3.备份工具mariabackup(物理备份)

(1).简介
Mariabackup是MariaDB提供的一个开源工具,用于对InnoDB,Aria和MyISAM表进行物理在线备份。这个工具是基于Percona的XtraBackup(版本2.3.8)的解决方案。
这里有一点需要注意,在MariaDB10.3.x及以上的版本用Percona XtraBackup工具会有问题。原因可能是MariaDB10.3以上版本的redo日志格式和之前不同了。

Percona的官方文档:https://www.percona.com/doc/percona-xtrabackup/2.4/index.html

Mariabackup的官方文档:https://mariadb.com/kb/en/library/mariabackup-overview/
安装方法
yum install MariaDB-backup

(2)全备+恢复

.全量备份
mariabackup --backup --target-dir=/root/fullbackup --user=root --password=root
.准备全备数据
mariabackup --prepare --target-dir=/root/fullbackup/ --user=root --password=root
.还原数据(请确保数据目录下是空的)
mariabackup --copy-back --target-dir=/root/fullbackup/ --user=root --password=root
.修改属组和属主
chown -R mysql.mysql /var/lib/mysql

(3).全备+增量+恢复(如果要保证数据尽量100%,再加上二进制文件的备份)

.全量备份                    
mariabackup --backup --target-dir=/root/fullbackup --user=root --password=root
.增量备份
mariabackup --backup --target-dir=/root/inc1 --incremental-basedir=/root/fullbackup/ --user=root --password=root
.准备全备数据
mariabackup --prepare --target-dir=/root/fullbackup/ --user=root --password=root
.增量和全备数据合并
mariabackup --prepare --target-dir=/root/fullbackup/ --user=root --password=root --incremental-dir=/root/inc1/ --apply-log-only
.恢复数据(请确保数据目录下是空的)
mariabackup --copy-back --target-dir=/root/fullbackup/ --user=root --password=root
.修改属组和属主
chown -R mysql.mysql /var/lib/mysql

4.基于lvm2的备份

()请求锁定所有表
flush tables with read lock;
()记录二进制日志文件及事件位置或时间点
flush logs;
mysql -uroot -proot -e 'show master status;' > /path/to/somefile
()创建快照
lvcreate -L # -s -p r -n NAME /DEV/VG_NAME/LV_NAME
()释放锁
unlock tables;
()挂在快照卷,执行数据备份
()备份完成后,删除快照卷
()指定好策略,通过原卷备份二进制日志
()还原的时候确保属组和属主是mysql:mysql
如果是yum安装默认数据目录在/var/lib/mysql,如果需要更改
[mysqld]
datadir=/mysql_data/
pid_file=/mysql_data/localhost.pid
socket=/mysql_data/mysql.sock
wsrep_data_home_dir=/mysql_data/
log-bin=mysql-bin
[client]
socket=/mysql_data/mysql.sock

MariaDB知识点总结02--日志+备份的更多相关文章

  1. MySQL/MariaDB数据库的mysqldump工具备份还原实战

    MySQL/MariaDB数据库的mysqldump工具备份还原实战 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.mysqldump概述 1>.逻辑备份工具 mysq ...

  2. MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份]

    MariaDB之基于Percona Xtrabackup备份大数据库[完整备份与增量备份] 1.Xtrabackup的安装 percona-xtrabackup-2.2.3-4982.el6.x86_ ...

  3. SQL SERVER完整、差异和事务日志备份及还原(脚本和GUI实现) [原创]

    一.完整备份.差异备份和事务日志备份的脚本 --完整备份数据库 BACKUP DATABASE Test_Bak TO DISK = 'E:\20150609_75\bak\Test_bak_full ...

  4. 日志备份和差异备份还原中的常见问题示例(转自&邹建)

    --创建测试 CREATE DATABASE db GO    --正常备份 BACKUP DATABASE db TO DISK='c:\1.bak' WITH FORMAT BACKUP LOG  ...

  5. SQL Server数据恢复——日志备份

    太坑了,我把数据给删了 “大坑啊,数据被我误删了.”从事数据库相关工作的过程中,我想应该很多人会有过和我一样的遭遇吧?尤其是在进行update或者delete操作的时候,忘记了where条件.这些毁灭 ...

  6. SQL SERVER BUG--Alwayson日志备份报错

    数据库版本 SQL SERVER 2012 企业版,版本号:11.0.5582.0 问题场景: 数据库配置Alwayson环境,同机房2节点同步自动切换+跨机房异步,在异步机房中选取同一节点做完整备份 ...

  7. 将日志备份推送到s3存储上

    1.将日志备份推送到s3存储上 #!/bin/sh # 此脚本实现将/usr/local/netqin/boss/netqin/logs/BOSS_ContentServer/BOSS_AD_SDK ...

  8. RMAN_RAC归档日志备份包恢复到单机

    恢复归档日志的方法: RAC是ASM的存储且是OMF创建的格式,所以RAC的日志名为如下+ARCH/mioa/archive/1_73554_875548170.dbf.+ARCH/mioa/arch ...

  9. 【SQL Server备份恢复】维护计划实现备份:每周数据库完整备份、每天差异备份、每小时日志备份

    在数据库管理中,数据库备份是非常重要的. 通过维护计划向导,可以很方便的完成数据库备份. 下面的例子说明了如何实现数据库的备份,具体的备份策略是:每周日一次完整备份.每天差异备份(除周日外).每小时日 ...

随机推荐

  1. 理解SqlMapConfig.xml文件

    SqlMapConfig.xml mybatis的全局配置文件SqlMapConfig.xml,配置内容如下: properties(属性) settings(全局配置参数) typeAliases( ...

  2. ACM-ICPC 2017 西安赛区现场赛 K. LOVER II && LibreOJ#6062. 「2017 山东一轮集训 Day2」Pair(线段树)

    题目链接:西安:https://nanti.jisuanke.com/t/20759   (计蒜客的数据应该有误,题目和 LOJ 的大同小异,题解以 LOJ 为准)     LOJ:https://l ...

  3. 7、DockerFile案例:自定义centos、自定义tomcat、webapps项目发布

    1.Base镜像(scratch) Docker Hub 中 99% 的镜像都是通过在 base 镜像中安装和配置需要的软件构建出来的 2.自定义镜像mycentos 1.Hub默认CentOS镜像什 ...

  4. 数论之同余性质 线性同余方程&拔山盖世BSGS&中国剩余定理

    先记录一下一些概念和定理 同余:给定整数a,b,c,若用c不停的去除a和b最终所得余数一样,则称a和b对模c同余,记做a≡b (mod c),同余满足自反性,对称性,传递性 定理1: 若a≡b (mo ...

  5. 剧终—AFO.

    /* noip一等完跪. 高考你好. 一年后山大见. AFO. */

  6. Eclise快捷键(最全)

    Eclipse常用快捷键 Eclipse常用快捷键 1几个最重要的快捷键 代码助手:Ctrl+Space(简体中文操作系统是Alt+/) 快速修正:Ctrl+1 单词补全:Alt+/ 打开外部Java ...

  7. Prime Path (POJ - 3126 )(BFS)

    转载请注明出处:https://blog.csdn.net/Mercury_Lc/article/details/82697622     作者:Mercury_Lc 题目链接 题意:就是给你一个n, ...

  8. php原生导出简单word表格(TP为例) (原)

      后台: # 菲律宾名单word导出 public function export_word(){ $tids = $_GET['tids']; $userinfo=M("philippi ...

  9. Dubbo 节点telnet测试

        Dubbo 节点telnet测试 本地安装telnet客户端 Telnet 服务地址 端口 如telnet 127.0.0.1 1234 出现此对话框表示连接成功 输入status –l 会显 ...

  10. 用itext生成PDF报错:Font 'STSong-Light1' with 'UniGB-UCS2-H' is not recognized.

    用itext生成PDF报错,加上try catch捕获到异常是 BaseFont bFont = BaseFont.createFont("STSong-Light1", &quo ...