Sun Java System Messaging Server 6 2005Q4 관리 설명서

메일 저장소 백업 및 복원

메일 저장소 백업 및 복원은 가장 일반적이고 중요한 관리 작업 중 하나입니다. 이 작업은 메일 저장소의 모든 메일과 폴더를 백업하는 것으로 구성됩니다. 다음과 같은 문제가 발생했을 때 데이터가 손실되지 않도록 메일 저장소에 대한 백업 및 복원 정책을 구현해야 합니다.

imsbackupimsrestore 명령줄 유틸리티나 Legato NetworkerTM를 사용하는 통합 솔루션을 사용하여 메일 저장소 백업 및 복원을 수행할 수 있습니다.

Messaging Server는 단일 복사본 백업 절차를 제공합니다. 특정 메일을 포함하는 사용자 폴더 수에 상관 없이 백업 도중 메일 파일은 처음 발견된 메일 파일을 사용하여 한 번만 백업됩니다. 두 번째 메일 복사본은 첫 번째 메일 파일의 이름에 대한 링크로 백업되며 그 다음 복사본도 마찬가지입니다. imsbackup은 메일 파일의 장치와 색인 노드를 색인으로 사용하여 모든 메일의 해시 테이블을 유지 관리합니다. 단, 이 방법은 데이터 복원 시 고려해야 할 사항이 있습니다. 자세한 내용은 부분 복원 시의 고려 사항을 참조하십시오.


주 –

모든 메일 파일과 디렉토리를 백업함으로써 메일 저장소 백업과 복원을 수행할 수도 있습니다. 메일 저장소 재해 복구 및 복원을 참조하십시오.


이 절에는 다음과 같은 하위 절이 포함됩니다.

메일함 백업 정책 만들기

백업 정책은 다음 몇 가지 요인에 영향을 받습니다.

작업량이 가장 많은 시간대

시스템에 대한 백업 일정을 예약할 때는 작업량이 가장 많은 시간대에 시스템 로드를 줄일 수 있도록 작업량이 가장 많은 시간대를 피해야 합니다. 예를 들어, 백업은 오전 2시와 같은 새벽에 실행되도록 예약하는 것이 가장 적합합니다.

전체 및 증분 백업

증분 백업( 증분 백업 참조)은 변경된 데이터의 저장소를 스캔하고 변경된 사항만 백업합니다. 전체 백업은 전체 메일 저장소를 백업합니다. 증분 백업과 달리 전체 백업은 시스템이 전체 백업을 수행하는 빈도를 결정해야 합니다. 일반적으로 증분 백업을 일상적인 유지 관리 절차로 수행하면서 일주일에 한 번씩 전체 백업을 수행합니다.

병렬 또는 직렬 백업

사용자 데이터를 여러 디스크에 저장할 경우 필요에 따라 사용자 그룹을 병렬로 백업할 수 있습니다. 시스템 자원에 따라 병렬 백업은 전반적인 백업 절차의 속도를 높일 수 있습니다. 그러나 백업이 서버 성능에 미치는 영향을 최소화하려는 경우 직렬 백업을 사용할 수 있습니다. 병렬 백업 또는 직렬 백업 사용 여부는 시스템 로드, 하드웨어 구성, 사용 가능한 테이프 드라이브 수 등에 따라 달라질 수 있습니다.

백업 그룹 만들기

백업 그룹은 정규식에 의해 정의되는 임의의 사용자 메일함 집합입니다. 백업 그룹은 정규식에 의해 정의되는 임의의 사용자 메일함 집합입니다.

예를 들어, 사용자 아이디가 A-L로 시작하는 사용자를 포함하는 첫 번째 백업 그룹, 사용자 아이디가 M-Z로 시작하는 사용자를 포함하는 두 번째 백업 그룹, 사용자 아이디가 숫자로 시작하는 사용자를 포함하는 세 번째 백업 그룹의 세 가지 백업 그룹을 만들 수 있습니다. 관리자는 이러한 백업 그룹을 사용하여 메일함을 병렬로 백업하거나 특정 날짜에 일정 그룹만 백업하고 다른 날짜에 다른 그룹을 백업할 수 있습니다.

