• Redis集群数据迁移:redis-rdb-tools离线安装以及使用


    Redis集群更迁操作
    ①.保存集群每一个节点数据 生成对应的多个dump.rdb文件
    ②.新建集群 将dump.rdb文件数据导入新建的集群中,导入完成后检查数据是否导入成功

    ①保存集群每一个节点数据 生成对应的多个dump.rdb文件


    1.连接集群,确认集群分布在哪些服务器
    redis-cli -h 10.45.128.47 -c -p 7000 cluster nodes|awk -F " " '{print $2}'|awk -F ":" '{print $1}'|uniq

    2.连接集群,确认当前服务器上有哪些节点
    Ex:
    redis-cli -h 10.45.128.47 -c -p 7000 cluster nodes |grep 10.45.128.47|awk -F " " '{print $2}'|sort

    然后依次连接到对应的节点 保存对应节点上的数据 
    【每个节点生成文件后 就立刻拷贝文件 避免第二次的操作覆盖第一次的文件!
    redis-cli -h 10.45.128.47 -c -p 7000
    执行命令:
    SAVE
    保存成功后会显示ok


    文件生成路径可以照以下方式搜索
    =========================================================================
    [root]/usr/local#ps -ef |grep redis
    root      17360  62437  0 18:12 pts/0    00:00:00 grep --color redis
    root     188797      1  0 12:34 ?        00:00:22 redis-server 10.45.128.47:7000 [cluster]
    root     188799      1  0 12:34 ?        00:00:13 redis-server 10.45.128.47:7001 [cluster]
    root     188803      1  0 12:34 ?        00:00:13 redis-server 10.45.128.47:7002 [cluster]
    root     188807      1  0 12:34 ?        00:00:16 redis-server 10.45.128.47:7003 [cluster]
    root     188811      1  0 12:34 ?        00:00:12 redis-server 10.45.128.47:7004 [cluster]
    root     188817      1  0 12:34 ?        00:00:12 redis-server 10.45.128.47:7005 [cluster]
    [root]/usr/local#pwdx 188797
    188797: /usr/local/redis-cluster/7000
    =========================================================================
     那么对应 [7000] 节点的[dump.rdb]文件就在 /usr/local/redis-cluster/7000下 

     到对应的目录下找到最新生成的dump.rdb文件,确认生成时间和操作时间一致
    Ex:
    -rw-r--r--. 1 root root 10738440 Oct 17 18:11 dump.rdb


    确认服务器内存资源够的情况下
    新建临时目录,目录下新建新节点目录名称

        原始集群用的8000-8005  那新建7000-7005的对应目录
    并将各个节点对应的dump.rdb文件拷贝到对应的节点目录

    #对应的目录自己看资源选择,以下命令只是示例
    mkdir -p /mnt/temp/7000
    cp /usr/local/redis-cluster/8000/dump.rdb /mnt/temp/7000

    =======================================================
    [root@localhost]/mnt/temp#ll 7000
    total 10488
    -rw-r--r--. 1 root root 10738440 Oct 17 18:19 dump.rdb
    [root@localhost]/mnt/temp#
    =======================================================

    ②.新建集群 将dump.rdb文件数据导入新建的集群中

    新建集群操作和之前一致,不重复使用之前节点值即可
    1.源码安装对应的安装包 这里我使用的redis-rdb-tools [离线源码安装]

    自行下载安装包,永久有效分享~

    链接:https://pan.baidu.com/s/1enOydXu0yug2hXwuJF9JeQ?pwd=1024 
    提取码:1024 

    ===========================================================
    =                                                Centos 系统                                                    =
    ===========================================================
    tar -xvf Python-3.4.4.tgz
    cd Python-3.4.4/
    chmod 777 *
    mkdir -p /usr/local/python3.4
    ./configure --prefix=/usr/local/python3.4/
    make && make install
    ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3.4
    ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3
    cd ..

    tar -xvf redis-py-2.10.6.tar.gz
    cd redis-py-2.10.6/
    chmod 777 *
    python3 setup.py install
    cd ..

    tar -xvf redis-py-cluster-1.3.6.tar.gz
    cd redis-py-cluster-1.3.6/
    chmod 777 *
    python3 setup.py install
    cd ..

    tar -xvf py-redis-1.1.1.tar.gz
    cd py-redis-1.1.1/
    python3 setup.py install
    cd ..

    unzip redis-rdb-tools-master.zip
    cd redis-rdb-tools-master/
    chmod 777 *
    python3 setup.py install
    cd ../

    tar -xvf python-lzf-0.2.4.tar.gz
    cd python-lzf-0.2.4/
    chmod 777 *
    python3 setup.py install
    cd ..

    ===========================================================
    =                                                     SUSE 系统 SP12                                       =
    ===========================================================
    tar -xvf Python-3.4.4.tgz
    cd Python-3.4.4/
    chmod 777 *
    mkdir /usr/local/python3.4
    ./configure --prefix=/usr/local/python3.4/
    make && make install
    cd /usr/bin/
    rm ./python
    ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3.4
    ln -s /usr/local/python3.4/bin/python3.4 /usr/bin/python3
    cd ../

    tar -xvf setuptools-29.0.1.tar.gz
    cd setuptools-29.0.1/
    chmod 777 *
    python3 setup.py build
    python3 setup.py install
    cd ..

    tar -xvf redis-py-2.10.6.tar.gz
    cd redis-py-2.10.6/
    chmod 777 *
    python3 setup.py install
    cd ..

    tar -xvf redis-py-cluster-1.3.6.tar.gz
    cd redis-py-cluster-1.3.6/
    chmod 777 *
    python3 setup.py install
    cd ..

    tar -xvf py-redis-1.1.1.tar.gz
    cd py-redis-1.1.1/
    python3 setup.py install
    cd ..

    unzip redis-rdb-tools-master.zip
    cd redis-rdb-tools-master/
    chmod 777 *
    python3 setup.py install
    cd ../

    tar -xvf python-lzf-0.2.4.tar.gz
    cd python-lzf-0.2.4/
    chmod 777 *
    python3 setup.py install
    cd ..


    2.导入数据到新的集群
    执行【find / -name rdb】命令查找到rdb文件所在
    然后执行命令,将[dump.rdb]文件转成 json格式
    /usr/local/bin/rdb --command json dump.rdb > dump.json
    其他路径的情况:
    /usr/local/python3.4/bin/rdb --command json dump.rdb > dump.json

    上传配置文件[node.ini]
    上传脚本[trans.py]
    将两个文件拷贝到所的新建的节点目录下
    vi修改node.ini 对应好当前服务器的reids用的IP 和对应的Port
    Ex:
    IP:10.45.128.47
    Port:7000

    最后执行脚本将数据导入新的集群
    python3 trans.py

    3.导入完成后检查数据是否导入成功
    连接新的集群,对应的将一个节点上的数据save保存下来
    将对应的dump.rdb文件 转换成 dump.json文件
    cat dump.json |wc -l
    检查这个节点的数据量是否和你之前生成的json文件的数据量一致 如果一致就没有问题

     

  • 相关阅读:
    Java剑指Offer根据前序中序重建二叉树
    【qsort学习及改造冒泡排序能排序任何数】
    conda清华源安装cuda12.1的pytorch
    看期权哪个软件更好用?数据比较全面直观的那种?
    spark导入elasticsearch
    Zookeeper(window)安装
    使用Python进行Base64编码和解码
    【数理方程】定解问题
    3年软件测试经验面试要求月薪22K,明显感觉他背了很多面试题...
    【驱动开发】创建设备节点、ioctl函数的使用
  • 原文地址:https://blog.csdn.net/qq_38313246/article/details/127442932