GN-TA / study

공부한 내용들을 기록하는 저장소입니다.
MIT License
0 stars 0 forks source link

Influxdb 백업 #19

Open caboooom opened 1 month ago

caboooom commented 1 month ago
  1. influxdb 컨테이너 접속
docker exec -it influxdb bash
  1. 백업 명령어 실행
@influxdb:/$ influxd backup -portable ~/influxdb-backup-test
  1. influxdb 컨테이너 내부에 지정한 폴더에 백업 파일들 생성된 것 확인 가능
@influxdb:/$ ls /var/lib/influxdb/influxdb-backup-test/
20250414T082523Z.manifest    20250414T082523Z.s13.tar.gz  20250414T082523Z.s18.tar.gz  20250414T082523Z.s23.tar.gz  20250414T082523Z.s28.tar.gz  20250414T082523Z.s33.tar.gz  20250414T082523Z.s38.tar.gz
20250414T082523Z.meta        20250414T082523Z.s14.tar.gz  20250414T082523Z.s19.tar.gz  20250414T082523Z.s24.tar.gz  20250414T082523Z.s29.tar.gz  20250414T082523Z.s34.tar.gz  20250414T082523Z.s39.tar.gz
20250414T082523Z.s10.tar.gz  20250414T082523Z.s15.tar.gz  20250414T082523Z.s20.tar.gz  20250414T082523Z.s25.tar.gz  20250414T082523Z.s30.tar.gz  20250414T082523Z.s35.tar.gz  20250414T082523Z.s40.tar.gz
20250414T082523Z.s11.tar.gz  20250414T082523Z.s16.tar.gz  20250414T082523Z.s21.tar.gz  20250414T082523Z.s26.tar.gz  20250414T082523Z.s31.tar.gz  20250414T082523Z.s36.tar.gz  20250414T082523Z.s8.tar.gz
20250414T082523Z.s12.tar.gz  20250414T082523Z.s17.tar.gz  20250414T082523Z.s22.tar.gz  20250414T082523Z.s27.tar.gz  20250414T082523Z.s32.tar.gz  20250414T082523Z.s37.tar.gz  20250414T082523Z.s9.tar.gz
  1. influxdb 컨테이너 빠져나와서 복사된 백업 파일 sudo권한 주기
    sudo chown -R academy:academy ~/influxdb-backup-test

  1. 이 백업 폴더를 복사해서, 새로운 서버에서 복원.

5-1. 원래는 리눅스 환경에서는 백업 폴더를 마운트하고 컨테이너를 중지시킨 상태에서 influxd restore -portable /backup 명령어를 사용하면 복원된다고 함

$ docker volume create influxdb-data

$ docker run -d --name influxdb \
  -v influxdb-data:/var/lib/influxdb \
  -p 8086:8086 \
  influxdb:1.8

데이터 복원은 컨테이너가 중지된 상태에서 해야함
$ docker stop influxdb

백업
$ docker run --rm -it \
  -v ~/influxdb-backup-test:/backup \
  -v influxdb-data:/var/lib/influxdb \
  influxdb:1.8 \
  influxd restore -portable /backup
~/influxdb-backup-test: 

컨테이너 재시작
$ docker start influxdb

5-2. 그러나 macOS에서 influxd restore 명령어가 잘 동작하지 않아서

마운트로 백업파일을 연결한 뒤 컨테이너를 실행시키고 백그라운드로 influxd를 실행한 뒤

Image

그곳에서 influxd restore 명령어를 실행시켜 백업하는 방식으로 진행했음

Image

caboooom commented 1 month ago

influxdb 초기화 잘 안되면 init.iql 생성해야하는데 만약 권한때매 잘 안되면 컨테이너 내부로 들어간 뒤에 influx --username 'ubuntu' -password 'ubuntu01#' CREATE DATABASE tig CREATE USER tig WITH PASSWORD 'tig01#' WITH ALL PRIVILEGES;