Calendar Server에는 삭제된 이벤트 및 작업을 저장하는 삭제 로그 데이터베이스(ics50deletelog.db)가 있습니다.
이전 릴리스의 Calendar Server에서는 삭제된 이벤트 및 작업의 데이터베이스를 관리하지 않았습니다. 달력 이벤트 및 작업의 로컬 복사본을 저장하는 사용자 인터페이스에서 삭제된 이벤트를 확인하는 데는 어려움이 있습니다. 삭제된 구성 요소를 확인하기 위해 클라이언트 소프트웨어는 모든 이벤트 또는 작업의 고유 아이디(uid) 또는 반복 아이디(rid)를 Calendar Server의 데이터 복사본과 비교합니다. 이러한 제한은 WCAP 명령을 사용하여 클라이언트 사용자 인터페이스(UI)를 개발하는 설치 환경에 직접적으로 영향을 미쳤습니다. 이 제한을 해결하기 위해 삭제 로그 데이터베이스가 마련되었습니다.
삭제 로그는 다른 데이터베이스 파일과 마찬가지로 관리되어야 합니다. 다음 절에서는 삭제 로그 파일 관리에 대해 설명합니다.
Calendar Server는 csdb 디렉토리에 다른 Calendar Server 데이터베이스 파일과 함께 삭제 로그 데이터베이스(ics50deletelog.db)를 자동으로 만듭니다. Calendar Server는 삭제 로그 데이터베이스에 다음과 같이 이벤트 및 수행할 작업을 기록합니다.
반복하지 않는 이벤트 및 수행할 작업
반복되지 않는 이벤트 또는 작업이 삭제되는 경우 Calendar Server는 이벤트 데이터베이스(ics50events.db) 또는 작업 데이터베이스(ics50todos.db)에서 해당 항목을 제거한 다음 이를 삭제 로그 데이터베이스(ics50deletelog.db)에 기록합니다.
반복 이벤트 및 수행할 작업
반복 이벤트나 작업의 개별 인스턴스를 삭제하면 Calendar Server가 해당 이벤트 또는 작업의 삭제된 인스턴스를 삭제 로그 데이터베이스(ics50deletelog.db)에 기록합니다.
반복 이벤트나 수행할 작업의 모든 인스턴스가 삭제되는 경우 Calendar Server는 이벤트나 수행할 작업 데이터베이스에서 마스터 구성 요소를 삭제하고 이를 삭제 로그 데이터베이스에 기록합니다. 삭제 로그 데이터베이스의 마스터 구성 요소에는 rrules, rdates, exrules 및 exdates 반복 매개 변수가 포함됩니다.
이 절에서는 삭제 로그 데이터베이스를 쿼리하는 방법을 설명합니다.
삭제 로그 데이터베이스에서 항목을 가져오려면 확장 모드나 압축 모드에서 fetch_deletedcomponents WCAP 명령을 사용합니다.
다음 내용은 각 모드를 언제, 어떻게 지정할 것인지에 대해 설명합니다.
확장 모드(recurring = 0)
recurring 매개 변수가 0인 경우 fetch_deletedcomponents는 기준과 일치하는 반복 이벤트의 모든 인스턴스를 반환하지만 반복 이벤트의 마스터 구성 요소는 반환하지 않습니다.
압축 모드(recurring = 1)
recurring 매개 변수가 1인 경우 fetch_deletedcomponents는 반복하지 않는 이벤트 그리고 반복 이벤트의 마스터 구성 요소를 반환하지만, 개별 반복 이벤트는 반환하지 않습니다.
반복 체인의 모든 인스턴스가 삭제되면 마스터 구성 요소는 dtstart, dtend, rrules, rdates, exrules, exdates 및 uid 매개 변수를 반환합니다.
또한 fetch_deletedcomponents 명령은 삭제된 반복 인스턴스와 연관되지만 아직 활성 상태인 마스터 구성 요소를 반환하지 않습니다. 활성 마스터 구성 요소를 가져오려면 fetchcomponents_by_lastmod WCAP 명령을 사용합니다. fetch_deletedcomponents 명령은 fetchcomponents_by_lastmod 명령과 함께 사용해야 합니다.
WCAP 명령에 대한 자세한 내용은 Sun Java System Calendar Server 6.3 WCAP Developer’s Guide를 참조하십시오.
이 절에서는 삭제 로그 데이터베이스를 제거하는 방법을 설명합니다. Calendar Server에서는 자동 및 수동 방식으로 삭제 로그 데이터베이스를 제거할 수 있습니다.
이 절은 다음 내용으로 구성되어 있습니다.
삭제 로그 데이터베이스를 제거하기 전에 서비스를 제공하는 최종 사용자에 대해 잘 알아야 합니다. 최종 사용자가 Communications Express를 사용하는 경우 기본 매개 변수 설정으로도 충분하지만이벤트 및 작업의 로컬 복사본을 저장하는 클라이언트 사용자 인터페이스(예: Connector for Microsoft Outlook 또는 Sync Tool)를 사용하는 경우 필요에 맞게 자동 제거 구성 매개 변수 설정을 조정해야 합니다. 일반적으로 최고 30일 이상의 항목을 포함하는 삭제 로그가 필요합니다. 따라서 삭제 로그 크기가 매우 증가하게 됩니다. 조정에 실패하면 데이터베이스에 문제가 발생할 수 있습니다. 제거 간격 역시 사용자의 필요에 맞게 조정되어야 합니다. 예를 들어 삭제 로그 데이터베이스에 30일의 데이터가 저장되어 있고 이를 제거하도록 허용한다면 매 분마다 삭제를 실행하는 것은 적절하지 않을 수 있습니다. 데이터는 일 단위로 쓸모 없게되므로 일 단위 제거가 합리적입니다.
유사한 문제가 cspurge를 수동으로 실행할 때 발생할 수 있습니다. 삭제 로그에서 지나치게 많은 데이터를 제거하면 Connector for Microsoft Outlook 및 Sync Tool의 사용자가 서버 데이터베이스와 동기화되지 않을 수 있습니다.
삭제 로그 데이터베이스를 제거할 때까지 시간이 길어지면 파일이 너무 커지게 됩니다. 그 결과 대량 제거가 발생하면 매일 트랜잭션 로그가 엄청나게 늘어나 제거된 각 항목이 해당 로그에 트랜잭션으로 기록되고 아카이브 및 핫 백업에 보관됩니다. 이러한 트랜잭션 로그 데이터의 증가는 시스템에 문제가 있는 것처럼 표시되며 문제를 파악하는 데도 많은 시간이 소요될 수 있습니다.
필요한 경우 Calendar Server에서 삭제 로그 데이터베이스의 항목을 지정된 간격에 따라 자동으로 제거하도록 할 수 있습니다. 기본적으로 자동 제거는 비활성화되어 있습니다.
다음 ics.conf 매개 변수는 자동 제거 기능을 제어합니다.
표 18–1 삭제 로그 데이터베이스 자동 제거를 위한 구성 매개 변수
매개 변수 |
설명 |
---|---|
삭제 로그 데이터베이스(ics50deletelog.db) 항목의 자동 제거를 활성화("yes") 또는 비활성화("no")합니다. 기본값은 "no"입니다. |
|
삭제 로그 데이터베이스(ics50deletelog.db)의 항목을 자동으로 제거하는 간격을 초 단위로 지정합니다. 기본값은 60초입니다. |
|
삭제 로그 데이터베이스(ics50deletelog.db)의 항목을 제거할 때까지의 시간을 초 단위로 지정합니다. 기본값은 518400초(6일)입니다. |
예를 들어, Calendar Server가 5분(600초)마다 이틀(172800초)이 지난 삭제 로그 데이터베이스 항목을 자동으로 제거하도록 하려면 18.3.2 삭제 로그 데이터베이스 자동 제거의 매개 변수를 다음과 같이 설정합니다.
service.admin.purge.deletelog="yes" caldb.berkeleydb.purge.deletelog.interval=600 caldb.berkeleydb.purge.deletelog.beforetime=172800
이 매개 변수를 설정한 다음 새 값을 적용하려면 Calendar Server를 다시 시작합니다.
cspurge 유틸리티를 사용하여 삭제 로그 데이터베이스(ics50deletelog.db)의 항목을 수동으로 제거할 수 있습니다.
이 유틸리티 사용법은 다음과 같습니다.
cspurge -e endtime -s starttime
변수 endtime 및 starttime은 줄루 시간(또는 GMT나 UTC로 표시)으로 종료 및 시작 시간을 지정합니다.
cspurge를 실행하려면 Calendar Server가 실행되고 있는 사용자 및 그룹(기본값은 icsuser 및 icsgroup)으로 로그인하거나 root로 로그인해야 합니다.
예를 들어, 2003년 7월 1일부터 2003년 7월 31일까지의 항목을 제거하려면 다음 작업을 수행합니다.
cspurge -e 20030731T235959Z -s 20030701T120000Z
자세한 내용은 D.13 cspurge를 참조하십시오.
다음 표에는 삭제 로그 데이터베이스(ics50deletelog.db)를 지원하는 Calendar Server 유틸리티가 정리되어 있습니다.
표 18–2 삭제 로그 데이터베이스를 지원하는 유틸리티
유틸리티 |
설명 |
---|---|
cspurge |
삭제 로그 데이터베이스 항목의 수동 제거를 허용합니다. |
csbackup 및 csrestore |
삭제 로그 데이터베이스의 백업 및 복원을 지원합니다. |
csstats |
삭제 로그 데이터베이스 통계를 보고합니다. |
csdb |
삭제 로그 데이터베이스 재구축, 복구 및 점검 작업을 지원합니다. |
cscomponents |
삭제 로그 데이터베이스 항목의 번호를 나열합니다(읽기 전용). |
이러한 유틸리티 구문을 포함한 자세한 내용은 부록 D, Calendar Server 명령줄 유틸리티 참조 를 참조하십시오.