백업 그룹과 관련하여 다음 몇 가지 사항에 유념해야 합니다.

  1. 백업 그룹은 메일 사용자의 임의 가상 그룹이며 보기와 달리 메일 저장소 디렉토리(그림 18–1)에 정확하게 매핑되지 않습니다.

  2. 관리자가 UNIX 정규식을 사용하여 백업 그룹을 정의합니다.

  3. 정규식은 msg_svr_base/config/backup-groups.conf 구성 파일에 정의됩니다.

  4. 백업 그룹은 imsbackupimsrestore에서 참조될 경우 다음 경로 형식을 사용합니다. /partition_name/backup_group

backup-groups.conf의 형식은 다음과 같습니다.


group_name=definition
group_name=definition
.
.
.

위 단락에 설명된 예에 따라 다음 정의를 사용하여 세 개의 백업 그룹을 만듭니다.


groupA=[a-l].*
groupB=[m,-z].*
groupC=[0-9].*

이제 imsbackupimsrestore를 여러 수준에서 사용할 수 있습니다. 다음과 같이 백업 명령을 사용하여 전체 메일 저장소를 백업/복원할 수 있습니다.

imsbackup -f device /

groupA의 모든 사용자에 대한 모든 메일함을 백업하려면 다음 명령을 사용합니다.

imsbackup -f device /partition/groupA

기본 분할 영역을 primary라고 합니다.

미리 정의된 백업 그룹

Messaging Server에는 backup-groups 구성 파일을 만들지 않고 사용할 수 있는 하나의 미리 정의된 백업 그룹이 포함되어 있습니다. 이 그룹은 user라고 불리며 모든 사용자를 포함합니다. 예를 들어, 다음 명령은 primary 분할 영역의 모든 사용자를 백업합니다.

imsbackup -f backupfile /primary/user

Messaging Server 백업 및 복원 유틸리티

데이터를 백업 및 복원하기 위해 Messaging Server는 imsbackupimsrestore 유틸리티를 제공합니다. imsbackupimsrestore 유틸리티는 Legato Networker와 같은 일반 용도의 도구에 있는 고급 기능을 포함하지 않습니다. 예를 들어, 이러한 유틸리티는 테이프 자동 변환기에 대한 매우 제한적인 지원을 제공하고 단일 저장소를 동시에 여러 장치에 기록할 수 없습니다. 포괄적인 백업은 Legato Networker와 같은 일반화된 도구에 대한 플러그 인을 통해 실현됩니다. Legato Networker 사용에 대한 자세한 내용은 Legato Networker 사용을 참조하십시오.

imsbackup 유틸리티

imsbackup을 사용하면 메일 저장소의 원하는 내용을 자기 테이프, UNIX 파이프 또는 일반 파일을 비롯한 모든 직렬 장치에 기록할 수 있습니다. 백업이나 백업의 일부를 나중에 imsrestore 유틸리티를 사용하여 복구할 수 있습니다. imsbackup의 출력을 imsrestore로 파이프할 수 있습니다.

다음 예에서는 전체 메일 저장소를 /dev/rmt/0으로 백업합니다.


imsbackup -f /dev/rmt/0 /

여기에서는 사용자 아이디 joe의 메일함을 /dev/rmt/0으로 백업합니다.


imsbackup -f /dev/rmt/0 /primary/user/joe
            

다음 예에서는 백업 그룹 groupA에 정의된 모든 사용자의 모든 메일함을 backupfile로 백업합니다( 백업 그룹 만들기 참조).


imsbackup -f- /primary/groupA > backupfile
            

증분 백업

다음 예는 2004년 5월 1일 1:10 PM부터 현재까지 저장된 메일을 백업합니다. 기본값은 날짜에 상관없이 모든 메일을 백업하는 것입니다.


imsbackup -d 20040501:13100
               

이 명령은 기본 차단 요소 20을 사용합니다. imsbackup 명령의 전체 구문 설명은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.

imsrestore 유틸리티

백업 장치에서 메일을 복원하려면 imsrestore 명령을 사용합니다. 예를 들어, 다음 명령은 backupfile 파일에서 user1에 대한 메일을 복원합니다.

imsrestore -f backupfile /primary/user1

imsbackup 명령의 전체 구문 설명은 Sun Java System Messaging Server 6 2005Q4 Administration Reference를 참조하십시오.

