1. 程式人生 > >aof恢復與rdb服務器間遷移——redis

aof恢復與rdb服務器間遷移——redis

server save 重寫 pty roo ont 配置 only mil

1. aof恢復與rdb服務器間遷移:

1.1. Aof恢復:

如果不小心執行了flushdbflushall了怎麽辦?

1)立馬執行命令:shutdown nosave

關閉服務器,為了防止其他人正在操作服務器觸發重寫aof,如果aof重寫了,徹底沒救了

2)修改aof文件,刪除最後一行的命令:flushdb (或flushall

3)再次啟動服務器,查看數據恢復

操作流程如下:

127.0.0.1:6379> set hello word

OK

127.0.0.1:6379> flushdb #flushdbflushall危險命令

OK

127.0.0.1:6379> get hello

(nil)

127.0.0.1:6379> shutdown nosave #關閉服務端

[root@192 rdb]# vi appendonly6379.aof #修改aof文件

刪除最後一行的:flushdb

127.0.0.1:6379> get hello #查看恢復的數據

"word"

1.2. Rdb遷移:(導入rdb文件)

註:一臺服務器的rdb文件導入到另一臺服務器

1)關閉redis服務:

[root@192 redis]# pkill -9 redis

2)拷貝rdb文件

[root@192 redis]# cp redis.conf redis6383.conf #拷貝配置文件

3)修改redis6383的配置文件,修改內容如下:

#appendonly yes #關閉aof

#port 6379

port 6383

save 900 1 #打開rdb

save 300 10

save 60 10000

#dir ./

dir /var/rdb #

#dbfilename dump.rdb

dbfilename dump6383.rdb

4)啟動redis服務端、客戶端

#啟動redis服務

[root@192 redis]# ./bin/redis-server ./redis6383.conf

#啟動客戶端

[root@192 redis]# ./bin/redis-cli -p 6383

127.0.0.1:6383> keys * #沒有數據

(empty list or set)

5)關閉redis服務

6)產生最新的rdb文件

啟動redis-6379的服務後,客戶端執行命令:bgsave

7)拷貝rdb文件:

[root@192 rdb]# cp dump6379.rdb dump6383.rdb

8)啟動redis服務端、客戶端,查看數據:

[root@192 redis]# ./bin/redis-server ./redis6383.conf

[root@192 redis]# ./bin/redis-cli -p 6383

127.0.0.1:6383> keys *

1) "a"

2) "xx"

aof恢復與rdb服務器間遷移——redis