에러시의 대비 그 2(snapshot/data backup)

data를 백업하는 snapshot 기능입니다.

조건


  • storage type: tokyocabinet

  • 절차



    명령


    $ cpdb ${port No.}
    
  • 모든 인스턴스에서 snapshot을 사용하려면 각 인스턴스에 대해 cpdb를 실행하십시오.



    data directory 확인 (snapshot 전)


    $ ls -l localhost_10001/roma/
    total 204900
    -rw-r--r-- 1 root root 20975936 Dec 15 01:15 0.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:15 1.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 2.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 3.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 4.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 5.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 6.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 7.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:17 8.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:17 9.tc
    -rw-r--r-- 1 root root        0 Dec 15 01:15 lock
    -rw-r--r-- 1 root root        0 Dec 14 01:15 status.log.1
    

    snap shot 실행


    $ cpdb 10001
    waiting for storages[roma][0] == safecopy_flushed .
    copy file : /usr/local/roma/app/localhost_10001/roma/0.tc
    waiting for storages[roma][0] == normal .
    .
    .
    .
    waiting for storages[roma][9] == safecopy_flushed .
    copy file : /usr/local/roma/app/localhost_10001/roma/9.tc
    waiting for storages[roma][9] == normal .
    finished
    

    data directory 확인 (snapshot 후)


    $ ls -l localhost_10001/roma/
    total 409764
    -rw-r--r-- 1 root root 20975936 Dec 15 01:15 0.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:15 0.tc.20151215011546 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:15 1.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:15 1.tc.20151215011556 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 2.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 2.tc.20151215011606 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 3.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 3.tc.20151215011616 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 4.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 4.tc.20151215011627 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 5.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 5.tc.20151215011637 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 6.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 6.tc.20151215011647 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 7.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:16 7.tc.20151215011657 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:17 8.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:17 8.tc.20151215011707 # snapshotファイル
    -rw-r--r-- 1 root root 20975936 Dec 15 01:17 9.tc
    -rw-r--r-- 1 root root 20975936 Dec 15 01:17 9.tc.20151215011717 # snapshotファイル
    -rw-r--r-- 1 root root        0 Dec 15 01:15 lock
    -rw-r--r-- 1 root root     1714 Dec 15 01:17 status.log.1 # snapshot statusファイル
    
  • snapshot 파일은 파일 이름 끝에 실행 날짜와 시간이 적용됩니다.
  • status.log는 snapshot 실행 로그입니다.

    로직



    스냅샷 처리는 네 가지 상태로 나뉩니다.
    - :normal
    - :flushing
    - :flushed
    - :cache cleaning

    1. Status :normal





    2. Status :flushing





    3. Status :flushed





    4. Status :Cache Cleaning



  • 좋은 웹페이지 즐겨찾기