数据库温备
① 什么是数据库的备份和恢复
数据库备份和恢复要成对出现,但是要在同一个数据库软件里用才有效果。比如:用sql备份的话,你要用SQL的恢复。而不能用ORALCE来恢复。具体操作是选择要备份和恢复的数据库,然后右键,选择备份和恢复就可以了。
② 什么是冷备、热备、温备
热备(在线备份):在数据库运行时直接备份,对数据库操作没有任何影响。
冷备(离线备份):在数据库停止时进行备份。
温备:在数据库运行时加全局读锁备份,保证了备份数据的一致性,但对性能有影响。
热备流程
备份开始时,记录重做日志的日志序号(LSN)。
复制共享表空间和独立表空间的文件。
复制完后,再次记录重做日志的日志序号(LSN)。
通过前面记录的日志序号来复制在备份时产生的重做日志。
冷备优点
备份简单,只需要复制相关文件即可。
恢复简单而且速度快,不需要执行任何 SQL 语句,也不需要重建索引。
复制
数据库复制的原理是异步实时的将二进制日志(binlog) 重做并应用到从数据库。
③ 备份数据库有什么用
对于MySQL数据库,备份与恢复相关的术语包括:备份(backup)、还原(restore)、恢复(recover)、二进制日志(binlog),其中备份按照其特性可以分为:物理备份和逻辑备份;冷备、温备和热备;完全备份和不完全备份等;常用的备份工具包括:操作系统拷贝、mysqlmp等;还原包括物理备份的还原和逻辑备份的还原;下面分别加以介绍和说明。
数据库备份通俗地说是将数据库的某一时刻的数据复制了一份;数据库还原是将备份出的数据替换掉原来数据库中的数据文件,将备份放回到原来数据库文件的目录位置;二进制日志(BINLOG)记录数据库的变更过程,例如创建数据库、建表、修改表等DDL操作、以及数据表的相关DML操作,这些操作会导致数据库产生变化,开启binlog以后导致数据库产生变化的操作会按照时间顺序以“事件”的形式记录到binlog二进制文件中。
参考上图,在凌晨2:00,管理员将已开启二进制日志的数据库的数据做了一个完整的备份,随着时间的推移,仍然有用户对数据库进行相关的写操作(包括:DDL语句、DML语句中的增删改操作、DCL授权语句和TCL事务处理语句等),导致了二进制日志文件写满(默认1G)后自动切换;在上午9:37时,由于硬盘出现故障,数据库用户不能正常访问存放在硬盘中的数据库数据,此时如果数据库备份和二进制日志没有损坏,管理员是可以通过还原备份和恢复二进制日志的方式挽回数据损失的。
挽回数据损失的过程包括:1.更换新硬盘;2.还原备份;3.重做备份到故障时段的二进制日志中的语句等;正常情况不会造成数据的丢失,损失的仅仅是一段时间的停机时间。
上例中,还原数据备份时,数据库中的数据回到了备份时刻的状态,而二进制日志中记录了从备份到故障前一段时间内所有用户对数据库的写操作的语句,只要把这些语句按照时间顺序重新运行一遍,所还原的数据就会变成为故障前那一刻的状态,不会造成数据丢失。因此通常把保存在二进制日志中的语句重新执行的过程叫做恢复。