mysql对象怎么备份 mysql怎么备份表语句

mysql如何快速备份来源:知乎
河南-老宋(志强)
问题描述的不是非常的清晰
使用mysqldump备份时一般会会加上--single-transaction参数mysql对象怎么备份,这里假设你是加了这个参数 。
一 加速备份
1 加了single-transaction参数 备份时 需要先flush table with read lock 这个过程中会有一个锁表的过程mysql对象怎么备份,如果有事务或语句正在执行,没有结束,那么备份进程会一直等待 , 并且阻塞别的事务,那么也会影响业务 。所以要先确认备份的时候没有大的事务在运行 。
具体 single-transaction的加锁可以参考 我的博客:mysqldump备份时加single-transaction会不会加锁
2 mysqldump是单进程的,没有办法并行,但现在机器的瓶颈多是出现在IO方面,可以使用更了的IO设备加快速度
3 mysqldump时如果空间够的话 , 不要边压缩边备份
二 加速恢复
1 关闭binlog:不写入Binlog会大大的加快数据导入的速度
2 innodb_flush_log_at_trx_commit=0
3 更好的配置
建议:
一 如果非要使用逻辑备份 , 可以考虑mysqldumper, mysqlpump(5.7)这两个工具去备份 , 这两个在备份的时候支持并行操作,mysqldumper还可以对单表进行恢复,在只需要恢复单表的情况下,恢复速度会大大加快
二 使用物理备份 xtrabackup (open source),MEB(oracle提供 , 收费): 他们的备份原理是基于mysql crash recover,备份速度 是和逻辑备份的相差不太大 。但是恢复速度却有很大的提升 。
逻辑备份 备出来的是sql语句文件 , 恢复时需要一条一条的执行sql,所以恢复很慢 。
而物理备份和还原的速度 相当于直接copy文件,所以恢复的时候性能有很大的提升
并且这两个软件还支持并行 , 效果更好 。
逻辑备份最大的优点是 备份好的文件经压缩后占用空间较小,最大缺点恢复太慢
物理备份可以很快的恢复 , 但是备份好的文件压缩后占用空间比逻辑备份要大 。
使用云,你做为用户可以不用考虑这些事情 。
附:xtrabackup的并行参数
【mysql对象怎么备份 mysql怎么备份表语句】Parallel local backups
Parallel compression
Parallel encryption
Parallel apply-log
Gary Chen
《MySQL DBA修炼之道》作者 。从事数据库领域10多年 。
1.一般来说,你只有靠更好的硬件. 软件没有大的变动的情况下不可能突破硬件瓶颈;
2. mysqldump默认的导出选项已经可以了,单进程的工具不要期望太多,TommyChiu介绍的工具可试试.;
3. 导出的时候观察下系统,如果是cpu瓶颈,你基本无解.如果是swap问题,看是否是因为内存不够;
4. 恢复的时候主要是一个参数:innodb_flush_log_at_trx_commit=2
TommyChiu
mk-parallel-dump 试试
MySQL备份数据库时需要备份的对象有哪些?数据库备份对象包含数据,表结构,创建存储过程,日志等 。
1、 mysqldump命令备份数据
在MySQL中提供mysql对象怎么备份了命令行导出数据库数据以及文件的一种方便的工具mysqldump,mysql对象怎么备份我们可以通过命令行直接实现数据库内容的导出dump,首先mysql对象怎么备份我们简单了解一下mysqldump命令用法:
#MySQLdump常用
mysqldump -u root -p --databases 数据库1 数据库2xxx.sql
2、 mysqldump常用操作实例
2.1备份全部数据库的数据和结构
mysqldump -uroot -p123456 -A/data/mysqlDump/mydb.sql
2.2备份全部数据库的结构(加 -d 参数)
mysqldump -uroot -p123456 -A -d/data/mysqlDump/mydb.sql
2.3 备份全部数据库的数据(加 -t 参数)
mysqldump -uroot -p123456 -A -t/data/mysqlDump/mydb.sql
2.4 备份单个数据库的数据和结构(,数据库名mydb)
mysqldump -uroot-p123456 mydb/data/mysqlDump/mydb.sql
2.5 备份单个数据库的结构
mysqldump -uroot -p123456 mydb -d/data/mysqlDump/mydb.sql
2.6 备份单个数据库的数据
mysqldump -uroot -p123456 mydb -t/data/mysqlDump/mydb.sql2
2.7 备份多个表的数据和结构(数据 , 结构的单独备份方法与上同)
mysqldump -uroot -p123456 mydb t1 t2/data/mysqlDump/mydb.sql
2.8 一次备份多个数据库
mysqldump -uroot -p123456 --databases db1 db2/data/mysqlDump/mydb.sql
mysql到底如何备份数据备份是数据容灾的最后一道防线,即便有着两地三中心的架构,备份也依然重要 。如果备份出问题,备份时影响了交易业务,备份数据无法恢复 , 这些也是企业难以承受的 。所以选择合适的备份工具尤为重要 。
每个企业级数据库都会有配套的备份工具,MEB(MySQL Enterprise Backup)就是MySQL企业版中非常重要的工具之一,是为企业级客户提供的数据备份方案 。
Xtrabackup一直作为MEB 开源版备胎而存在,从MySQL 8.0开始情况可能会变得有所不同 。
在 MySQL 8.0的Backup Lock、Redo Log Archiving、Page Tracking等新特性的加持下,MEB备份/恢复体验会更好,目前xtrabackup还不支持这些特性 。
MySQL 企业版还有哪些功能?
特性1:Backup Lock
8.0之前使用xtrabackup或MEB做物理备份,为了保证备份时InnoDB引擎表与其他引擎数据文件、及binlog日志的一致性会上全局读锁 , 再拷贝非InnoDB文件 , 这期间MySQL会变成只读,数据无法写入 。表数量越多,可能加上时间越长,如果使用的xtrabackup 不小心没加rsync参数,逐个拷贝frm文件 , 锁定时间会更长,对业务影响较大 。
我曾遇到过部署在虚拟机的实例有12000多张表,当时使用的xtrabackup,备份脚本中没加rsync参数,结果锁了十几分钟,而MEB就没有这样的问题 。
MySQL 8.0支持轻量级备份锁 LOCK INSTANCE FOR BACKUP,数据字典也重构了由InnoDB存储 。若不创建非InnoDB表,MEB默认使用备份锁获取binlog日志一致性位置,并阻止DDL操作,但不影响DML操作 。
只有InnoDB表,仅上备份锁
请点击输入图片描述
若有非InnoDB表,上全局锁
请点击输入图片描述
特性2:Redo Log Archiving
MEB能做到在线热备,备份时不影响数据库读写 , 这是利用了InnoDB事务日志,在备份期间持续监视redo log的变化,读取增量变化,写入到ibbackup_logfile,也就不需要上锁来保障备份一致性 。(对非InnoDB的文件需要上读锁拷贝)
如果备份期间数据库写入负载特别大,而写入ibbackup_logfile速度较慢 , redo log size也不大,很可能会出现ibbackup_logfile的写入速度跟不上redo log记录生成速度,redo log 空间不够时需要覆写日志文件,那么来不及写入ibbackup_logfile的记录会丢失,导致备份失败 。
MEB 4.1对此做了优化,将redo log处理线程拆分成多线程分工合作 , 提高处理redo log的效率,降低了redo log覆写造成备份失败的概率,但redo log新增速度和ibbackup_logfile写入速度悬殊太大 , 问题依然会发生 。
MySQL 8.0.17支持了redo log archiving 彻底解决了此问题,备份前设置innodb_redo_log_archive_dirs,指定redo log归档目录 。MEB备份时自动开启日志归档,当checkpoint时会将旧记录归档到此目录 , 后续从归档文件中读取redo日志记录,避免了覆写可能导致的redo记录丢失 。
请点击输入图片描述
注意:innodb_redo_log_archive_dirs 不能在数据目录下,目录权限要求是700
特性3:Page Tracking
Page Tracking 是为优化增量备份效率,减少不必要的数据页扫描 。
增量备份当前有3种扫描模式:
page-track:利用LSN精确跟踪上次备份之后被修改页面,仅复制这些页面 , 效率最快 。
optimistic:扫描上次备份之后被修改的InnoDB 数据文件中,找出并拷贝修改的页面 。依赖系统时间,使用存在限制 。
full-scan:扫描所有InnoDB数据文件 , 找出并拷贝自上次备份之后修改的页面,效率最慢
1、利用page-track增量备份,需先安装备份组件
mysql INSTALL COMPONENT "";
2、在全备前开启page-track
SELECT mysqlbackup_page_track_set(true);
3、全备之后,做增量备份时指定若满足page tracking条件,默认会使用page-track模式,否则会使用full-scan模式 , 也可以指定--incremental=page-track 。
mysqlbackup --incremental-backup-dir=backup_incr --trace=3 --incremental=page-track --incremental-base=history:last_full_backup backup
incremental-base有3种选择
last_backup:基于前一次备份做增备,前一次备份可能是增备,也可能是全备 。这种方式全备之间可能会有多个增备,每次增量可能比较小 , 但恢复时需要逐个合并 。
last_full_backup:基于前一次全备做增备 。这种方式增备会越往后体积可能越大,但恢复时只需要合并最后一次增量备份 。
dir:基于前一次的备份目录,前一次备份可能是增备,也可能是全备 。
测试对比full-scan 和page-track ,在变更页小于总体50%的情况下 ,备份效率至少能有1倍的速度提升 。
page-track 模式 磁盘读写均衡 , 说明读写的都是修改页面 。
请点击输入图片描述
full-scan模式 磁盘读写差别很大,说明读了很多未修改的页面 。
请点击输入图片描述
mysql备份问题,mysql版本5.7.21. mysqldump: 最早,也是最成熟的逻辑备份工具 , 是 MySQL 原生的用来备份整个数据库实例、单个数据库、单张表的逻辑备份工具 , 上手简单 , 学习成本几乎为 0 。备份简单 , 恢复也简单 。
比如导出单个数据库 ytt: mysqldump ytt/tmp/ytt.sql;
恢复也非常简单:mysql/tmp/ytt.sql
缺点是备份速度慢 。在整个备份过程中 , 是单线程运行;备份出来的数据集要恢复的话同样也是单线程运行 , 恢复速度也慢 。除非对同一时刻的所有表单独备份出来,自己写额外脚本进行多线程恢复 。
2. mysqlpump:MySQL 5.7 GA 后推出的 mysqldump工具的增强版 。可以对同一个数据集多个线程并发备份 , 备份速度很快 。
其他缺点和 mysqldump 一样 。
3. MySQL Shell UTIL 对象附带的备份工具:随 MySQL 8.0.21 最新版本捆绑发布 , 自带多线程备份以及多线程恢复功能,可以直接替代 mysqldump/mysqlpump 。
dump_instance/dumpInstance 用来多线程备份 MySQL 整个单机实例
dump_schemas/dumpSchemas 用来多线程备份 MySQL 单个数据库
load_dump/loadDump 用来多线程恢复之前两个工具导出的数据集文件
怎么用navicat自动备份mysql数据库方法/步骤
1打开navicat客户端,连上mysql后,双击左边你想要备份的数据库 。点击“计划”,再点击“新建批处理作业” 。
2双击上面的可用任务,它就会到下面的列表里去,代表你选择了这个任务 。
3点击保存,弹出个命名对话框,给这个任务取个名字 , 点击“确定” 。
4点击“设置”计划任务 。
5弹出的对话框 , 选择“计划”,再点击“新建” 。
6这里设置为从2014年1月24号起每天早上九点备份该数据库 。如果你想提高备份频率、或者设置备份截止日期,请点击“高级” 。
7高级选项可以把备份设置的更精细,比如这里设置的是在24小时内每隔2小时就备份一次 。加上前面的基本设置,任务计划就是:从2014年1月24号开始,每天九点 , 每隔2小时备份一次,每天的备份都持续24小时 。
8最后 , 输入电脑密码就大功告成 。
如何实现Mysql数据库每天自动备份定时备份?利用UCache灾备云平台,可作为一个工具,在window服务器现有架构不变的情况下,针对Mysql数据库每天自动备份定时备份 。
(1)新建备份任务
UCACHE灾备云控制台登录账号后:点击【服务器定时数据保护】--【数据备份】点击【新建】按钮,然后选要保护的对象(您的生产服务器节点) , 选中对应的客户端,选择【文件系统】然后点击【 下一步 】
(2)设置备份策略
选择要进行备份的文件
(3)永久增量备份与数据保留设置
选择完要过滤的数据之后点击下一步,可进行下一步备份的高级功能选择,各个选项说明如下:
【永久增量备份】开启了永久增量备份每一次增量备份都会进行一次时间点合成形成新的一个永久增量时间点等效于完备时间点 。
【数据保留策略】开启数据保留策略一共有三种保留策略分别为数据保留期限、保留副本数、按备份策略的备份周期设置副本保留策略默认选中数据保留期限一年 。可以设置保留完全副本的个数最大可设置1024个副本按备份策略的备份周期设置副本保留策略最大可设置99999个副本 。
【传输和存储加密】开启传输加密与存储加密选项开启此功能的任务的数据在传输和存储上都经过加密处理 。一共有两种加密方式AES256加密算法、SM4加密算法 。
【数据压缩】默认不开启开启该选项后默认启用快速压缩可选择启用强力压缩
【重复数据删除】勾选该选项可以启动源端重复数据删除的功能该选项在建立任务后不能通过修改任务的方式更改此属性 。指纹库需要提前创建才能成功开启重删功能
最后新建完成
目录和文件内容 , 可以全选和分选,还可以利用UCACHE灾备云控制台的“文件过滤”“目录过滤”“时间过滤”功能进行不必要的数据不进行备份策略添加 。为了备份效率不建议两个任务包含同一文件 。
(4)设置邮件告警
备份执行完毕,会得到系统的执行反馈,也可以设定告警监控策略,进行邮件监控
关于mysql对象怎么备份和mysql怎么备份表语句的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读