Mysql冷备份(RDS冷备到本地)

一直觉得冷备毫无技术含量可言

拿oracle为例,步骤无非就是关库,cp数据文件、控制文件、redolog文件(archivelog文件)到另一个关闭的oracle库就完事了

然而在mysql上执行同样的操作,开启mysql之后确发现了诸如下面的报错:

InnoDB: is in the future! Current system log sequence number 73 815920160.

按照网上的快餐文章说的备份ib_logfile0 ib_logfile1 根本就是然并卵

此后一直通过逻辑备份对数据库进行备份恢复,直到最近研发把一个测试库搞崩,经过一番操作之后终于理解了如何通过cp来恢复Mysql库


这里主要涉及到的知识是mysql库data路径和log路径的变更

CP拷贝主要是2个大文件夹,一个是data,一个是log

1.关闭数据库,将源路径的data和log分别拷贝到目标路径的对应文件夹下

2.修改/etc/my.cnf配置的logfile和datafile路径,将源路径修改为目标(实际)路径

3.将log下面的binlog-index进行编辑,将源路径修改为目标(实际)路径

4.修改/etc/init.d/mysql脚本中datadir的值

需要特别注意的是,拷贝时采用cp -a ,这样可以保证复制数据的属性和原来一致;保险起见完成cp之后,检查一下属主和属组是否都是mysql而不是root


而mysql的冷备就更简单了,对于目标库来说,上面的1,2,4点是不需要变动的,唯一需要修改的就是第3点里面binlog-index的路径而已了


########################################

原理已经在上面了,RDS冷备到线下库仅仅就是一个实验而已

                                                                        待续...

########################################

你可能感兴趣的:(Mysql冷备份(RDS冷备到本地))