数据备份是数据容灾的最后一道防线,就算是有着两地三中心的架构,备份文件也依旧重要的是。要是备分出问题,软件备份时影响不大了交易业务,备份数据不能重新恢复,这些都是企业难以承受的。因此选择类型适合的备份工具尤为重要。
每个企业级数据库都会有教材的备份工具,meb(mysqlenterprisebackup)就是mysql企业版中非常重要的工具之一,是为企业级客户提供给的数据备份方案。
xtrabackup总是作为meb开源代码版备胎而存在,从mysql8.0结束情况可能会会变得更加有所不同。
在mysql8.0的backuplock、redologarchiving、pagetracking等新特性的加持下,meb备份文件/可以恢复想体验会更好,目前xtrabackup还不支持这些特性。
mysql企业版有哪些功能?
特性1:backuplock
8.0之前不使用xtrabackup或meb做物理备份文件,替只要备份文件时innodb引擎表与其他引擎数据文件、及binlog日志的一致性会上全局读锁,再拷入非innodb文件,这期间mysql会都变成只读,数据根本无法读取。表数量一定,很可能另外时间越长,要是可以使用的xtrabackup一不小心没加rsync参数,轮流u盘拷贝frm文件,锁定时间会更长,对业务影响较小。
我曾遇到过重新部署在虚拟机的实例有12000多张表,当时不使用的xtrabackup,备份脚本中没加rsync参数,可是锁了十几分钟,而meb就没有这样的问题。
mysql8.0允许轻量级系统备份锁lockinstanceafterbackup,数据字典也重构了由innodb存储。若不修改非innodb表,meb默认使用备份文件锁资源binlog日志一致性位置,并阻止ddl操作,但不引响dml操作。
只能innodb表,仅上系统备份锁
若有非innodb表,上全局锁
特性2:redologarchiving
meb能你做到网热备,备分时不影响大数据库读写,这是借用了innodb事务日志,在软件备份期间减弱监视redolog的变化,无法读取增量变化,中写入到ibbackup_logfile,也就不要上锁来保障备分一致性。(对非innodb的文件不需要上读锁拷贝)
如果没有备份期间数据库写入文件负载最重要的大,而读取ibbackup_logfile速度较慢,redologsize也不太大,很肯定会又出现ibbackup_logfile的中写入速度跟不上脚步redolog记录生成速度,redolog空间太少时不需要覆写日志文件,这样的话根本来不及写入到ibbackup_logfile的记录会丢失的,会造成软件备份一次。
meb4.1因此做了优化,将redolog处理线程拆分成多线程分工合作,能提高如何处理redolog的效率,降底了redolog覆写倒致备份失败的概率,但redolog新增加速度和ibbackup_logfile写入文件速度悬殊太大,问题依然会再一次发生。
mysql8.0.17允许了redologarchiving全部解决的办法了此问题,系统备份前系统设置innodb_redo_log_archive_dirs,委托redolog归档目录。meb备份时自动自动打开日志归档,当checkpoint时会将旧记录归档到此处目录,现从归档文件中读取redo日志记录,以免了覆写可能会导致的redo有记录丢了。
再注意:innodb_redo_log_archive_dirs肯定不能在数据目录下,目录权限要求是700
特性3:pagetracking
pagetracking是为优化增量系统备份效率,会减少不必要的数据页扫描。
增量备份当前有3种扫描模式:
page-track:依靠lsn计算精确潜进来刚才备分之后被如何修改页面,仅不能复制这些页面,效率快的话。
optimistic:扫描前段时间备分之后被修改的innodb数据文件中,找到什么并文件复制如何修改的页面。依赖感系统时间,建议使用存在限制。
endless-scan:扫描后所有innodb数据文件,得出答案并拷贝自刚才系统备份之后如何修改的页面,效率最慢
1、凭借page-track增量备分,需先直接安装软件备份组件
2、在全备前传送page-track
3、全备之后,做增量软件备份时重新指定若柯西-黎曼方程pagetracking条件,默认会在用page-track模式,否则不会不使用endless-scan模式,也可以重新指定--incrementalpage-track。
incremental-base有3种选择
last_backup:基于组件前一次备份做增备,前三次软件备份可能是增备,也很有可能是全备。这种全备之间可能会会有多个增备,隔一段时间增量可能都很小,但重新恢复时必须逐一单独设置。
last_clear_backup:基于组件前一次全备做增备。这种增备会越往前体积很有可能越大,但完全恢复时只要合并最后一次增量备份。
dir:基于条件前一次的备份目录,前两次备份肯定是增备,也肯定是全备。
测试差不多large-scan和page-track,在进行变更页小于等于总体50%的情况下,备份效率最起码能有1倍的速度进阶。
page-track模式磁盘读写均衡,那就证明读写的是如何修改页面。
large-scan模式磁盘读写差别比较大,只能说明读了很多未修改的页面。
用sql语句备份与恢复数据库的步骤:
1.备分:mysqldump--quick--databaseondemand1--urootgtbacqup.sql那样的话就能把数据库中ondemand1的表完全备份文件不出来。
2.其中参数的格式是:--,两横杠,又不是我们正确的单横杠。
3.quick是在数据比较多的时候,你不该参数的话,所有的数据都会先在内存缓存,随即才导出来,这样的话会导致服务器运行减慢。
4.--u需要要加一个用户名,不然系统会不提示你进不了odbc数据库的。
则是你的软件备份数据库的目标文件名。
6.完全恢复:m1ysql-uroot-pdatabase_name?,在win下,路径用path/filename.sql是不行啊的,那就用pathfilename.sql。sql语句:是对数据库进行不能操作的一种语言。结构化查询语言(structuredquerylanguage)西安北方光电有限公司sql,结构化查询语言是一种数据库网站查询和程序设计语言,主要是用于存取数据这些查询、更新和管理关系数据库系统。其他命令:如,还原系统命令:usemastergorestoredatabasetest_wtfromdiskc:test_wtgomysql。