블로그는 나의 힘!
[ Programing ]/Redis2025. 5. 16. 02:20

백업 대상 - IP : 222.222.222 / Port : 5000 / Host : backup_server
복원 대상 - IP : 333.333.333 / Port : 7000 / Host : target_server
가정한 후 백업과 복원 정의.



##############################################
# 접속
] $ ssh irteamsu@ backup_server

##############################################

# 백업 (Port 5000)
-- 백업 시작
~/redis-0.0.0/src] $ ./redis-cli -h 222.222.222 -p 5000 -c
222.222.222:5000> bgsave     -> Background saving started (백업 시작)
222.222.222:5000> exit

※ 클러스터 묶음 된 포트도 동일하게 백업 반복.


##############################################
# 대상 서버 정지
] $ sudo /etc/init.d/redis_7000 stop

# append-only file 데이터 저장 유무 사용 시
-- AOF 비활성화 : 방법 1
] $ sudo sed -i 's/appendonly yes/appendonly no/gi' /etc/redis/7000.conf
-- AOF 비활성화 : 방법 2
] $ vi /etc/redis/7000.conf
-------------------------------------------------
    appendonly no
-------------------------------------------------

# 기존 파일 보존 복사 (대비용)
] $ sudo mv /var/lib/redis/7000/dump.rdb /var/lib/redis/7000/dump_7000_old.rdb

##############################################
# 백업 복사
-- 방법1 : 적용할 백업 파일 복사 (로컬)
] $ sudo cp /var/lib/redis/5000/dump_5000.rdb  /var/lib/redis/7000/

-- 방법2 : 백업 복사(대상 서버로)
~/backup_server] $ scp /var/lib/redis/5000/dump_5000.rdb  irteamsu@target_server:/home1/irteamsu/

-- 방법3 : 백업 가져오기(서버->서버 복사 불가라면, 백업서버->로컬->대상서버)
~/backup_server] $ exit
~/home1/[계정]] $ scp irteamsu@backup_server:/var/lib/redis/5000/dump_5000.rdb  /home1/[계정]
~/home1/[계정]] $ scp /home1/[계정]/dump_5000.rdb  irteamsu@target_server:home1/irteamsu

※ 클러스터 묶음 된 포트에 dump도 동일하게 반복해 복사.


##############################################
# 백업 복원
~/home1/[계정]] $ ssh irteamsu@target_server
~/target_server] $ sudo cp /[백업폴더]/dump_5000.rdb  /var/lib/redis/7000/
~/target_server] $ sudo mv /var/lib/redis/7000/dump_5000.rdb  /var/lib/redis/7000/dump.rdb

##############################################
# 서버 시작 (포트 7000) : dump_5000.rdb 이용
] $ sudo /etc/init.d/redis_7000 start

# 복구 확인
~/redis-7.4.0/src] $ ./redis-cli -h 333.333.333 -p 7000 -c
333.333.333:7000> dbsize
333.333.333:7000> exit

# append-only file 데이터 저장 유무 사용 시
-- AOF 활성화 : 방법 2
] $ sudo sed -i 's/appendonly no/appendonly yes/gi' /etc/redis/7000.conf
-- AOF 활성화 : 방법 1
] $ vi /etc/redis/7000.conf
-------------------------------------------------
    appendonly yes
-------------------------------------------------



============================================
## AOF 설정 시 백업 이전의 파일로 복귀됨.  덤프 백업이 아닌 appendonly 파일 백업으로 진행. 
(appendonly yes 경우)

##############################################
# 대상 서버 중지.
] $ sudo /etc/init.d/redis_7000 stop

# 기존 파일 보존 복사 (대비용)
] $ cd /var/lib/redis/7000/appendonlydir
/var/lib/redis/7000/appendonlydir] $ sudo cp ./appendonly.aof.1.base.rdb  ./appendonly_back.aof.1.base.rdb
/var/lib/redis/7000/appendonlydir] $ sudo cp ./appendonly.aof.1.incr.aof  ./appendonly_back.aof.1.incr.aof
/var/lib/redis/7000/appendonlydir] $ sudo cp ./appendonly.aof.manifest  ./appendonly_back.aof.manifest

