백업 대상 - 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 |