`

MySql Innodb存储引擎--备份和优化

 
阅读更多

 

备份的目的

做灾难恢复:对损坏的数据进行恢复和还原

需求改变:因需求改变而需要把数据还原到改变以前

测试:测试新功能是否可用

 

备份需要考虑的问题

可以容忍丢失多长时间的数据;

恢复数据要在多长时间内完; 

恢复的时候是否需要持续提供服务;

恢复的对象,是整个库,多个表,还是单个库,单个表。

 

备份的类型

1、根据是否需要数据库离线

冷备(cold backup):需要关mysql服务,读写请求均不允许状态下进行;

温备(warm backup): 服务在线,但仅支持读请求,不允许写请求;

热备(hot backup):备份的同时,业务不受影响。

注:

1、这种类型的备份,取决于业务的需求,而不是备份工具

2、MyISAM不支持热备,InnoDB支持热备,但是需要专门的工具

2、根据要备份的数据集合的范围

完全备份:full backup,备份全部字符集。

增量备份: incremental backup 上次完全备份或增量备份以来改变了的数据,不能单独使用,要借助完全备份,备份的频率取决于数据的更新频率。

差异备份:differential backup 上次完全备份以来改变了的数据。

建议的恢复策略:

完全+增量+二进制日志

完全+差异+二进制日志 

 

备份的对象

1、 数据;

2、配置文件;

3、代码:存储过程、存储函数、触发器

4、os相关的配置文件

5、复制相关的配置

6、二进制日志

 

 

 

 

mysqldump基本语法

mysqldump -u username -p dbname table1 table2 ...-> BackupName.sql使用root用户备份test数据库下的person表

mysqldump -u root -p test person > D:\backup.sql

 

mysqlimport

mysqlimport [options] db_name textfile1 [textfile2 ...]
--同时导入两个文件
mysqlimport --use-threads=2 test /home/mysql/t.txt /home/mysql/s.txt

 

 

select into , load data, source

SELECT ... FROM TABLE_A
INTO OUTFILE "/path/to/file"
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
LINES TERMINATED BY '\n';

LOAD DATA INFILE "/path/to/file" INTO TABLE table_name;
注意:如果导出时用到了FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '\n'语句,那么LODA时也要加上同样的分隔限制语句。还要注意编码问题。
mysql>use dbtest;
mysql>set names utf8;
mysql>source D:/www/sql/back.sql;

 

mysqlbinlog

mysqlbinlog [options] log_file ...
--将xxx.binlog.000001 导入到c盘
mysqlbinlog --start-position=4 --stop-position=106 xxx_binglog.000001 > c:\\test1.txt

 

热备工具

ibbackup

XtraBackup

 

其他

LVM快照备份,通过文件系统的快照来备份

replication备份

replication+LVM备份

 

复制replication是MySql提供的一种高可用解决方案,复制的原理

1.主服务器master把数据更改近路到二进制日志binlog中

2.从服务器slave把主服务器的二进制日志复制到自己的中继日志relay log中

3.从服务器重做中继日志中的日志,把更改应用到自己的数据库上,以达到数据的最终一致性

需要注意的是因为延迟复制不能达到实时同步


 

如果在主服务器上DBA做了一些误删除操作,那么从服务器也一样会同步这些操作,这样错误的操作也会被同步就达不到备份的目的了,所以用复制+快照来实现更好的备份


 

 

 

 

 

 

性能优化

OLTP在线事务处理对CPU要求不高但要更多内存

OLAP在线分析处理需要更多的查询和连接对CPU要求高 

 

当内存超过了数据量总大小时,性能会直线上升,但继续增加内存效果就不明显了

inodb_read相关参数

SHOW GLOBAL STATUS LIKE 'innodb%read%';

innodb_buffer_pool_reads 表示从物理磁盘读取页的次数

innodb_buffer_pool_read_ahead 预读的次数

innodb_buffer_pool_read_ahead_evicted 预读的页,但是没有被读取就从缓冲池中被替换的页的数量,一般用来判断预读取的效率

innodb_buffer_pool_read_requests 从缓冲池中读取页的次数

innodb_data_read 总共读入的字节数

innodb_data_reads 发起读取请求的次数,每次读取可能需要读取多少页

 

可以将多块盘组成RAID来提供性能和高可用,也可以用SSD提供性能

RAID-0性能最好,但是安全性最低


 

RAID-1 安全性最好,但是利用率最低


 

RAID-5综合了RAID-0和RAID-1的特点,加入了奇偶校验,将盘的校验数据放入其他盘,这样即使坏掉已坏盘也不怕


 

RAID10和RAID01则综合了RAID1和RAID0的特点

RAID10有更好的读取速度,RAID01比RAID10有更好的写入速度,但是安全性要差一点,现在一般用的是

RAID10比较多,此外还有RAID50


 

 

RAID卡 write-through和write-back模式

Write-Through 模式: 

1. DB向Cell发送一个写请求, cellsrv进行验证确认其请求有效; 

2. cellsrv将发送指令将其写入到物理磁盘; 

3. 写完成以后,给DB确认已经写成功; 

4. cellsrv判断次数据是否适合缓存到cache中,如果满足条件则缓存,否则不缓存。

Write-Back 模式: 

1. DB向Cell发送一个写请求, cellsrv进行验证确认其请求有效; 

2. cellsrv将发送指令将其写入到磁盘Cache; 

3. 将此数据的状态置为dirty的状态。(直到下次临界条件将脏数据刷新到磁盘,并判断此数据是否适合缓存,如果不适合,刷新完成以后会丢弃,刷新和缓存过程是异步的,并不在步骤3来完成) 

4. 写完成以后,给DB确认已经写成功;


这两种模式相比,明显write-back效率要高很多,因为每次都是写入到RAID卡的缓存中,再异步刷新到磁盘上,RAID卡也带了备用电池,所以当开启电池后可以安全的使用这种模式,当电池在充电或者没电的时候就会使用write-through模式

 

 

不同的操作系统,文件系统对性能影响并不大

两个基准测试工具

sysbench

mysql-tpcc

 

 

 

 

 

参考

MySQL select into outfile用法

使用mysqlimport 将格式化文件导入mysql表

MySQL 数据备份与还原

[InnoDB系列] -- 实测ibbackup vs mysqldump

使用Xtrabackup来备份你的mysql 

MySQL实验室DMB数据库监控及灾备系统 之 [备份模式的选择]

Cache写策略——write-through与write-back

sysbench安装、使用、结果解读

[Mysql高可用]——双主互备+keepalived

基于keepalived 实现VIP转移,lvs,nginx的高可用

VRRP虚拟路由器冗余协议

针对SSD的MySQL IO优化

mysql优化参数

Innodb存储引擎的编译和调试

 

  • 大小: 122.3 KB
  • 大小: 121.6 KB
  • 大小: 42.1 KB
  • 大小: 41.4 KB
  • 大小: 78.7 KB
  • 大小: 143.7 KB
  • 大小: 22.1 KB
  • 大小: 22.5 KB
分享到:
评论

相关推荐

    MySQL技术内幕 InnoDB存储引擎.pdf

    最近在学习MySQL技术内幕 InnoDB存储引擎 第2版,整理了一些文档分享出来,同时也方便以后查看。若有不当之处,烦请批评指正。 1. MySQL体系结构和存储引擎 2. InnoDB存储引擎 2.1 InnoDB体系结构 2.2 ...

    mysql内核 innodb存储引擎

    接着以InnoDB的内部实现为切入点,逐一详细讲解了InnoDB存储引擎内部的各个功能模块,包括InnoDB存储引擎的体系结构、内存中的数据结构、基于InnoDB存储引擎的表和页的物理存储、索引与算法、文件、锁、事务、备份,...

    MySQL技术内幕InnoDB存储引擎.rar

    《高性能mysql(第3版)》是最具代表性的进阶书籍没有之一,它是 MySQL 领域的经典之作,内容涵盖 MySQL 架构和历史,性能分析,优化,复制、备份和恢复,高可用与高可扩展性。值得每一个后端工程师多次阅读,无论是...

    Linux运维-运维课程d4-MySQL备份与恢复(重点)-11-InnoDB引擎存储结构.mp4

    Linux运维-运维课程d4-MySQL备份与恢复(重点)-11-InnoDB引擎存储结构.mp4

    《MYSQL备份与恢复》之 Innodb与 MyISAM引擎

    Xtrabackup工具支持对InnoDB存储引擎的增量备份,工作原理如下: xtrabackup备份原理  xtraBackup基于InnoDB的crash-recovery功能。它会复制innodb的data file,由于不锁表,复制出来的数据是不一致的,在恢复的...

    MySQL网络培训精品班-Inside君姜承尧

    姜承尧老师出版了《MySQL技术内幕:InnoDB存储引擎》、《MySQL内核:InnoDB存储引擎》等Mysql书籍。 课程紧密结合互联网公司实践,学员能够领略到BAT、网易等大公司的数据库架构与应用案例 课纲结合最新的MySQL 5.6...

    MySQL数据库运维视频教程.zip

    4.性能优化.ppt MySQL数据库运维--第5周.mp4 5.字符集和权限安全.ppt MySQL数据库运维--第6周.mp4 InnoDB 日志 回滚段 & 崩溃恢复实现详解——修改版.pdf 6.日志系统.ppt MySQL数据库运维--第7周.mp4 7.备份恢复-1....

    新版 MySQL DBA 高级视频 基于MySQL 5.7 MySQL 8.0版本.rar

    │ 5_InnoDB存储引擎配置.mp4 │ 6_InnoDB统计资料和其他配置.mp4 │ 7_InnoDB锁原理和锁等待问题定位.mp4 │ ├─新版MySQL DBA综合实战班 第07天 │ 1_课后作业讲解.mp4 │ 2_MySQL锁机制原理讲解.mp4 │ 3_MySQL...

    2017最新老男孩MySQL高级专业DBA实战课程全套【清晰不加密】,看完教程月入40万没毛病

    第十一部 MySQL读写分离开发实现及软件实现-物理备份-高可用(已经包含有5节视频+文档资料) 01-amoeba读写分离实现技术分享.avi 02-mysql-proxy读写分离实现技术分享.avi 03-PHP程序实现读写分离技术分享.avi 04-...

    MySQL备份与恢复实战(PDF版)

    包含下列主题:mysql 日志文件,使用mysqld 加相应选项来启用某种日志。Mysql完全备份及恢复:mysqldump 对MyISAM 或InnoDB ...MyISAM 表的检查与修复(另见《MySql 存储引擎》)。Innodb 表的碎片整理和模糊检查点。

    MySQL 5.1参考手册

    15.2. InnoDB存储引擎 15.2.1. InnoDB概述 15.2.2. InnoDB联系信息 15.2.3. InnoDB配置 15.2.4. InnoDB启动选项 15.2.5. 创建InnoDB表空间 15.2.6. 创建InnoDB表 15.2.7. 添加和删除InnoDB数据和日志文件 15.2.8. ...

    基于MySQL的存储引擎与日志说明(全面讲解)

    MySQL引擎功能: 除了可以提供基本的存取功能,还有更多功能事务功能、锁定、备份和恢复、优化以及特殊功能。 1.1.3 MySQL存储引擎种类 MySQL 提供以下存储引擎: InnoDB、MyISAM (最常用的两种) MEMORY、ARCHIVE

    MySQL 5.1官方简体中文参考手册

    7.2.9. MySQL如何优化LEFT JOIN和RIGHT JOIN 7.2.10. MySQL如何优化嵌套Join 7.2.11. MySQL如何简化外部联合 7.2.12. MySQL如何优化ORDER BY 7.2.13. MySQL如何优化GROUP BY 7.2.14. MySQL如何优化LIMIT 7.2.15. ...

    MySQL5.1性能调优与架构设计.mobi

    11.2 InnoDB存储引擎优化 11.3 小结 第3篇 架构设计篇 第12章 MySQL可扩展设计的基本原则 12.0 引言 12.1 什么是可扩展性 12.2 事务相关性最小化原则 12.3 数据一致性原则 12.4 高可用及数据安全原则 12.5...

    mysql8中文参考手册

    INnoDb存储引擎、 mysql数据字典、替代存储引擎,分布。mysql性能模式。连接器和api,sql模式指标 状态变量指标。系统变量指标。事务的隔离级别质数 Mysql词汇,如何使用MySQL的MySQL客户端程序来创建和使用一个简单...

    MySQL性能调优与架构设计(中文版)

     3.3 InnoDB存储引擎简介   第4章 MySQL安全管理  4.0 引言  4.1 数据库系统安全相关因素  4.2 MySQL权限系统介绍  4.3 MySQL访问授权策略  4.4 安全设置注意事项  4.5 小结  第 5章 MySQL备份与...

    InnoDB: Hot Backup Manual

    详细介绍了 Innodb 存储引擎在线备份工具 ibackup 的使用。

    高性能MySQL pdf 免费-part1

     ·全面论及各数据引擎,并深入讲解InnoDB的优化方法。  ·介绍MySQL 5.0和5.1的新特性,例如存储过程、分块数据库、触发器和视图。  ·具体细致地讨论如何使用MySQL构建出一个大型的、高伸缩性的系统。  ·可...

    Mysql数据库从入门到精通.rar

    1.mysql 备份数据 2.Mysql 更新数据 ...10.浅谈MySQL存储引擎选择InnoDB还是MyISAM 11.浅谈unique列上插入重复值的MySQL解决方案 12.深入了解MySQL 5.5分区功能增强.doc 13.在MySQL中操作日期和时间

Global site tag (gtag.js) - Google Analytics