mysql 备份类型
如果数据库已经安装在raid01 或者raid10上面,那我们的数据库是否还需要备份
答:需要的,因为我们的raid只是为了保证硬件损坏而不会中断业务。但是软件上的故障或者人为删除数据库。raid是无法对数据进行还原的。因为你删除了的时候,假如是在raid上面,也会删除掉两份数据。因此数据库备份和raid 是两个不同层次的概念。
mysql备份如何进行,以及应该备份哪些数据?
备份类型:
我们的数据库非常繁忙,每一秒都有读写操作。假如你执行一个拷贝命令,那你只能拷贝出来当时那个时间段的数据,后面再写入的数据就没有办法备份了,因此这样拷贝出来的数据的不完整的损坏的。因此我们只能将数据库服务停止了,再将内存中的数据刷新到硬盘上面再拷贝数据库。但是我们的数据库服务一般是没有办法停止的。
因此备份分为,能否停用数据库服务器,将备份类型分为:
1.热备份:在线备份,数据库无需停止
2.温备份:仅仅可以对数据库进行读操作
3.冷备份:完全停止数据库服务然后进行备份
而备份是将数据库直接备份,还是将数据库里面的数据导出来备份,这种情况的备份又可以分为:
物理备份:直接复制数据库文件
逻辑备份:将数据导出至文本文件中
根据我们备份的是否是包含数据的全部内容,还是部分内容,备份又分为:
完全备份:备份全部数据
差异备份:仅仅备份上次完全备份以来变化的数据(比增量备份消耗更多硬盘空间)
增量备份:仅仅备份上次完全增量备份以后的数据
因此数据库备份策略一般是完全备份+增量备份,或者完全备份+差异备份
备份数据是为了还原,如何知道我们备份的数据能不能还原。
答:需要进行测试,进行还原测试。数据还原需要经常预演,确保需要数据还原时候能够完全,及时的恢复,要有好的备份以及还原策略,以及在紧急情况下还原数据的方案
备份应该备份什么:
备份数据 + 配置文件 + 日志(二进制日志,事务日志)
假如我们进行增量备份周一周二已经备份好了周三还没来得及备份。数据库挂了,我们就需要使用二进制日志进行即时点还原,从二进制日志中还原周三那天数据库挂掉之前的数据
应该进行热备份还是温备份,或者冷备份
一般是进行热备份。但是热备份属于在线备份,备份时候数据库还在读写状态,热备份是比较复杂的,要保证备份的数据是可用的,MySAM存储引擎无法进行热备份只能用快照进行备份,否则进只能温备份,innodb可以热备份。
热备份工具:xtrabackup
mysql提供的逻辑备份工具mysqldump也可以进行热备份。
离线备份就靠谱,提供在线服务的数据库如果需要停下来进行备份,可以借助一些技术手段,比如为我们的数据库提供 从服务器,需要备份时候把从服务器停下来,然后在备份,再启动,启动之后从服务器会自动将主服务器那里将停止服务之前的数据进行同步过来。因此需要借助于mysql主从架构来实现。
应该进行物理备份还是逻辑备份?
物理备份直接复制数据文件,如果这个文件跟我们操作系统的文件系统无关的话,我们的数据文件跨平台性就很强,移植性也好
但是有些存储引擎的数据文件可能会和操作系统的文件系统有关系,因此会导致移植能力不强,但是优势是备份速度很快
逻辑备份是依靠mysql进程将我们的数据从表中读取出来。并另存为文本文件的,因此这个逻辑备份过程需要mysql服务器进程参与的,备份速度慢,逻辑备份由于是直接导出到文件里面保存的所有可能会丢失数据的浮点数精度。优势,可以使用文本编辑器对数据进行处理,可移植能力也强,还可以跨mysql服务器版本
备份策略:
完全 +增量
完全 + 差异
多长时间进行一次备份:
如果数据变化量不是很大,每天变化也不是特别频繁,我们可以一周做一次完全,每天做一次增量或者差异
到底多长时间进行一次备份取决于你数据库数据变化量,以及你所能忍受的还原时长,使用物理还是逻辑备份取决于你的需要