设为首页 收藏本站
查看: 831|回复: 0

[经验分享] redis的备份和恢复

[复制链接]
累计签到:67 天
连续签到:1 天
发表于 2018-10-24 13:16:23 | 显示全部楼层 |阅读模式
REDIS 恢复

当redis宕机后,导致当前数据丢失。需要拿最新备份数据恢复到redis,如果rdb和aof都打开的情况下,要注意一下几点。
1、拷贝dump.rdb文件到redis 数据文件夹下
2、启动redis,此时如果redis同时开启了aof生成策略,redis会先加载aof,如果没有则生成一个aof
3、此时如果get key获取rdb中的备份数据会发现并没有获取到,这是由于redis启动时,基于新的内存重新生成了一个新的rdb文件,覆盖了备份的rdb文件
4、遇到这种情况应该先把aof生成策略先关闭,即把redis.conf文件中的appendonly 改为 no,然后重启redis
5、此时发现可以获取备份中的数据了,确认数据恢复后,这个时候要打开aof必须动态的打开,方法是进入客户端后,输入命令config set appendonly yes
6、确认设置是否成功,config get appendonly,返回yes ,说明已经设置成功,在此确认数据是否恢复,如果已经恢复,再次停止redis
7、然后修改配置文件,把redis.conf文件中的appendonly 改为yes,然后重启redis.
8、启动后,再次确认数据是否已经恢复,发现已经恢复。

具体操作:

[root@localhost ~]# cd /usr/local/redis-3.2.9/

[root@localhost redis-3.2.9]# redis-cli
127.0.0.1:6379> AUTH redis
OK
127.0.0.1:6379> keys *
(empty list or set)
127.0.0.1:6379> config get dir
1) "dir"
2) "/root"
127.0.0.1:6379> save        保存数据



[root@localhost redis-3.2.9]# redis-cli -a redis shutdown

[root@localhost redis-3.2.9]# vim redis.conf

把   appendonly yes  改为 appendonly no

之后把要备份的数据拷贝到redis的安装目录中,重启服务。

[root@localhost redis-3.2.9]# redis-server redis.conf
[root@localhost redis-3.2.9]# redis-cli
127.0.0.1:6379> keys *
(error) NOAUTH Authentication required.
127.0.0.1:6379> AUTH redis
OK
127.0.0.1:6379> keys *
  1) "TextBook_reportId_:5269"
  2) "TextBook_reportId_:5264"
  3) "TextBook_reportId_:5256"
可以获取到数据之后

这个时候要打开aof必须动态的打开,方法是进入客户端后,输入命令config set appendonly yes

127.0.0.1:6379> config set appendonly yes
OK
127.0.0.1:6379> config get appendonly
1) "appendonly"
2) "yes"
127.0.0.1:6379> quit

[root@localhost redis-3.2.9]# redis-cli -a redis shutdown

[root@localhost redis-3.2.9]# vim redis.conf

把   appendonly no  改为 appendonly yes

[root@localhost redis-3.2.9]# redis-server redis.conf    重启服务

[root@localhost redis-3.2.9]# redis-cli
127.0.0.1:6379> AUTH redis
OK
127.0.0.1:6379> keys *
  1) "TextBook_reportId_:5229"
  2) "TextBook_reportId_:5238"
  3) "TextBook_Msg_5:"



redis-dump的安装和是使用

[root@localhost ~]# curl -L get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24090  100 24090    0     0   7503      0  0:00:03  0:00:03 --:--:--  148k
Downloading https://github.com/rvm/rvm/archive/1.29.3.tar.gz
Downloading https://github.com/rvm/rvm/relea ... 3/1.29.3.tar.gz.asc

