ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 19. 스냅숏(Snapshot)을 이용한 백업과 복구
    BackEnd/elasticsearch 2021. 10. 12. 17:41
    반응형

      엘라스틱서치에서 제공하는 _snapshot API을 이용해 개별 인덱스를 백업할 수도 있고 클러스터 전체를 스냅숏으로 만드는 것도 가능합니다.

     

    1. 백업

    # 1) config 폴더 내 elasticsearch.yml 설정 파일에 스냅숏 경로 지정
    path.repo: ["/home/snapshot/elastic/backup"]
    
    # 2) 검색엔진 재시작
    
    # 3) 리포지토리(스냅숏들을 저장하는 논리적인 공간) 생성
    PUT _snapshot/movie_data_backup
    {
      "type": "fs",
      "settings": {
        "location": "/home/snapshot/elastic/backup",
        "compress": true
      }
    }
    
    # 4) 스냅숏 생성
    # 기본적으로 스냅숏 대상이 되는 인덱스는 더 이상 변경이 없는 인덱스여야 한다.
    # wait_for_completion=true : 스냅숏 생성이 완료될 때까지 wait
    PUT _snapshot/movie_data_backup/movie_shapshot_part1?wait_for_completion=true
    {
      "indices": "movie_search_211012",
      "ignore_unavailable": true,
      "include_global_state": false
    }
    # 스냅숏 생성 시 스냅숏 이름은 유일해야 하며 
    # 백업을 하게 되면 백업한 인덱스명, 엘라스틱서치 버전, 스냅숏 버전 ID 등을 반환합니다.
    
    # 5) 백업된 스냅숏 정보 확인
    GET _snapshot/movie_data_backup/_all

    [스냅숏 설정 시 제공되는 옵션]

    location 스냅숏의 저장 경로를 설정한다.
    compress 스냅숏 생성 시 압축을 수행한다. 이때 데이터는 압축되지 않으며 메타데이터만 압축 대상이 된다.
    chunk_size 생성되는 파일을 특정 크기로 나눠서 생성할 수 있다. 기본적으로 스냅숏은 하나의 파일로 생성된다.
    max_restore_bytes_per_sec 스냅숏 복원 시 속도를 설정한다. 기본적으로 초당 40MB의 속도를 낸다.
    max_snapshot_bytes_per_sec 스냅숏 생성 시 속도를 설정한다. 기본적으로 초당 40MB의 속도를 낸다.
    readonly 리포지토리를 읽기 전용으로 생성한다.

     

    2. 복구

    # 복구
    POST _snapshot/movie_data_backup/movie_snapshot_part1/_restore
    
    # 동일 인덱스 존재 시 삭제 후 복구
    DELETE movie_search_211012
    POST _snapshot/movie_data_backup/movie_snapshot_part1/_restore
    
    # 스냅숏 삭제
    DELETE _snapshot/movie_data_backup/movie_snapshot_part1
    반응형

    댓글

Designed by Tistory.