백업 수행 시 대량 메일 제외

백업 작업을 수행할 때 백업에서 제외할 메일함을 지정할 수 있습니다. 중요하지 않은 메일을 늘릴 수 있는 대량 또는 휴지통 메일함을 제외함으로써 백업 세션을 단순화하고 작업을 완료하는 데 필요한 시간을 줄이며 백업 데이터를 저장하는 데 필요한 디스크 공간을 최소화할 수 있습니다.

메일함을 제외하려면 configutil 매개 변수 local.store.backup.exclude에 대한 값을 지정합니다.

하나의 메일함이나 "%' 문자로 구분된 메일함 목록을 지정할 수 있습니다. ”%’는 메일함 이름에 사용할 수 없는 문자입니다. 예를 들어, 다음 값을 지정할 수 있습니다.

Trash

Trash%Bulk Mail%Third Class Mail

첫 번째 예에서는 폴더 Trash가 제외됩니다. 두 번째 예에서는 폴더 Trash, Bulk MailThird Class Mail이 제외됩니다.

백업 유틸리티는 local.store.backup.exclude 매개 변수에 지정된 폴더를 제외하고 사용자 메일함의 모든 폴더를 백업합니다.

이 기능은 Messaging Server 백업 유틸리티, Legato Networker 및 타사 백업 소프트웨어와 함께 작동합니다.

작업 도중에 전체 논리 이름을 지정하여 local.store.backup.exclude 설정을 대체하거나 제외된 메일함을 백업할 수 있습니다. 휴지통 폴더가 제외되었다고 가정합니다. 다음을 지정하여 휴지통도 백업할 수 있습니다.

/primary/user/user1/trash

그러나 다음과 같이 지정할 경우에는

/primary/user/user1

휴지통 폴더가 제외됩니다.

부분 복원 시의 고려 사항

부분 복원은 메일 저장소의 일부만 복원하는 것이고 전체 복원은 전체 메일 저장소를 복원하는 것입니다. 메일 저장소는 단일 복사본 메일 시스템을 사용합니다. 즉, 메일의 단일 복사본만 단일 파일로 저장소에 저장됩니다. 메일을 여러 메일함으로 보낼 때와 같은 메일의 다른 인스턴스는 해당 복사본에 대한 링크로 저장됩니다. 따라서 메일을 복원할 때 고려해야 할 사항이 있습니다. 예를 들면 다음과 같습니다.

다음 예에서는 부분 복원 작업을 수행할 때 여러 사용자가 사용하는 메일에 발생하는 변화를 보여 줍니다. 세 명의 사용자 A , B 및 C에 속하는 모두 동일한 다음 세 개의 메일이 있다고 가정합니다.


A/INBOX/1
B/INBOX/1
C/INBOX/1

예 1. 첫 번째 예에서는 시스템이 다음과 같이 부분 백업 및 전체 복원 절차를 수행합니다.

  1. 사용자 B 및 C의 메일함을 백업합니다.

  2. 사용자 B 및 C의 메일함을 삭제합니다.

  3. 단계 1의 백업 데이터를 복원합니다.

이 예에서는 B/INBOX/1C/INBOX/1에 새 색인 노드 번호가 할당되며 메일 데이터가 디스크의 새 위치에 기록됩니다. 하나의 메일만 복원되며 두 번째 메일은 첫 번째 메일에 대한 하드 링크입니다.

예 2. 이 예에서는 시스템이 다음과 같이 전체 백업 및 부분 복원 작업을 수행합니다.

  1. 전체 백업을 수행합니다.

  2. 사용자 A의 메일함을 삭제합니다.

  3. 사용자 A의 메일함을 복원합니다.

A/INBOX/1에 새 색인 노드 번호가 할당됩니다.

