摘要:如果现有集群需要扩容,但环境不允许必须新建一套集群,或者需要一套对等测试集群进行业务验证,或者备用集群做容灾,此时都需要数据库的迁移,本文将探讨GBase数据库的几种迁移方法。
如果现有集群需要扩容,但环境不允许必须新建一套集群,或者需要一套对等测试集群进行业务验证,或者备用集群做容灾,此时都需要数据库的迁移,本文将探讨GBase数据库的几种迁移方法。
背景
本文讨论的是数据全部迁移的情况,对于只有部分表迁移的,不在本文讨论范围。
硬件
新集群一般与老集接近,或者要好一些。
数据量大时,比如几百T,几个P的数据,两套集群之间的网络极有可能成为迁移的瓶颈,要提前注意规避。
业务影响
一次性迁移
希望时间越短越好,性能要高
表有可能有优先级,比如历史表有可能允许拖后迁移,优先迁移的表已经可以支撑业务正常运行。
非一次性迁移
要支持增量同步
要运行很多次,操作难度要很低
迁移方案1-备份还原
GBase 8a支持物理层的备份还原gcrman,可以对整个实例做全量和增量备份
参考
GBase 8a表级全量和增量备份还原功能测试gcrcman.py)
空间要求
此方案会将数据以文件的形式备份到指定目录,所以对磁盘空间有要求。
集群结构要求
还原时,要求集群必须与原始集群完全一样,版本,节点数,主备策略,IP等。
操作要求
简单。
迁移方案2-导出导入
通过select into outfile将数据导出到文件里,然后新集群加载入库。
参考
GBase 8a集群导出数据到文件,支持ftp,sftp,hadoop等
GBase 8a 集群加载sftp 和ftp数据的样例
GBase 8a 集群加载数据LOAD的方法
空间要求
导出文件以平文本文件的形式保存,所以对磁盘空间有要求。
集群结构要求
新集群可以是任意架构,只要空间能保存即可。IP可以不同。
操作要求
复杂。需要人工编写每个表的导出和导入,且要关注空间可用量,已经并发控制。
来源:GBASE南大通用