
# RocksDB到GeminiDB Redis的迁移
RocksDB是FaceBook基于LevelDB开发的一个持久化KV单机数据库引擎，具有强大的顺序读写及随机写性能。相对于LevelDB，RocksDB做了许多优化，性能有了很大提升， 而且解决了LevelDB主动限制写的问题。作为一个数据库引擎，RocksDB没有设计成C/S网络结构，直接使用需要和服务部署在同一台服务器，对于服务的部署、使用有较大的限制。
GeminiDB Redis接口采用RocksDB作为存储引擎，兼容Redis协议具有丰富的数据类型，可以满足RocksDB的使用需求。同时GeminiDB Redis接口对RocksDB进行深度定制，实现秒级分裂弹性扩容，扩缩容无需搬迁数据，快速而平滑，为RocksDB业务转到Redis生态提供了便利。
本章节主要介绍RocksDB到GeminiDB Redis接口的迁移方案。
#### 迁移原理
- 使用自研迁移工具rocksdb-port，和RocksDB部署在相同机器上，准备好配置文件，启动迁移即可自动完成全量与增量的迁移。
- 全量迁移对RocksDB数据进行快照，然后扫描整个数据库，将数据打包成GeminiDB Redis识别的格式，发送到GeminiDB Redis，具有很高的迁移效率。
- 增量迁移解析RocksDB的wal文件，将RocksDB的操作解析出来，然后对其中的key进行分片，多线程进行发送。
 
#### 使用须知
- 迁移工具需要部署在源端，对性能有一定消耗，可通过修改配置文件进行一定的控制。
- 迁移过程读取RocksDB的源数据文件，只读操作，理论上不会有数据受损风险。
- 迁移过程不需要停服。
- 若迁移过程出现故障，需要清理GeminiDB Redis实例，重新启动迁移。
 
#### 操作步骤
如需进行RocksDB到GeminiDB Redis的迁移，您可以在管理控制台右上角，选择"[工单 \> 新建工单](https://console.huaweicloud.com/ticket/#/ticketindex/createIndex)"，联系客服进行处理。