예 3. 이 예에서는 여러 번의 부분 복원 시도가 필요할 수 있습니다.

  1. 전체 백업을 수행합니다.

    B/INBOX/1C/INBOX/1A/INBOX/1에 대한 링크로 백업됩니다.

  2. 사용자 A 및 B의 메일함을 삭제합니다.

  3. 사용자 B의 메일함을 복원합니다.

    복원 유틸리티는 관리자에게 A/INBOX를 먼저 복원할 것을 요청합니다.

  4. 사용자 A 및 B의 메일함을 복원합니다.

  5. 사용자 A의 메일함을 삭제합니다(선택 사항).


    주 –

    부분 복원으로 모든 메일이 복원되도록 하려면 imsbackup 명령을 -i 옵션과 함께 실행합니다. -i 옵션은 필요한 경우 모든 메일을 여러 번 백업합니다.

    백업 장치를 검색할 수 있는 경우(예: 드라이브 또는 테이프) imsrestoreA/INBOX/1을 포함하는 위치를 검색하여 B/INBOX/1로 복원합니다. 백업 장치를 검색할 수 있는 경우(예: UNIX 파이프) imsrestore는 객체 아이디와 파일에 의존하는(연결된) 객체의 아이디를 기록하며 관리자는 -r 옵션과 함께 imsrestore를 다시 호출하여 누락된 메일 참조를 복원해야 합니다.


증분 백업된 메일함에서 메일 복원

증분 백업된 메일함에서 메일을 복원할 때 해당 메일함이 메일을 복원할 서버에 있는 경우 간단하게 imesrestore를 실행하여 메일을 복원할 수 있습니다. 그러나 증분 백업된 메일함에서 메일을 복원할 때 해당 메일함이 더 이상 없는 경우에는 다른 복원 절차를 따라야 합니다.

메일 저장소 서버에 없는 메일함에 메일을 복원하려면 다음 절차 중 하나를 사용합니다.

증분 백업을 복원할 때 이러한 지침을 따라야 하는 이유는 다음과 같습니다. 메일함이 삭제되거나 마이그레이션되면 imsrestore 유틸리티는 백업 아카이브에 저장된 메일함 고유 아이디 유효성과 메일 고유 아이디(UID)를 사용하여 메일함을 다시 만듭니다.

이전에는 imsrestore가 삭제되었거나 마이그레이션된 메일함을 다시 만들 때 새 UID 유효성을 메일함에 할당하고 새 UID를 메일에 할당했습니다. 이 경우 캐시된 메일을 가진 클라이언트는 메일함 UID 유효성과 메일 UID를 다시 동기화해야 합니다. 클라이언트가 새 데이터를 다시 다운로드해야 하므로 서버에서 작업 로드가 증가합니다.

imsrestore 동작의 경우에는 클라이언트 캐시가 동기화된 상태로 유지되며 복원 프로세스가 투명하게 작동하므로 성능에 부정적인 영향이 없습니다.

메일함이 있는 경우 imsrestore는 새 UID를 복원된 메일에 할당하므로 새 UID와 이미 기존 메일에 할당된 UID의 일관성이 유지됩니다. UID 일관성을 보장하기 위해 imsrestore는 복원 작업 도중에 메일함을 잠급니다. 그러나 imsrestore는 이제 새 UID 값을 할당하는 대신에 백업 아카이브의 메일함 UID 유효성과 메일 UID를 사용하므로 증분 백업 및 복원을 수행할 경우 UID가 일관되지 않을 수 있습니다.

imsbackup 유틸리티의 -d 날짜 옵션을 사용하여 증분 백업을 수행할 경우 복원 작업을 완료하기 위해 imsrestore를 여러 번 호출해야 할 수 있습니다. 증분 백업이 수행되었으면 최신 전체 백업과 이후의 모든 증분 백업을 복원해야 합니다.

복원 작업 사이에 새 메일을 메일함에 전달할 수 있지만 이 경우에는 메일 UID가 일관되지 않을 수 있습니다. UID의 비일관성을 방지하려면 위에 설명된 작업 중 하나를 수행해야 합니다.

Legato Networker 사용

Messaging Server에는 Legato Networker와 같은 타사 백업 도구와의 인터페이스를 제공하는 백업 API가 포함되어 있습니다. 물리적 메일 저장소 구조와 데이터 형식은 백업 API 내에서 캡슐화됩니다. 메일 저장소와 직접 상호 작용하는 백업 API는메일 저장소의 논리적 뷰를 백업 서비스에 제공합니다. 백업 서비스는 메일 저장소의 개념적 표시를 사용하여 백업 객체를 저장 및 복원합니다.

