$Id: 161f838a2fd37d2fc35178f48ff39d7933d311de
版权声明
转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。
|
|
|
微信扫描二维码进入 Netkiller 微信订阅号 QQ群:128659835 请注明“读者” |
2017-06-16
在群里看到有网友问,IDC的服务器是否需要开启防火墙,我意识到应该写一篇关于IDC安全的文章。
我们来假设一个场景。
你是否适用 mysqldump 每隔一段时间备份一次数据库,每个备份一个数据文件。
公司决策你是不是因为数据持续增加,有些数据已经不会再查询,会删除旧的历史数据。
有时公司突然说要恢复历史数据,有可能全补回复,有可能部分恢复。
你将怎么做?
我们来假设一个场景。
你是否适用 mysqldump 每隔一段时间备份一次数据库,每个备份一个数据文件。
公司决策你是不是因为数据持续增加,有些数据已经不会再查询,会删除旧的历史数据。
有时公司突然说要恢复历史数据,有可能全补回复,有可能部分恢复。
你将怎么做?
首先看看备份方式,你是不是采用这种方法备份
我使用一串数字表述数据库数据递增情况,数据的增长变化
垂直轴表示备份时间轴
首先看看备份方式,你是不是采用这种方法备份
我使用一串数字表述数据库数据递增情况,数据的增长变化
垂直轴表示备份时间轴
最常见的备份方法,完全备份
下面这种备份方式也比较常见,这种方式很有规律。
更复杂的情况,无规律可循
以此类推,删除原因有多种,如空间不足,改善查询性能...等等
最杂的情况,无规律可循,同时交叉数据可能会有更新
我用'o' 表示与上次备份中有差异的部分。
,最好恢复,第二种。
最好恢复,100% 都能搞定.
恢复起来稍复杂,仍能搞得定.
比较复杂,因为本档案中存在重复记录,费点脑筋
最复杂,看似复杂,其实也不复杂,跟第三种差不多.
这种备份非常简单,菜鸟也搞搞定
文本格式回复
压缩格式恢复
或者先使用gunzip解压,再恢复数据
很多人喜欢用tar打包,我不见这样做,一个文件时无需使用tar打包的,画蛇添足
仅使用gzip压缩,可以方便使用zcat直接操作文件。
这种恢复建议按照顺序进行,因为重叠数据没有变化,所以即可以顺时间轴恢复也可以逆时间轴,条件是表结构需要有主键(PK)
必须是
不能是
这种备份参数如下
这种方式备份,备份文件尺寸会比较大。
正时序恢复案例,
逆时序恢复数据
因为有主键,所以已存在的重复记录不会被重复插入。
这种恢复必须按照顺序进行,即可以顺时间轴恢复也可以逆时间轴,但处理上稍有不同.一旦操作错误数据就会损坏,同时也有很多条件。
顺时序恢复数据, 只需将 insert 替换为 replace 即可
新数据总会覆盖旧数据
但逆向就不同了,逆时序恢复数据与上面第三种相同, 恢复过程中旧数据在 insert 的时候不会覆盖现有的新数据。仅仅将失去的数据恢复到数据库中。
操作要十分谨慎,理解正向与逆向的不同,方能操作。
有时上面所讲的四种恢复方法不能满足你需求,我们模拟一个场景,假如你需要恢复一个时间段的数据,或者ID字段去一个范围等等,上面所举例子均为一刀切。该怎么办呢?
不用担心方法总是有的
INSERT ... SELECT
REPLACE ... SELECT
,最好恢复,第二种。
最好恢复,100% 都能搞定.
恢复起来稍复杂,仍能搞得定.
比较复杂,因为本档案中存在重复记录,费点脑筋
最复杂,看似复杂,其实也不复杂,跟第三种差不多.
这种备份非常简单,菜鸟也搞搞定
或者先使用gunzip解压,再恢复数据
很多人喜欢用tar打包,我不见这样做,一个文件时无需使用tar打包的,画蛇添足
这种恢复建议按照顺序进行,因为重叠数据没有变化,所以即可以顺时间轴恢复也可以逆时间轴,条件是表结构需要有主键(PK)
必须是