为什么备份

数据越来越重要,备份的数据可以用来防止人为或自然灾害导致数据库的大量信息产生毁灭性的丢失。

备份的类型:

逻辑备份:适用中小型企业,使用软件在服务器工作的情况下进行备份

物理备份:适用大中型企业,使用tar,cp的方式在服务器不提供服务的情况下进行备份

实时备份:数据冗余备份

备份的方法;

全量备份

我们将所有的文件进行全部备份,恢复时也是一次性完成恢复。

全量备份缺点是:数据时很大,会占用备份带宽、并影响主机的通信性能。

优点是:恢复时只允许任意一份备份文件正常就可以进行恢复。

增量备份

我们将上一次备份后的差异部分进行备份,叫增量备份;恢复时需要将所有的备份文件进行恢复。

增量备份的优点是:数据量很小,对主机的通信性能影响最小。

但缺点是:需要将所有的备份文件进行恢复,任何一次文件丢失均会造成数据无法恢复

差异备份

我们将第一次备份的差异部分进行备份,叫做差异备份;差异恢复只需要第一次和最后一次的备份数据即可。

优点是:数据量适中。

缺点是:恢复时需要两份数据,恢复难度适中。

图片理解:

 备份

备份into outfile导出与回复

mysql>select * into outfile '/back/emp3.sql'  from emp;
mysql> load data local infile '/back/emp.sql' into table emp;

mysqldump

[root@Admin ~]# mysqldump -p123 db01 table01 table02 > /tmp/mysqlback/table01_02.sql   # 备份多个表

恢复
[root@ ~]#mysql -p123 db01 < /tmp/mysqlback/table01.sql
或者在mysql数据库内使用source命令来执行外部的sql文件
mysql> source /tmp/mysqlback/table01.sql

全库级备份:
考虑到数据库有innodb,也有其他类型的表,那么就只能锁表备份
[root@Admin ~]# mysqldump -p123 --lock-tables --all-databases > /tmp/mysqlback/alldb.sql
全库级恢复:
[root@Admin ~]# mysql -p123 < /tmp/mysqlback/alldb.sql
View Code

完全备份(mysqldump)+增量备份(binlog)

开启日志

[root@ ~]# vim /etc/my.cnf
log-bin=/var/lib/mysql/mysql56-bin.log
log-bin  (可直接这样写就ok)
[root@ ~]# service mysqld restart 
备份:

mysqldump -p123 --flush-logs --master-data=2 --all-databases > /tmp/mysqlback/all_back.sql
  • --flush-logs      备份时先将内存中日志写回磁盘,然后截断日志,并产生新的日志文件
  • --master-data=2  该选项将二进制日志的位置和文件名写入到备份文件,等于2表示CHANGE
恢复
[root@Admin ~]# mysql -p123 < /tmp/mysqlback/all_back.sql

注意二进制日志的使用参数
--start-datetime=name 开始的时间
--stop-datetime=name  结束的时间
--start-position=#    开始的位置(POS)
--stop-position=#     结束的位置
View Code

 









 

 

 

 

 

 

 

posted on 2020-03-14 20:20  topass123  阅读(197)  评论(0编辑  收藏  举报