Messaging Server는 Legato Networker의 saverecover 명령으로 호출하여 메일 저장소 데이터를 백업 및 복원할 수 있는 ASM(Application Specific Module)을 제공합니다. 호출된 ASM은 이어서 Messaging Server imsbackupimsrestore 유틸리티를 호출합니다.


주 –

이 절에서는 Messaging Server 메일 저장소와 함께 Legato Networker를 사용하는 방법에 대해 설명합니다. Legato Networker 인터페이스를 이해하려면 Legato 설명서를 참조하십시오.


ProcedureLegato Networker를 사용하여 데이터를 백업하는 방법

단계
  1. /usr/lib/nsr/imsasm에서 msg_srv_base/lib/msg/imsasm에 대한 심볼릭 링크를 만듭니다.

  2. Sun 또는 Legato에서 nsrfile 이진 파일의 복사본을 얻어 다음 디렉토리에 복사합니다.

    /usr/bin/nsr

    이전 버전 Networker (5.x)를 사용 중인 경우에만 필요합니다. Networker 6.0 이상에서는 nsrfile/usr/bin/nsr에 자동으로 설치됩니다.

  3. 그룹별로 사용자를 백업하려면 다음 단계를 수행합니다.

    1. 백업 그룹 만들기에 설명된 대로 백업 그룹 파일을 만듭니다.

    2. 구성을 확인하려면 mkbackupdir.sh를 실행합니다.

      mkbackupdir.sh에 의해 작성된 디렉터리 구조를 확인합니다. 이 구조는 표 18–4에 나온 것과 비슷해야 합니다.

      backup-groups.conf 파일을 지정하지 않을 경우 백업 프로세스는 모든 사용자에 대해 기본 백업 그룹 ALL을 사용합니다.

  4. 백업 전에 mkbackupdir.sh 스크립트를 호출하기 위해 /nsr/res/ 디렉토리에서 저장 그룹에 대한 res 파일을 만듭니다. 그 예는 표 18–4에 나와 있습니다.


    주 –

    이전 버전의 Legato Networker에서는 saveset 이름이 64자로 제한됩니다. 이 디렉토리 이름과 메일함의 논리 이름을 합친 것(예: /primary/groupA/fred)이 64자 이상인 경우 mkbackupdir.sh -p를 실행해야 합니다. 따라서 mkbackupdir.sh-p 옵션에 짧은 경로 이름을 사용해야 합니다. 예를 들어, 다음 명령은 /backup 디렉토리 아래에 백업 이미지를 만듭니다.

    mkbackupdir.sh -p /backup

    중요백업 디렉토리는 메일 저장소 소유자(예: inetuser).


    표 18–6에서는 샘플 백업 그룹 디렉토리 구조를 보여 줍니다.


    /backup/primary/groupA/amy
                          /bob
                          /carly
                   /groupB/mary
                          /nancy
                          /zelda
                   /groupC/123go
                          /1bill
                          /354hut

    아래 예에서는 /nsr/res 디렉토리에 있는 IMS.res라는 샘플 res 파일을 보여 줍니다.


    type: savepnpc;
    precmd: "echo mkbackupdir started",
       "/usr/siroe/server5/msg-siroe/bin/mkbackupdir.sh -p /backup";
    pstcmd: "echo imsbackup Completed";
    timeout: "12:00 pm";
    
                         

    이제 다음과 같이 Legato Networker 인터페이스를 실행할 준비가 되었습니다.

  5. 필요한 경우 Messaging Server 저장 그룹을 만듭니다.

    1. nwadmin을 실행합니다.

    2. 사용자 정의 | 그룹 | 만들기를 선택합니다.

  6. 다음과 같이 savepnpc를 백업 명령으로 사용하여 백업 클라이언트를 만듭니다.

    1. saveset를 mkbackupdir로 만든 디렉토리로 설정합니다.

      단일 세션 백업의 경우 /backup을 사용합니다.

      병렬 백업의 경우 /backup/server/group을 사용합니다.

      백업 그룹 만들기에 정의된 대로 이미 group이 만들어졌는지 확인합니다.

      백업 세션 수에 대해서도 병렬을 설정해야 합니다.

      Legato Networker를 사용하여 데이터를 백업하는 방법을 참조하십시오.

  7. 그룹 제어 | 시작을 선택하여 백업 구성을 테스트합니다.

    예: Networker에서 백업 클라이언트 만들기

    Networker에서 백업 클라이언트를 만들려면 nwadmin에서 클라이언트 | 클라이언트 설치 | 만들기를 선택합니다.


    Name: siroe
    Group: IMS
    Savesets:/backup/primary/groupA
       /backup/secondary/groupB
       /backup/tertiary/groupC
             .
             .
    Backup Command:savepnpc
    Parallelism: 4
    
                         