[root@localhost ~]# curl -sSL https://rvm.io/mpapis.asc | gpg2 --import -
gpg: keyring `/root/.gnupg/secring.gpg' created
gpg: /root/.gnupg/trustdb.gpg: trustdb created
gpg: key D39DC0E3: public key "Michal Papis (RVM signing) <mpapis@gmail.com>" imported
gpg: Total number processed: 1
gpg:               imported: 1  (RSA: 1)
gpg: no ultimately trusted keys found

[root@localhost ~]# curl -L get.rvm.io | bash -s stable
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 24090  100 24090    0     0   3326      0  0:00:07  0:00:07 --:--:--  171k
Downloading https://github.com/rvm/rvm/archive/1.29.3.tar.gz
Downloading https://github.com/rvm/rvm/relea ... 3/1.29.3.tar.gz.asc
gpg: Signature made Mon 11 Sep 2017 04:59:21 AM CST using RSA key ID BF04FF17
gpg: Good signature from "Michal Papis (RVM signing) <mpapis@gmail.com>"
gpg:                 aka "Michal Papis <michal.papis@toptal.com>"

[root@localhost ~]# find / -name rvm.sh
/etc/profile.d/rvm.sh

[root@localhost ~]# source /etc/profile.d/rvm.sh

[root@localhost ~]# rvm requirements

Checking requirements for centos.
Installing requirements for centos.
Installing required packages: patch, bison, libffi-devel, patch, readline-devel, sqlite-devel, libyaml-devel..........
Requirements installation successful.

[root@localhost ~]# rvm install ruby 2.3.1

Searching for binary rubies, this might take some time.
Found remote file https://rvm_io.global.ssl.fastly ... /ruby-2.3.1.tar.bz2
Checking requirements for centos.
Requirements installation successful.
ruby-2.3.1 - #configure
ruby-2.3.1 - #download
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 22.5M  100 22.5M    0     0   794k      0  0:00:29  0:00:29 --:--:--  774k
ruby-2.3.1 - #validate archive
ruby-2.3.1 - #extract
ruby-2.3.1 - #validate binary
ruby-2.3.1 - #setup
ruby-2.3.1 - #gemset created /usr/local/rvm/gems/ruby-2.3.1@global
ruby-2.3.1 - #importing gemset /usr/local/rvm/gemsets/global.gems...................................
ruby-2.3.1 - #generating global wrappers........
ruby-2.3.1 - #gemset created /usr/local/rvm/gems/ruby-2.3.1
ruby-2.3.1 - #importing gemsetfile /usr/local/rvm/gemsets/default.gems evaluated to empty gem list
ruby-2.3.1 - #generating default wrappers........
[root@localhost ~]# ruby -v

ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-linux]

[root@localhost ~]# rvm list

rvm rubies

=* ruby-2.3.1 [ x86_64 ]

# => - current
# =* - current && default
#  * - default

[root@localhost ~]# rvm --default use 2.3.1

Using /usr/local/rvm/gems/ruby-2.3.1

[root@localhost ~]# gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org

https://gems.ruby-china.org/ added to sources
source https://rubygems.org not present in cache

[root@localhost ~]# gem sources

*** CURRENT SOURCES ***

https://rubygems.org/
https://gems.ruby-china.org/

[root@localhost ~]# gem install redis

Fetching: redis-4.0.1.gem (100%)
Successfully installed redis-4.0.1
Parsing documentation for redis-4.0.1
Installing ri documentation for redis-4.0.1
Done installing documentation for redis after 1 seconds
1 gem installed
[root@localhost ~]# gem install redis-dump

Fetching: yajl-ruby-1.3.1.gem (100%)
Building native extensions.  This could take a while...
Successfully installed yajl-ruby-1.3.1
Fetching: uri-redis-0.4.2.gem (100%)
Successfully installed uri-redis-0.4.2
Fetching: drydock-0.6.9.gem (100%)
Successfully installed drydock-0.6.9
Fetching: redis-dump-0.4.0.gem (100%)
Successfully installed redis-dump-0.4.0
Parsing documentation for drydock-0.6.9
Installing ri documentation for drydock-0.6.9
Parsing documentation for redis-dump-0.4.0
Installing ri documentation for redis-dump-0.4.0
Parsing documentation for uri-redis-0.4.2
Installing ri documentation for uri-redis-0.4.2
Parsing documentation for yajl-ruby-1.3.1
Installing ri documentation for yajl-ruby-1.3.1
Done installing documentation for drydock, redis-dump, uri-redis, yajl-ruby after 0 seconds
4 gems installed



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-625971-1-1.html 上篇帖子: 关于内部redis集群外放给公网上服务器使用 下篇帖子: redis的迁移工具redis-port
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表