centos mysql 实战 第十二节课 备份恢复 备份方案 备份可以分为几种形式 mysqldump 在不同版本里对性能会不会有影响? mysqldump 的用户需要什么权限 mysqldump 支持Where条件 备份评估

centos mysql 实战 第十二节课  备份恢复  备份方案  备份可以分为几种形式  mysqldump 在不同版本里对性能会不会有影响?   mysqldump 的用户需要什么权限   mysqldump 支持Where条件  备份评估

阿里云
Percona-live 2016-4 
基于Innodb物理复制

mysql5.7没有线程池,需要用percona版本mysql才有,percona的定位是做免费的企业版mysql

mysql5.6的memcached插件只是提供memcached API,让memcached可以直接访问innodb表,而不是mysql提供memcached功能

备份恢复

备份是怎么样一个定位呢

教育项目 使用mysql 出现了数据页的损坏
20G数据文件大小
16万,做的数据恢复

做备份需要增加
1. 备份硬件成本
2. 备份的管理成本

10000G = 10T
Disk -> Disk-> 备份网络里面
对于超大容量文件传送到Ceph 分布式文件系统



备份方案
最后救命稻草
同样也包含了开发测试环境,每天做一个全备 mysqldump

恢复时间
没有备份会出现什么问题
1. 做备份
2. 学会看日志

如果大家在线上做SQL更新,先做备份



备份可以分为几种形式
冷备 & 热备

冷备 数据处理静止状态 把数据库关掉
2016-5-12 16:00:00
cp -r /data/mysql/msyql3376/ /data/backup/mysql3376_2016-05-12
mv /data/mysql/mysql3376/ /data/mysql/mysql3376_20160512210000_bak
mkdir /data/mysql/mysql3376
cp -r /data/backup/mysql3376_20160512/* /data/mysql/mysql3376/
chown -R mysql:mysql /data/mysql/mysql3376/*

热备 不停数据备做备份 逻辑,物理
逻辑备份: 生成的SQL文件,通过SQL执行恢复
mysqldump
mydumper 要锁表的 基于glibc 库 percona在维护
mysqlpump 5.7
逻辑备份的核心都是调用select into outfile

物理备份 :在线的copy物理文件进行备份
MySQL Enterprise BACKUP Facebook在用 
Percona Xtrabackup

现在用的比较多的就是Xtrabackup这个工具

从备份量上来看,可以分为:
1. 全备
2. 增备/差备

增量备份在MySQL里有两种实现方式
1. 备份binlog
/usr/local/mysql/bin/mysqldump -u root -p -h 127.0.0.1 --master-data=2 --single-transaction --databases glc > dumpglc.sql
--single-transaction开启RR隔离级别
change master to master_log_file=xxxx ,master_log_pos =xxx;

flush tables:表结构变更未刷新到磁盘的,刷新到磁盘
FLUSH TABLES WITH READ LOCK:整个数据库只能读,不能写
FLUSH TABLES WITH READ LOCK =========================
53 Query SET SESSION TRANSACTION ISOLATION LEVEL REPEATABLE READ
53 Query START TRANSACTION /*!40100 WITH CONSISTENT SNAPSHOT */

53 Query SHOW MASTER STATUS
53 Query UNLOCK TABLES =============================
SAVEPOINT sp
select * from tb1
ROLLBACK TO SAVEPOINT sp
select * from tb2
RELEASE SAVEPOINT sp 回滚事务

mysqldump工具流程

刷新表结构
锁全库
开一个事务,设置会话为RR隔离级别,读取快照
获得SHOW MASTER STATUS 里面的master_log_file=xxxx ,master_log_pos =xxx;
解锁库
开一个保存点,不停循环select 库里的表,select完一个继续回到保存点select 下一个
万一中途出意外回滚整个保存点

FLUSH TABLES WITH READ LOCK 和UNLOCK TABLES 之间不能写

4点开始备份, 5点结束, 这个备份是几点的?
mysqldump 4点
xtrabackup 5点



mysqldump 在不同版本里对性能会不会有影响?


60G
35G
16G
Buffer pool 12G
60G 30Min就搞定

