国产分布式数据库选型中,各个产品的备份方式都有哪些?哪些备份软件与国产常用的数据库备份兼容性较好?逻辑备份方面基本上都使用导入导出的备份方式,利用sql文本的方式导出备份,但是在大表导出备份时,对比Oracle数据库的expdp备份性能较为低下,大家是否有更好的办法?
分布式数据库和传统数据库一样,在导入导出的时候都是逻辑方式慢,物理方式快。
逻辑:速度堪忧,不过有可能的话基于分片来并发导入导出,提高效率。
物理:这个主要需要产品支持,导出容易,恢复比较麻烦,场景受限。
国产备份软件还在一个个公关验证中,建议用户多提需求,催熟产品。
分布式数据库在备份和导入导出上相对传统单机数据库会更有优势一些,因为其可以利用多台机器的并行处理能力。当然,如果从备份、导入导出效率来看,无论是tdsql、goldendb、都没有优势,oceanbase的效率是最高的,因为默认都开启压缩的,号称压缩比5:1 ~ 10:1之间,关键不影响业务; 按照5:1的压缩比计算,备份恢复效率是其他数据库的5倍,这管理体验用着飞起。
同样是LSM架构的tidb,不知道为啥做不到呢?
目前国产分布式数据库的备份还好,就是导出导入相对薄弱。
一方面这些数据库将表数据导出到可读文件或csv相关文件,不是类似db2 ixf特定格式的或二进制文件,速度相对缓慢;另一方面是导出工具基于java或其他开源组件进行研发,性能相对薄弱。
慢才有压力,才有动力,希望国产数据库越来越成熟。
绝大部分数据库的备份方式都分为物理备份和逻辑备份。物理备份分为全量备份和增量备份,逻辑备份分为可以备份为文本文件和备份到二进制文件。物理备份主要用于全库恢复,可以恢复到任意时间点,速度快的优势,一般用于灾难级别恢复;逻辑备份只是备份某个表或者某些表某一时刻的静态数据,恢复简单和单表恢复快特点,一般用于日常变更的回退场景。两者用于不同场景,同等重要。
恢复到sql文本文件和oracle的expdp没有可比性,因为expdp恢复的是二进制文件,只能用于impdp来导入,是oracle的特定格式,所以效率高。如果oracle导出成文本文件同样慢。拿ob来讲的话,他有一个导入导出工具叫obdumper和obloader,他就有几种格式导出,效率还是非常不错的。
至于国产备份工具这块,目前我们用的还是国产数据库自带的,与其他备份软件兼容性可能还需要磨合下才行,主要是两个产品间要兼容。
国产分布式数据库中,备份方式一般有以下几种:
在国产常用的数据库备份软件中,与国产分布式数据库兼容性较好的备份软件包括:
在进行大表导出备份时,可以考虑以下几种方法: