9.7. 트랜잭션 로깅 튜닝
모든 Directory Server 인스턴스에는 관리하는 데이터베이스 업데이트를 기록하는 트랜잭션 로그가 포함되어 있습니다. 수정 작업과 같은 디렉터리 데이터베이스 작업이 수행될 때마다 서버는 해당 LDAP 작업의 결과로 호출되는 모든 데이터베이스 작업에 대해 단일 데이터베이스 트랜잭션을 생성합니다. 여기에는 항목이 포함된 데이터베이스 파일의 항목 레코드를 업데이트하고 모든 속성 인덱스를 업데이트하는 작업이 포함됩니다. 모든 작업이 성공하면 서버는 트랜잭션을 커밋하고, 작업을 트랜잭션 로그에 쓰고, 전체 트랜잭션이 디스크에 기록되는지 확인합니다. 이러한 작업이 하나라도 실패하면 서버에서 트랜잭션을 롤백하고 모든 작업이 삭제됩니다. 이 all-or-nothing 접근 방식은 업데이트 작업이 atomic임을 보장합니다. 전체 작업이 영구적으로 성공하고 되돌릴 수 없거나 실패합니다.
주기적으로 Directory Server는 트랜잭션 로그의 내용을 실제 데이터베이스 인덱스 파일로 플러시하고 트랜잭션 로그에 트리밍이 필요한지 확인합니다.
서버에 정전과 같은 오류가 발생하고 비정상적으로 종료되는 경우 최근 디렉터리 변경에 대한 정보는 트랜잭션 로그에 의해 계속 저장됩니다. 서버가 다시 시작되면 서버는 오류 상태를 자동으로 감지하고 데이터베이스 트랜잭션 로그를 사용하여 데이터베이스를 복구합니다.
데이터베이스 트랜잭션 로깅, 플러시 데이터베이스, 트리밍 및 데이터베이스 복구는 개입이 필요한 자동 프로세스이지만 성능을 최적화하기 위해 데이터베이스 트랜잭션 로깅 속성 중 일부를 조정하는 것이 좋습니다.
9.7.1. 명령줄을 사용하여 데이터베이스 체크섬 간격 변경 링크 복사링크가 클립보드에 복사되었습니다!
정기적으로 Directory Server는 트랜잭션 로그에 기록된 트랜잭션을 데이터베이스 파일에 작성하고 데이터베이스 트랜잭션 로그에 Checkpoint 항목을 기록합니다.At regular intervals, Directory Server writes the transactions logged in the transaction log to the database files and logs a checkpoint entry in the database transaction log. 데이터베이스에 이미 작성된 변경 사항을 표시하여 체크포인트 항목은 트랜잭션 로그에서 복구를 시작할 위치를 표시하므로 복구 프로세스의 속도가 빨라집니다.
기본적으로 Directory Server는 60초마다 데이터베이스 트랜잭션 로그에 체크포인트 항목을 보냅니다. 체크포인트 간격을 늘리면 디렉터리 쓰기 작업의 성능이 향상될 수 있습니다. 그러나 무질서한 종료 후 디렉터리 데이터베이스를 복구하는 데 필요한 시간을 늘리고 데이터베이스 트랜잭션 로그 파일로 인해 더 많은 디스크 공간이 필요할 수도 있습니다.
프로세스
체크포인트 간격을 (예: 120초)로 변경합니다.
dsconf <instance_name> backend config set --checkpoint-interval=120
# dsconf <instance_name> backend config set --checkpoint-interval=120
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
9.7.2. 웹 콘솔을 사용하여 데이터베이스 체크섬 간격 변경 링크 복사링크가 클립보드에 복사되었습니다!
정기적으로 Directory Server는 트랜잭션 로그에 기록된 트랜잭션을 데이터베이스 파일에 작성하고 데이터베이스 트랜잭션 로그에 Checkpoint 항목을 기록합니다.At regular intervals, Directory Server writes the transactions logged in the transaction log to the database files and logs a checkpoint entry in the database transaction log. 데이터베이스에 이미 작성된 변경 사항을 표시하여 체크포인트 항목은 트랜잭션 로그에서 복구를 시작할 위치를 표시하므로 복구 프로세스의 속도가 빨라집니다.
기본적으로 Directory Server는 60초마다 데이터베이스 트랜잭션 로그에 체크포인트 항목을 보냅니다. 체크포인트 간격을 늘리면 디렉터리 쓰기 작업의 성능이 향상될 수 있습니다. 그러나 무질서한 종료 후 디렉터리 데이터베이스를 복구하는 데 필요한 시간을 늘리고 데이터베이스 트랜잭션 로그 파일로 인해 더 많은 디스크 공간이 필요할 수도 있습니다.
사전 요구 사항
- 웹 콘솔에서 인스턴스에 로그인되어 있습니다.
프로세스
- .
- 고급 설정 표시를 클릭합니다.
- Database Checkpoint Interval 필드에서 값을 업데이트합니다.
- 을 클릭합니다.
9.7.3. Cryostat 트랜잭션 비활성화 링크 복사링크가 클립보드에 복사되었습니다!
Cryostat 트랜잭션 로깅은 트랜잭션의 일련의 데이터베이스 작업으로 구성된 각 LDAP 업데이트 작업이 디스크에 물리적으로 기록됨을 의미합니다. 각 LDAP 작업을 여러 데이터베이스 업데이트로 구성할 수 있지만 각 LDAP 작업은 단일 데이터베이스 트랜잭션으로 처리됩니다. 각 LDAP 작업은 atomic 및 Cryostat입니다.
Cryostat 트랜잭션을 활성화하면 데이터 손실 위험이 있는 Directory Server의 쓰기 성능이 향상될 수 있습니다.
Cryostat 트랜잭션 로깅을 비활성화하면 Directory Server는 모든 디렉터리 데이터베이스 작업을 데이터베이스 트랜잭션 로그 파일에 기록하지만 즉시 디스크에 물리적으로 기록되지 않을 수 있습니다. 디렉토리 변경이 논리 데이터베이스 트랜잭션 로그 파일에 기록되었지만 시스템 충돌 시 디스크에 물리적으로 기록되지 않은 경우 변경 사항을 복구할 수 없습니다. Cryostat 트랜잭션이 비활성화되면 복구된 데이터베이스는 일관되게 유지되지만 시스템 충돌 직전에 완료된 LDAP 쓰기 작업의 결과가 반영되지 않습니다.
Directory Server가 실행 중인 경우 nsslapd-db-durable-
Cryostat 매개변수를 변경할 수 없습니다.
프로세스
인스턴스를 중지합니다.
dsctl <instance_name> stop
# dsctl <instance_name> stop
Copy to Clipboard Copied! Toggle word wrap Toggle overflow /etc/dirsrv/slapd- <instance_name> /
파일을 편집하고d
se.ldifcn=config,cn=ldbm 데이터베이스,cn=plugins,cn=config
항목을off
:로 설정합니다.dn: cn=config,cn=ldbm database,cn=plugins,cn=config ... nsslapd-db-durable-transaction: off ...
dn: cn=config,cn=ldbm database,cn=plugins,cn=config ... nsslapd-db-durable-transaction: off ...
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 인스턴스를 시작합니다.
dsctl <instance_name> start
# dsctl <instance_name> start
Copy to Clipboard Copied! Toggle word wrap Toggle overflow