Redis数据库备份、迁移、恢复实践
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Redis数据库备份、迁移、恢复实践相关的知识,希望对你有一定的参考价值。
参考技术A 描述: 当我们需要备份或迁移Redis集群时可以采用以下方案。第三方redis集群数据迁移工具项目参考( https://github.com/alibaba/RedisShake )
描述:在系统删除了配置文件后以及用户账号后恢复方法流程,实际环境中建议利用rdb文件进行重新部署。
2.Kubernetes中单实例异常数据迁移恢复实践
方案1.利用其他kubernetes集群进行恢复原k8s集群的redis数据。
命令执行示例:
Tips : 从上述恢复结果可以看出以aof方式恢复的数据比rdb恢复的数据完整,但所加载的时间会随着数据增大会使得AOF方式耗时比rdb耗时更多。
方案2.利用宿主机安装编译redis源码,进行恢复原k8s集群的redis数据
方案3.利用Kubernetes部署的Redis集群,进行恢复原k8s集群的redis数据
Tips : 若id没发生变化,直接重启下该从节点就能解决。
Redis数据的导出和导入:dump和load方式
https://www.jianshu.com/p/03da3b9774d8
redis 数据迁移
1. rdb数据备份恢复方法
redis 127.0.0.1:6379> SAVE
或
redis-cli -h 127.0.0.1 -p 6379 -a pwd bgsave
该命令将在 redis 安装目录中创建dump.rdb文件。
查找dump.rdb文件位置
redis 127.0.0.1:6379> CONFIG GET dir
- “dir”
- “/usr/local/redis/bin”
以上命令输出的 redis 安装目录为 /usr/local/redis/bin。
创建 redis 备份文件也可用命令 BGSAVE,该命令在后台执行。
127.0.0.1:6379> BGSAVE
Background saving started
2. AOF数据备份恢复方法
在配置文件中打开[appendonly yes]。AOF刷新日志到disk的规则:
- appendfsync always # 每次有写操作都进行同步,非常慢,非常安全。
- appendfsync everysec # 对写操作进行累积,每秒同步一次
官方的建议的everysec,安全,就是速度不够快,如果是机器出现问题可能会丢失1秒的数据。
也可手动执行bgrewriteaof进行AOF备份:
redis-cli -h 127.0.0.1 -p 6379 -a pwd bgrewriteaof
迁移数据恢复
迁移到另外一台恢复数据,需先检查配置文件,将按照以下优先级恢复数据到内存:
- 如果只配置AOF,重启时加载AOF文件恢复数据;
- 如果同时 配置RBD和AOF,启动是只加载AOF文件恢复数据;
- 如果只配置RBD,启动是加载dump文件恢复数据;
dump.rdb或AOF文件迁移到另外一台恢复数据
恢复数据,只需将备份文件 (dump.rdb或者AOF文件) 移动到 redis 安装目录并启动服务即可。
3. 挂redis从库复制数据方法
Redis提供复制(replication)功能可以自动实现同步的过程。配置方法:
- 配置文件:slave的配置文件中加入slaveof ip port,主数据库无需配置.
- 命令行参数: 启动redis-server时,用命令行参数 slaveof ip port
redis-server –port 6380 –slaveof 127.0.0.1 6379
通过命令SLAVEOF master-ip master-port
redis>SLAVEOF 127.0.0.1 6379
SLAVEOF NO ONE可以是当前数据库停止接收其他数据库的同步,转成主Redis数据库,程序连接地址都改为新的redis库IP地址和端口。
建议:采用第三个方法迁移数据。
以上是关于Redis数据库备份、迁移、恢复实践的主要内容,如果未能解决你的问题,请参考以下文章