Legato Networker를 사용하여 데이터 복원

Legato Networker nwrecover 인터페이스나 recover 명령줄 유틸리티를 사용하여 데이터를 복구할 수 있습니다. 다음 예에서는 사용자 a1의 INBOX를 복구합니다.

recover -a -f -s siroe /backup/siroe/groupA/a1/INBOX

다음 예에서는 전체 메일 저장소를 복구합니다.

recover -a -f -s siroe /backup/siroe

Legato를 제외한 타사 소프트웨어 사용

Messaging Server는 두 개의 메일 저장소 백업 솔루션인 명령줄 imsbackup과 Solstice Backup(Legato Networker)을 제공합니다. 단일 imbackup을 실행하여 전체 메일 저장소를 백업하는 대량 메일 저장소는 매우 많은 시간이 소요될 수 있습니다. Legato 솔루션은 여러 백업 장치에서의 동시 백업 세션을 지원합니다. 동시 백업으로 백업 시간을 대폭 단축시킬 수 있습니다(시간당 25GB의 데이터 백업 가능).

타사 동시 백업 소프트웨어(예: Netbackup)를 사용하는 경우 다음 방법을 사용하여 백업 소프트웨어를 Messaging Server와 통합할 수 있습니다.

ProcedureLegato를 제외한 타사 소프트웨어 사용

단계
  1. 사용자를 그룹으로 분할하고( 백업 그룹 만들기 참조) msg_svr_base/config/ 디렉토리 아래에 backup-groups.conf 파일을 만듭니다.


    주 –

    이 백업 솔루션에는 추가 디스크 공간이 필요합니다. 모든 그룹을 동시에 백업하려는 경우 디스크 공간 요구 사항은 메일 저장소 크기의 2배입니다. 디스크 공간이 충분치 않을 경우에는 사용자를 더 작은 그룹으로 분할한 다음 그룹 집합을 한꺼번에백업합니다(예: group1 - group5, group6 - group10). 백업 후에는 그룹 데이터 파일을 제거합니다.


  2. imsbackup을 실행하여 스테이징 영역에서 각 그룹을 파일로 백업합니다.

    명령은 imsbackup -f <device> /<instance>/<group>입니다.

    여러 imsbackup 프로세스를 동시에 실행할 수 있습니다. 예를 들면 다음과 같습니다.


    # imsbackup -f- /primary/groupA > /bkdata/groupA &
    # imsbackup -f- /primary/groupB > /bkdata/groupB & 
    . . .

    imsbackup은 큰 파일을 지원하지 않으므로 백업 데이터가 2GB 이상일 경우 -f- 옵션을 사용하여 데이터를 stdout에 기록한 다음 출력을 파일로 파이프해야 합니다.

  3. 타사 백업 소프트웨어를 사용하여 스테이징 영역(이 예에서는 /bkdata)에서 그룹 데이터 파일을 백업합니다.

  4. 사용자를 복원하려면 사용자의 그룹 파일 이름을 식별하고 테이프에서 해당 파일을 복원한 다음 imsrestore를 사용하여 데이터 파일에서 사용자를 복원합니다.

    imsrestore는 큰 파일을 지원하지 않습니다. 데이터 파일이 2GB 이상일 경우 다음 명령을 사용합니다.

    # cat /bkdata/groupA | imsrestore -f- /primary/groupA/andy

백업 및 복원 문제 해결

이 절에서는 일반적인 백업 및 복원 문제와 그 해결 방법에 대해 설명합니다.

메일 저장소 재해 복구 및 복원

재해란 전체 메일 저장소에 매우 심각한 문제가 발생했음을 말합니다. 즉, 메일 저장소 서버의 모든 데이터가 손실되는 경우가 이에 해당합니다. 다음의 손실 데이터를 복원하면 메일 저장소 재해를 완전히 복원할 수 있습니다.