本文共 2656 字,大约阅读时间需要 8 分钟。
对于用户来说,数据库中保存的数据通常至关重要,所以要采取各种手段来防止各种可能的数据损失和数据故障。
DBA主要任务就是维持数据库的高可靠性运行,尽量提高数据库的连续可用时间,降低数据库的平均恢复时间,最小化故障时的数据损失及业务影响。
努力提高平均故障间隔时间(MTBF),确保硬件尽量可靠,也就是通过冗余方式保护关键组件,定期执行操作系统维护,如主从,集群,容灾。
减少平均恢复时间(MTTR),提前确定恢复过程方案并配置备份,以便在需要时随时可用。
作为一名DBA,千万不要忽视数据备份和恢复测试的重要性。要知道,有时,备份可能拯救我们的命!!!切记切记。
DBA可按照接受的最佳方案配置数据库,以便永远不丢失提交的事务处故障类别-----可分为以下几类∶
◆语句错误∶单个数据库操作(选择、插入、更新或删除)失败,软件逻辑问题。
◆用户进程错误︰单个数据库会话失败,一般不需要干预,分析日志观察。
◆网络故障:与数据库的连接断开,如∶网卡坏,网络配置问题。
◆用户错误∶用户成功完成了操作,但是操作不正确(删了表,或输入错误数据)。
◆实例错误:实例意外关闭,看error日志。
◆介质故障∶丢失了一个或多个数据库文件(OS、文件系统、硬盘、存储、主机)。
按照备份后产生的副本文件是否可以编辑,可分为逻辑备份、物理备份。
物理备份产生的数据副本都是二进制文件,常常不可编辑,例如数据库的二进制日志。
备份特点︰
1)由数据库文件和目录组成,是mysal数据目录的全部或者部分
2)一般备份比逻辑备份快,因为纯属是文件复制,不用像逻辑备份那样,需要做sql的转换﹔
3)备份的粒度比逻辑备份小,因为是全文件复制了,当然比sql要精确一些;
4)物理备份的文件可以不仅是数据库,还可以是数据库的日志,配置文件;
逻辑备份就是把数据库的结构定义语句,数据内容的插入语句,全部存储下来。然后恢复的时候,在另一个mysql服务器执行这些语句,就可以创建另一个与之前一样的数据库了。备份后,数据库管理员通常可以直接查看和编辑副本文件中的内容。
适用:这种比较适合数据量少的数据库。备份方法∶
如,使用mysqldump等程序可以把对远程/本地数据库进行逻辑备份
2.SELECT....INTO OUTFILE可以把数据进行逻辑备份,但备份文件只能存储在mysql-server的机器上;
1)逻辑备份通过查询数据库的信息进行备份﹔
2)速度比较慢。因为获取了信息,然后组装成sql语句,如果调用命令是远程,还要把sql语句远程传输;
3)备份文件要比物理备份小;4)备份粒度只能到表;
5)没有日志或者配置文件;
6)备份文件是sql语句,逻辑语句,相对来说,可移植性要好。比如我在linux备份了,可以在windows进行恢复,物理备份就不行;
完全备份是一个完整的数据备份,仅仅依靠该副本文件就可以将数据库恢复到某个正确的状态。如果不借助热备份工具,完全备份可能需要停止MySQL服务
此时MySQL将无法提供服务,在真实的业务场景中,很少真正使用完全备份
恢复︰全备即可
增量备份是指在完全备份的基础上,对更新的数据进行备份,恢复时需要借助完全备份产生的副本文件。目前,MySQL还没有提供真正的增量备份工具非常菜。
简单直接∶仅备份自上一次完全备份或增量备份以来变化的哪些数据;
恢复︰恢复周五:全备+周一+周二+周三+周四+周五
仅备份自上—次完全备份以来变量的那部数据。恢复︰如果至周五,全备+周五的日志。
1.数据文件
2.日志文件(比如事务日志,二进制日志)
3.存储过程,存储函数,触发器
4.配置文件(十分重要,各个配置文件都要备份)
5.用于实现数据库备份的脚本。
mysql服务自带的备份工具,是一种逻辑备份工具,它支持一下方式备份︰完全、部分备份;
InnoDB:热备﹔
MyISAM:温备;
mysqldump的一个衍生,速度在mysqldump和mysqlpump两者之间。
lvm2:快照(请求一个全局锁),之后立即释放锁,达到几乎热备的效果;物理备份;
注意:不能仅备份数据文件;要同时备份事务日志;
前提∶要求数据文件和事务日志位于同一个逻辑卷;
由Percona提供,开源工具,支持对InnoDB做热备,物理备份工具;完全备份、部分备份;完全备份、增量备份;完全备份、差异备份;
MySQL一般情况下有几种策略。
策略一:
直接拷贝数据库文件(文件系统备份工具cp )(适合小型数据库,是最可靠的)
策略二∶
Mysqldump或者mysqlpump备份数据库(完全备份+增加备份,速度相对较慢,适合中小型数据库)(MyISAM是温备份,InnoDB是热备份)
策略三∶
Xtrabackup&&lvs快照从物理角度实现几乎热备的完全备份,配合二进制日志备份实现增量备份,速度快适合比较烦忙的数据库
1系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏得备份文件情况下得恢复,或者数据有丢失,binlog丢失恢复。
2误delete数据恢复、误删除表恢复(drop ) . truncate表恢复等.以及myd/frm文件,ibd ibdata1文件变成0字节。
3各种MySql错误的修复:如mysql无法启动,事务死锁,ibdata1文件无法启动等等
4MySql数据库中数据文件ibdata1和ibd出现坏块情况下的恢复。
5 MySql数据文件被误删除情况下的恢复.被覆盖的情况或者被老备份还原的恢复。
6、磁盘阵列上崩溃导致的mysql数据库无法恢复或者严重损坏的修复。
7、ibdata1文件丢失或被覆盖,ibd表文件丢失以及被覆盖的情况。
转载地址:http://jabai.baihongyu.com/