aof恢復與rdb服務器間遷移——redis
1. aof恢復與rdb服務器間遷移:
1.1. Aof恢復:
如果不小心執行了flushdb或flushall了怎麽辦?
(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 #flushdb、flushall危險命令
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