---
title: 手动打包方式
description: "请根据以下指导进行源成分打包，防止数据、配置、日志文件因在安装包外而丢失。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0081.html
sourcePath: /source/zh/kunpengdevps/portingadvisor/systemmigration/DevKit_Porting_0081.html
indexId: bbc811081cd96c0746dc9c65566e1c21521de5c77df49484e77e4976d7caa22579
---
# 手动打包方式

请根据以下指导进行源成分打包，防止数据、配置、日志文件因在安装包外而丢失。

当前不支持RPM包安装的Redis自动迁移，如需迁移，请手动进行迁移。


#### 需要迁移的文件


**表1 需要迁移的文件**

| 文件类型 | 说明 |
| --- | --- |
| 数据文件 | 包括 AOF 文件和 RDB 文件。 |
| 配置文件 | Redis相关配置文件，如redis.conf、sentinel.conf。 |
| 日志文件 | Redis相关日志文件，即.log文件。 |


#### 操作步骤

1. 查看需要迁移的文件是否在指定目录下。

  - redis-server目录结构为“bin/redis-server”
  - redis-server目录结构为“redis-xxx/src/redis-server”
若表1中的文件均存在于“bin”或“redis-xxx”目录下，则直接执行6；若不是，则需要额外获取“bin”或“redis-xxx”目录外的文件。
2. 在redis-server同级目录下创建一个用于存放迁移所需额外文件的目录，命名为source_related（例如“bin/source_related”）。
  1 2 mkdir source_related cd source_related

3. Redis启动需指定配置文件（默认为redis.conf），如果您的配置文件不在上述目录内，请执行以下命令。
  1 2 mkdir -p ./path/to/ cp /path/to/redis.conf ./path/to

  /path/to：为redis.conf存放目录，请根据实际情况进行替换。

4. 查找数据、日志文件路径。

  a. 打开一个新的终端启动redis-server进入redis-cli控制台，执行以下命令查找数据文件路径（默认名称为dump.rdb和appendonly.aof）。
    1 ./redis-cli -h IP -p port

    IP：表示Redis的IP地址。 redis-cli启动默认<port>为6379。

  b. 如果配置文件设置了requirepass字段，请执行以下命令验证密码。
    1 AUTH password

  c. 查找数据目录地址。

    - 获取dir：
      1 CONFIG GET dir

      返回信息如下： 1 2 1) "dir" 2) "/home/user"

    - 获取appendfilename：
      1 CONFIG GET appendfilename

      返回信息如下：

      1 2 1) "appendfilename" 2) "appendonly.aof"

      若返回信息为空（即empty list or set），请执行CONFIG GET appendonly，如果为yes，请前往3中Redis配置文件中查找appendfilename字段，如默认值appendonly.aof。

    - 获取dbfilename：
      1 CONFIG GET dbfilename

      返回信息如下： 1 2 1) "dbfilename" 2) "dump.rdb"

  d. 查找日志地址。
    1 CONFIG GET logfile

    返回信息如下： 1 2 1) "logfile" 2) "/home/user/redis/redis-4.0.14/redis.log"

  e. 如果文件存在且不在上述目录结构中，回到之前的终端“source_related”目录下执行以下命令。
    1 mkdir -p ./dir_address

  f. 复制数据文件。
    1 2 cp /home/user/appendonly.aof ./dir_address cp /home/user/dump.rdb ./dir_address

    若提示文件或目录不存在，则表示不存在该文件，无需打包。 /home/user：4.c获取的dir地址。 appendonly.aof：4.c获取的appendfilename。 dump.rdb：4.c获取的dbfilename。

  g. 复制日志数据。
    1 2 mkdir -p ./home/user/redis/redis-4.0.14 cp /home/user/redis/redis-4.0.14/redis.log ./home/user/redis/redis-4.0.14

    /home/user/redis/redis-4.0.14/redis.log：为4.d获取的日志文件存放目录，请根据实际情况进行替换。

5. 请在“redis-server”的父目录下创建一个名为devkit_redis_conf_data.json的JSON文件，并将以下内容添加至该文件中，请根据实际情况修改相关信息。如果使用哨兵模式，请确保is_sentinel_mode设置为true。
  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 { "redis": { "redis_conf": "", "redis_conf_in_package": false, "redis_dir": "", "redis_dir_in_package": false, "redis_dbfile": "", "redis_aof": "", "redis_logfile": "", "redis_logfile_in_package": false, "redis_pidfile": "" }, "sentinel": { "sentinel_conf": "", "is_sentinel_mode": false, "sentinel_conf_in_package": false, "sentinel_dir": "" } }

  Redis配置： redis_conf：Redis配置文件的绝对路径。 redis_conf_in_package：Redis配置文件是否包含在Redis安装包中，默认为false。 redis_dir：在4.c获取dir的绝对路径。 redis_dir_in_package：Redis的dir是否在Redis安装包中，默认为false。 redis_dbfile：在4.c获取的dbfilename绝对路径。 redis_aof：在4.c获取的appendfilename绝对路径。 redis_logfile：在4.d获取的logfile绝对路径。 redis_logfile_in_package：Redis的logfile是否包含在Redis安装包中，默认为false。 redis_pidfile：Redis配置文件中的pidfile路径。如果没有修改，可以不填写。 Sentinel配置： sentinel_conf：Redis哨兵配置文件的绝对路径，默认为sentinel.conf。 is_sentinel_mode：是否启用哨兵模式，默认为false。若启用，设置为true。 sentinel_conf_in_package：Redis哨兵配置文件是否在Redis安装包中，默认为false。 sentinel_dir：Redis哨兵配置文件中的dir绝对路径。如果没有修改，可以不填写。

6. 将待扫描的源成分对应安装目录打包为压缩包，以tar.gz格式压缩包为例，压缩包名称请根据实际情况替换。

  a. 在redis-server所在目录的上级目录执行以下命令打包，以redis.tar.gz为例。

    - 对于bin/redis-server目录结构，进入bin上级目录：

```
tar -zcvf
redis.tar.gz
bin/
```


    - 对redis-xxx/src/redis-server目录结构，进入redis-xxx上级目录：

```
tar -zcvf
redis.tar.gz
redis-
xxx
/
```


  b. 可通过以下两种方式获取源成分。

    - 若使用“源成分包上传”方式，返回“添加成分信息”页签，单击“源成分包上传”后“上传”按钮，上传打包的源成分包。
    - 若使用“节点服务器获取”方式，请执行如下命令解压源成分压缩包。

      1. 使用SSH远程登录工具，将压缩包上传至“目标节点”的自定义路径。
      2. 进入保存压缩包文件的自定义目录。
        1 cd 自定义路径

      3. 解压源成分压缩包。

```
tar xvf
redis.tar.gz
```


      4. 解压完成，可选择执行如下命令删除源成分压缩包。

```
rm -f
redis.tar.gz
```


      5. 指定解压后的文件路径为“源成分所在路径”。
7. 打包完成后请手动删除创建的source_related目录和devkit_redis_conf_data.json文件。