35G 60Min
mysqldump 35G库里有一张很大的Log表

解决:

1、在slave上备份

2、不备份Log这个表,减少清洗buffer_pool

innodb_buffer_pool 命中 急剧下降
5.6 以下, 不要在Master上做备份
5.6 做了改善

mysqldump备份都是/sql no cache/ cache指的是query-cache(Query_cache 禁掉GLOBAL MUTEX)



mysqldump 的用户需要什么权限

如果要做备份平台需要注意:

select
lock tables 高版本  super 低版本
show trigger
show view

mysqldump参数

mysql里的视图就是表,所以没有单独的导出视图参数



mysqldump 支持Where条件
db1 每表张导出来1万条记录
mysqldump --single-transcation -w "1=1 limit 10000" db1 > db1_10000.sql
where 1=1 limit 10000

set-gtid-purged=off  不记录gtid,这是从gtid 备份到非gtid 才加,一般不加这个参数,默认是on的
-c   —complete-insert 生成完整的insert语句

作业
1. 利用mysqldump做一个备份,能说明这个备份是几点的,备份完成Binlog的位置信息是什么?
2. 利用mysqldump 在线建一个从库
3. mysqldump 工作原理

5.1.50 以前 表丢失
meta data lock 没进来
select * from tb1 xxx
rename table tb1 to tb1_old;
alter table tb1 add xxxx;
DDL不受事务框架保护的
tb1 前面是4个字段, 后面是5个字段
mysql5.5.3 引入Meta data lock ddl也可以备份



备份评估

1. 备份的定位
2. 备份数据量
3. 备份存储
4. 备份的有效性校验
5. 备份的恢复形式

5.6 是支持延迟复制的

备份信息入库
集中备份

对备份监控,你们会关注什么信息呢

xtrabackup 要偿试一下做一下Apply-log

f

时间: 2024-10-20 20:42:49

centos mysql 实战 第十二节课 备份恢复 备份方案 备份可以分为几种形式 mysqldump 在不同版本里对性能会不会有影响? mysqldump 的用户需要什么权限 mysqldump 支持Where条件 备份评估的相关文章

centos mysql 实战 第二十二节课

f

centos mysql 实战 第三节课

centos mysql  实战  第三节课 上两节课1. MySQL的安装2. MySQL启动方式 今天第一个: MySQL里的对象 查看当前有那些数据库:show databases; drop database test;truncate table mysql.db; mysql里view当成Table对待了,没有单独的命令能备份视图,只能备份表 information_schema 字典库 performance_schema 性能相关的字典库 MySQL是一个面向存储引擎解决方案的D

centos mysql 实战 第三节课 MySQL里的对象 mysql体系结构 mysql日志 数据类型

centos mysql  实战  第三节课   MySQL里的对象  mysql体系结构  mysql日志   数据类型 上两节课1. MySQL的安装2. MySQL启动方式 MySQL里的对象 今天第一个: MySQL里的对象 查看当前有那些数据库:show databases; drop database test;truncate table mysql.db; mysql里view当成Table对待了,没有单独的命令能备份视图,只能备份表 information_schema 字典库

centos mysql 优化 第十二节课

centos mysql  优化  第十二节课 f

centos mysql 实战 第九节课

f

centos mysql 实战 第八节课

f

centos mysql 实战 第六节课 字符集

centos mysql 实战 第六节课    字符集 一定要研究清楚mysql安装脚本 字符集 乱码数据迁移1. 理解字符集怎么会事2. 不同的字符集进行转换 什么是字符集gbk , utf8 gb2312 latin1 一套符号编码规则 字符串都必须有相应的字符集,除了二进制没有字符集 校验字符集的概念流式传输 多字节latin1 单字节gbk 2字节utf8 3字节校验字符集的概念, 字为单位归类的方法,就是3类xxx_bin 以二进制形式存储区分大小写 SHOW CHARACTER SE

centos mysql 实战 优化 汇总

centos mysql 实战   优化 汇总 my.cnf 汇总 包括主从 内核参数汇总 命令汇总 备份还原命令 主从命令 调优汇总 f

centos mysql 优化 第八节课

centos mysql  优化  第八节课 f