浅谈Mysql数据库的备份方案

  

<>强自从入行干它互联网已经有些年头了,以前自己确实比较懒,从来不写博文,从来不总结工作经验,导致自身的技术提升的很慢,成长也是很慢,正儿八经的开始写博文也是从去年才开始的,写点东西,总结下,确实挺好,这样回顾自己的过往,感觉自己还是多多少少留下了点东西,不至于回想起来太过空虚,太过遗憾。好了废话不多说了,接下来分享点自己近四年来接触MySQL数据备份这一块的小经验。

  

<强>数据是一个互联网公司的命,脉数据库的安全以及备案的完整性是至关重要的,所以我们需要在工作中要很熟练的掌握数据的备份与恢复,这也是一个合格的运维DBA必须具有的职业技能

  

<强>我这里简单总结MySQL的备份分为3种
<强>分为冷备份,逻辑备份,热备份

  

1,冷备份:

  

<强>一般主要用于非核心业务,这类业务一般都是允许业务中断的,冷备份的特点就是数度快,恢复时也最为简单。通常直接复物理文件来实现冷备份

  

1.1备份过程:

  

第一关闭mysql服务
第二步就是把数据数据目录(包含ibdata1)和日志目录(包含ib_logfile0, ib_logfile1, ib_logfile2)复制到磁盘,或者本地的另一块磁盘里

  

1.2恢复过程:

  

第一使用复制的数据目录和日志目录替换原有的目录
第二就是启动mysql

  

2,逻辑备份,MySQLdump

  

<强>生产场景备份的命令:
生产场景不同引擎,mysqldump备份命令
<强> myisam引擎企业生产备份命令(适合所有引擎或混合引擎):

  
 <代码>,mysqldump -uroot -p123456 - a - b - f - r -主数据=https://www.yisu.com/zixun/2 - x -事件| gzip>/opt/all.sql.gz  
  

<>强提示:- f也可以不用,与——主数据有些重复。
<强> innodb引擎企业生产备份命令:推荐使用的

  
 <代码>,mysqldump -uroot -p123456 - a - b - f - r——主数据=https://www.yisu.com/zixun/2 default-character-set=utf8——事件单一事务| gzip>/opt/all.sql.gz  
  

<>强提示:- f也可以不用。与主数据有些重复。
<强>——default-character-set=utf8指定备份出的sql数据的字符集为utf8,当然,这个要提前知道线上的mysql库全部采用的字符集都是utf8,否则在恢复到线上的库会出现字符集不一致的问题出现乱码

  

<>强提示:逻辑备份一般是数据迁移或者数据量很小时采用,逻辑备份采用的是数据导出的方式

  

2.1, mysqldump库表等备份说明:

  

<强>全备:

  
 <代码>,Mysqldump -uroot - p - q单一事务——在祝辞all.sql  
  

<>强导出多个数据库:

  
 <代码>,Mysqldump -uroot - p - q单一事务- b test01 wjw01 test02祝辞test01_wjw01_test02.sql  
  

<>强导出一个测试库的某张wjw01表:

  
 <代码>,Mysqldump -uroot - p - q单一事务- b测试wjw01>祝辞test_wjw01.sql  
  

<强>只导出表结构:

  
 <代码>,Mysqldump -uroot q - d——skip-triggers  
  

<强>只需要导出储存过程时:

  
 <代码>,Mysqldump -uroot q -Rtdn——skip-triggers  
  

<强>只需要导出触发器:

  
 <代码>,Mysqldump -uroot - p - q -tdn触发 
  

<强>只需要导出事件:

  
 <代码>,Mysqldump -uroot - p - q -Etdn -skip-triggers  
  

<强>只需要导出数据:

  
 <代码>,Mysqldump -uroot - p - q——skip-transaction skip-triggers - t  
  

<>强要想在线上建立一台新的奴隶,则在总体上执行如下命令:

  
 <代码>,Mysqldump -uroot - p - q单一事务主数据=https://www.yisu.com/zixun/2——> all.sql  
  

<>强提示:在mysql5.5里增加了一个新的参数:dump-slave,使用该参数可在奴隶端转储数据,建立新的奴隶,其目的是为了防止对主库造成过大的压力。

  

<强>在奴隶上执行以下命令:

  
 <代码>,Mysqldump -uroot - p——-dump-slave=2 q单独的事务在/tmp/all.sql
  查看呼叫。sql里面会记录奴隶上的那个点。 
  

<强>注意:dump-slave用于在奴隶上转储数据,建立新的奴隶

  

2.2, mysqldump优缺点以及使用场景

  

<>强优点:
1,恢复简单,可以使用管道将他们输入到mysql
2,与存储引擎无关,因为是从mysql服务器中提取数据而生成的,所以消除了底层数据存储的不同

浅谈Mysql数据库的备份方案