mysql作业备份_Mysql的备份和恢复

Mysql的备份和恢复

备份之前应该了解的知识:

1:确定要备份的表的存储引擎是事务的还是非事务的,两种不同的引擎备份的方式在处理数据一致性方面是不太一样的.'

2:确定是要做增量备份还是全备份,增量备份只是备份每天增加的日志.优点是备份时间短,对负载压力也小,缺点是恢复的时候需要全备份加上增量备份的所有日志,恢复的时间比较长.全备份的优点是备份保持最新的备份,恢复的时候需要的时间也相对比较小,缺点是如果数据量比较大,则备份将花费很多的时间,对系统造成很大的压力.

3:备份必须确定MySql开启了log-bin选项,只有了bin-log,MySql才可以在必必要的时候做出完整的恢复,或者基于时间点的恢复,或者基于位置的恢复.

1:逻辑备份(温备)和物理备份(热备和冷备):

1>逻辑备份就是将数据库中的数据备份作为一个文本文件,可以用来查看和备份.常用的mysqldump,为了保证数据的一致性,MyISAM存储引擎在备份的时候需要加上-l参数,表示将所有的表的加上锁.在备份期间,所有的表只能读而不能进行数据更新.

mysqldump -uroot -p --all-database> all.sql 备份所有的数据库;

mysqldump -uroot -p test > test.sql 备份test这个数据库

mysqldump -uroot -p test emp dept > emp.sql 备份test数据库下的emp和dept这两个表

2>导入的方法

1>在数据库中使用source来直接导入.

2>使用mysql -uroot -p < all.sql直接导入,但是要确定数据库是否建立,可能有的数据库并没有建立,可能会出错的.

1:备份的方法:

1>hot backup (热备):在数据库运行中直接进行备份,对正在运行的数据库没有任何影响.

2>cold backup(冷备):在数据库停止时进行备份,拷贝对应的物理文件即可.

3>warm backup(温备):同样在数据库运行的时候进行,但是会对当前数据库操作有所影响,例如加一个全局读锁以保证备份数据的一致性.

2:hot backup热备的方法:

1>使用xtrabackup热备工具,xtrbackup只能备份InnoDB和XtraDB两种数据库,innobackupex支持同事备份InnoDB和MyISAM,但是在对MyISAM备份的时候需要加一个全局的读锁.

2>全备份的过程,备份开始时首先会开启一个后台检测进程,实时检测mysql redo的变化,一旦发现redo中有新日志写入,立即将日志记入后台日志文件xtrabackup_log中,之后复制InnoDB的数据文件和系统表控件文件ibdata1,待复制结束之后,执行flush tables with read lock操作,复制.frm,.MYI,.MYD等文件(执行flush tables with read lock的目的是为了防止数据库发生DDL操作,并在这一个时刻获得binlog的位置),最后发出unlock tables,把表设置为可读写状态,最终停止xtrabackup_log.

3>增量备份的过程,增量备份过程中增量处理,其实主要是相对innoDB而言,对MyISAM和其他引擎而言,它仍然是一个全拷贝.增量备份的过程主要是通过拷贝InnoDB中有变更的页(这些变更的数据页指的是页的LSN大于xtrabackup_checkpoints中给定的LSN),增量备份是基于全备份的,第一次增备的数据必须要基于上一次的全备,之后的每次都是基于上一次的增倍.最终达到一致性的增备.

3:使用xtrabackup备份的方法

1>全备份:innobackupex --user=root --password= --dafaults-file= database= test /mysql/backup ;

innobackupex --apply-log --use-mempry=20G /data/base //回滚那些没有提交的数据

--default-file指定数据库的配置文件,--database是指定要备份的数据库,默认是备份所有的数据库

2>全备份的恢复:innobackupex --defaults-file=/tmp/my.cnf --copy-back -rsync /data/mysql;

恢复备份到mysql数据文件的目录,这一过程要先关闭mysql数据库(shutdown),重命名原数据库文件目录(mv),在创建一个新的数据文件目录(mkdir),将备份的数据复制到新的数据文件目录下,赋权(chown -R mysql:mysql /data),启动mysql数据库.

3>增量备份:innobackupex --user --password --defaults --incremental /data/hotbackup/incremental_one --incremental-basedir=/data/backup/hotbackup/base

4>增量恢复:(1)恢复基础备份,(2)恢复增量备份到基础备份(开始恢复的增量备份要添加--redo-only参数,到最后一个增量备份去掉--redo-only参数)(3):对整体的基础备份进行恢复,回滚那些未提交的数据.

innobackupex --apply-log --redo-only --use-memory=20G /data/base //恢复基础备份

innobackupex --apply-log --redo-only --use-memory=20G /data/base --incremental-dir=/data/incremental_one/ //恢复增量备份到基础备份

innobackupex --apply-log --redo-only --use-memory=20G /data/base --incremental-dir=/data/incremental_two/ //恢复增量备份到基础备份

innobackupex --apply-log --user-memory=20G /data/base //对整体基础备份进行恢复,回滚那些没有提交的数据,

然后进行全备份的恢复.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值