ardb在线迁移数据到pika

由于业务需要,之前公司使用的ardb的数据需要迁移到pika上

系统:centOS 6.6

版本:pika2.3   ardb0.9    

迁移工具:redis-migrate-tool

一、安装pika2.3

pika 目前已经开源,github 上有相应的资料介绍:

安装使用请参考:https://github.com/Qihoo360/pika/wiki/%E5%AE%89%E8%A3%85%E4%BD%BF%E7%94%A8

pika 的使用跟redis差不多,学习成本低

二、安装ardb0.9

wget https://github.com/yinqiwen/ardb/archive/0.9.zip  
unzip 0.9.zip  
cd ardb-0.9  
make

 备注:1、在make的时候,会自动下载jemalloc-5.0.1.tar.bz2 、 snappy-1.1.4.tar.gz、rocksdb-5.8.8.tar.gz(ardb0.9默认的存储引擎)等包

    2、如果服务器没有联网,可以根据报错把包手动下载下来,放到 ardb-0.9/deps/目录下,再make

    3、在make的过程中可能还会报错:error: unrecognized command line option "-std=c++11" ,请升级 g++ gcc 版本 ,google上一大堆解决方案,我的解决办法参照了github上pika安装使用里面的内容:

     wget -O /etc/yum.repos.d/slc6-devtoolset.repo http://linuxsoft.cern.ch/cern/devtoolset/slc6-devtoolset.repo
     sudo yum install --nogpgcheck devtoolset-2
     scl enable devtoolset-2 bash

    4、在make的过程中可能还会报错:

                 ardb在线迁移数据到pika

      cd /usr/local/ardb-0.9/deps/jemalloc-5.0.1/ 到目录看,竟然没有lib ? oh my god ! 啥玩意。。。

                直接把jemalloc-5.0.1的删掉,手动在 /usr/local/ardb-0.9/deps/下解压安装jemalloc-5.0.5 

    tar jxf jemalloc-5.0.1.tar.bz2  
    cd jemalloc-5.0.1  
    ./configure  
    make && make install

    一查看竟然有lib了,什么情况。。。再次make ,安装成功!

    5、ardb0.9的配置与使用 :

    配置文件:/usr/local/ardb-master/ardb.conf 里面介绍的非常详细,可根据需要调整,默认端口16379

    启动: /usr/local/ardb-0.9/src/ardb-server /usr/local/ardb-0.9/ardb.conf

     可以使用redis的客户端工具连接: redis-cli  -h 127.0.0.1 -p 16379 

    6、ardb的介绍,使用直接在github上看: https://github.com/yinqiwen/ardb  大部分的命令与redis差不多,学习成本低

三、安装redis-migrate-tool

      rmt介绍、安装、使用直接上github上看:https://github.com/vipshop/redis-migrate-tool  

  迁移工具的来源可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件,aof文件。

  迁移工具的目标可以是:单独的redis实例,twemproxy集群,redis cluster,rdb文件。

四、ardb在线迁移到pika

  修改rmt配置文件 vim rmt.conf

[source]
type: redis cluster  #如果不行可换成single
servers : 
-127.0.0.1:16379     # ardb0.9

[target]
type:single
servers:
-127.0.0.1:6381    # pika2.3
[common]
listen: 127.0.0.1:8888

  启动rmt: src/redis-migrate-tool -c rmt.conf -o log -d

  状态查看:通过redis-cli连接redis-migrate-tool监控的端口,运行info命令

$redis-cli -h 127.0.0.1 -p 8888
127.0.0.1:8888> info 

  数据校验(默认1000)

$src/redis-migrate-tool -c rmt.conf -o log -C redis_check

五、总结

  遇到的大坑:公司有个ardb0.8.3版本的,数据死活迁移不到redis、pika  ,

  作为小白的我,用尽了我所想的办法 rdb文件、主从复制、rmt、redis-dump、crs-port 均已失败告终(Error: Bad protocol from MASTER ,貌似通信协议不兼容?)

  最后还抱有点希望:拷贝ardb0.8.3的数据目录到ardb0.9 ,无法启动!!!  (虽然查看了资料,但是还抱有点幻想:ardb0.9版本重新设计了整个项目,与之前的版本不兼容。)

  ERROR Failed to open db:/data/ardb-0.9/data/rocksdb by reason:Invalid argument: ardb.comparator: does not match existing comparator ARDBRocksDB  #无法打开rocksb,与当前ardbrocksdb不匹配
  ERROR Failed to init database engine:rocksdb.   # 初始化rocksdb数据库引擎失败

  幸好这个库的数据比较少,也不怎么重要,算了不要了!!!

  感悟:冷门的东东少用为妙,到时候哭都哭不出来。。。

  

  补充:

    ardb0.9版本之后可以与redis搭建主从,这点还是蛮方便的。

 

原文链接: https://www.cnblogs.com/Mr-he-learner/p/8194375.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    ardb在线迁移数据到pika

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/267144

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午6:21
下一篇 2023年2月14日 下午6:21

相关推荐