##############################################
# append-only file 데이터 복사
-- 방법1 : 적용할 백업 파일 복사 (로컬)
] $ cd /var/lib/redis/5000/appendonlydir
] $ sudo cp /var/lib/redis/5000/appendonlydir/appendonly_5000.aof.2.base.rdb  /var/lib/redis/7000/
] $ sudo cp /var/lib/redis/5000/appendonlydir/appendonly_5000.aof.2.incr.aof  /var/lib/redis/7000/
] $ sudo cp /var/lib/redis/5000/appendonlydir/appendonly_5000.aof.manifest  /var/lib/redis/7000/

-- 방법2 : 백업 복사(대상 서버로)
~/backup_server] $ scp /var/lib/redis/5000/appendonlydir/appendonly_5000.aof.2.base.rdb 
                                      irteamsu@target_server:/home1/irteamsu/
~/backup_server] $ scp /var/lib/redis/5000/appendonlydir/appendonly_5000.aof.2.incr.aof 
                                      irteamsu@target_server:/home1/irteamsu/
~/backup_server] $ scp /var/lib/redis/5000/appendonlydir/appendonly_5000.aof.manifest 
                                      irteamsu@target_server:/home1/irteamsu/

-- 방법3 : 백업 가져오기(서버->서버 복사 불가라면, 백업서버->로컬->대상서버)
~/backup_server] $ exit
~/home1/[계정]] $ scp irteamsu@backup_server:/var/lib/redis/5000/appendonlydir/appendonly_5000.aof.2.base.rdb 
                                   /home1/[계정]
~/home1/[계정]] $ scp irteamsu@backup_server:/var/lib/redis/5000/appendonlydir/appendonly_5000.aof.2.incr.aof 
                                   /home1/[계정]
~/home1/[계정]] $ scp irteamsu@backup_server:/var/lib/redis/5000/appendonlydir/appendonly_5000.aof.manifest 
                                   /home1/[계정]
~/home1/[계정]] $ scp /home1/[계정]/appendonly_5000.aof.2.base.rdb  irteamsu@target_server:home1/irteamsu
~/home1/[계정]] $ scp /home1/[계정]/appendonly_5000.aof.2.incr.aof  irteamsu@target_server:home1/irteamsu
~/home1/[계정]] $ scp /home1/[계정]/appendonly_5000.aof.manifest  irteamsu@target_server:home1/irteamsu

※ 클러스터 묶음 된 포트에 appendonly 파일도 동일하게 반복해 복사.



##############################################
# 백업 복원
~/home1/[계정]] $ ssh irteamsu@target_server
~/target_server] $ sudo cp /[백업폴더]/appendonly_5000.aof.2.base.rdb  /var/lib/redis/7000/appendonlydir/
~/target_server] $ sudo cp /[백업폴더]/appendonly_5000.aof.2.incr.aof  /var/lib/redis/7000/appendonlydir/
~/target_server] $ sudo cp /[백업폴더]/appendonly_5000.aof.manifest  /var/lib/redis/7000/appendonlydir/
~/target_server] $ sudo mv /var/lib/redis/7000/appendonlydir/appendonly_5000.aof.2.base.rdb 
                                            /var/lib/redis/7000/appendonly.aof.1.base.rdb
~/target_server] $ sudo mv /var/lib/redis/7000/appendonlydir/appendonly_5000.aof.2.incr.aof 
                                            /var/lib/redis/7000/appendonly.aof.1.incr.aof
~/target_server] $ sudo mv /var/lib/redis/7000/appendonly_5000.aof.manifest 
                                            /var/lib/redis/7000/appendonly.aof.manifest

##############################################
# 서버 시작 (포트 7000)
] $ sudo /etc/init.d/redis_7000 start

# 복구 확인
~/redis-0.0.0/src] $ ./redis-cli -h 333.333.333 -p 7000 -c
333.333.333:7000> dbsize
333.333.333:7000> exit




============================================
## 그 외.
# /var/run/redis.pid exists, process is already running or crashed 시작 실행 오류 시. 해당 PID 삭제.
] $ cd /var/run
/var/run] $ sudo rm -f ./redis_[Port].pid

 

'[ Programing ] > Redis' 카테고리의 다른 글

Redis 데이터 영구 저장과 동기화 RDB, AOF  (0) 2025.02.20
Redis 레퍼런스.  (0) 2024.05.21
[Redis] Reference  (0) 2023.03.02
[Linux] Redis Cluster 설정  (0) 2022.10.20
[Linux] Redis wget 설치  (0) 2022.10.20
Posted by Mister_Q