备份
热备lvm和xtrabackup:lvm支持分区,只要能否分区的数据库都支持这种方式进行热备;缺点就是备份期间需要锁表。xtrabackup是一种比较好的方式,支持在线增删改查和事务,也不会锁表。
冷备:mysqldump,必须在服务停止后进行备份。
什么是冷备份
- 定义
冷备份发生在数据库已经正常关闭的情况下,当正常关闭时会提供给我们一个完整的数据库。冷备份是将关键性文件拷贝到另外的位置的一种说法。对于备份Oracle信息而言,冷备份是最快和最安全的方法。 - 优点
1、 是非常快速的备份方法(只需拷文件)
2、 容易归档(简单拷贝即可)
3、 容易恢复到某个时间点上(只需将文件再拷贝回去)
4、 能与归档方法相结合,做数据库“最佳状态”的恢复。
5、 低度维护,高度安全。 - 缺点
1、 单独使用时,只能提供到“某一时间点上”的恢复。
2、 在实施备份的全过程中,数据库必须要作备份而不能作其他工作。也就是说,在冷备份过程中,数据库必须是关闭状态。
3、 若磁盘空间有限,只能拷贝到磁带等其他外部存储设备上,速度会很慢。
4、 不能按表或按用户恢复。
如果可能的话(主要看效率),应将信息备份到磁盘上,然后启动数据库(使用户可以工作)并将备份的信息拷贝到磁带上(拷贝的同时,数据库也可以工作)。
迁移
双写迁移
双向修改的:如果更新的数据在新表没有数据,则在新表中进行插入,然后修改老表,正常这种方式是没有问题的,但也存在以下几个缺点:
- 复杂度比较高,业务修改成本较大
- 如果出现新表没有更新数据的情况,我们需要获得老表修改的数据并插入到新表。如果获取老表修改的数据是从老表中再次查询获取,这里涉及到一个问题,老表的新增可能是异步写入的,此时就会获取到的是老表未更新的数据,插入到新表的数据也是未更新的数据,这部分数据就是脏数据了。
所有新表插入的数据不应该是从老表中再次获取,而是在业务组装新数据直接插入到新表中
读取老表binlog,写入新表,类似主从复制
优点:业务层不需要修改相关代码,成本较小
缺点:这种方案需要配合dba来实现
网友评论