15.2. 복제 관련 오류, 원인 및 가능한 솔루션 개요
다음은 복제 관련 오류 및 가능한 해결책에 대한 개요입니다.
agmt=agreement_name (host_name:port) Replica는 로컬 데이터와 다른 생성 ID를 갖습니다.
- 이유: 메시지의 parenthesis에서 지정된 소비자는 아직 초기화되지 않았거나 다른 루트 공급자로부터 초기화되었습니다.
- 영향: 지역 공급업체는 어떠한 데이터도 소비자에게 복제하지 않습니다.
-
해결 방법: 소비자가 초기화되기 전에 발생하는 경우 이 메시지를 무시합니다. 그렇지 않으면 메시지가 지속되는 경우 소비자를 다시 초기화합니다. 다중 공급 업체 환경에서 모든 서버는 직접 또는 간접적으로 루트 공급 업체에서 한 번만 초기화해야합니다. 예를 들어, 서버
S1
은S2
및S4
,S2
를 초기화한 다음S3
를 초기화하는 등의 작업을 수행합니다. 주목해야 할 중요한 점은S2
가S2
초기화가 완료될 때까지S3
초기화를 시작하지 않아야 한다는 것입니다. 이를 위해S1
의 웹 콘솔 또는S1
또는S2
의 오류 로그에서 총 업데이트 상태를 확인합니다. 또한S2
는S1
을 다시 초기화해서는 안 됩니다.
경고: 복제본의 데이터가 다시 로드되었으며 더 이상 변경 로그의 데이터와 일치하지 않습니다. changelog 파일을 다시 생성합니다. 이는 복제본 소비자의 복제에 영향을 미칠 수 있으며, 이 경우 소비자는 다시 초기화해야 합니다.
- 이유: 이 메시지는 공급업체를 다시 시작할 때만 표시될 수 있습니다. 이는 공급업체가 변경 로그를 쓸 수 없거나 마지막 종료 시 RUV(복제 업데이트 벡터)를 플러시하지 않았음을 나타냅니다. 전자 케이스는 일반적으로 디스크 공간 문제로 인해 발생하며, 서버가 충돌하거나 비정상적으로 종료되었기 때문에 후자의 경우는 발생합니다.
-
영향: 소비자의
maxcsn
값이 서버의 변경 로그에 더 이상 존재하지 않는 경우 서버에서 변경 사항을 소비자에게 보낼 수 없습니다. - 해결 방법: 서버의 로그 디렉토리에서 디스크 공간과 가능한 코어 파일을 확인합니다. 단일 제공 복제인 경우 소비자를 다시 초기화합니다. 그렇지 않으면 나중에 서버가 소비자에 대한 변경 시퀀스 번호 (CSN)를 찾을 수 없다고 불만족하면 소비자가 다른 공급 업체로부터 CSN을 수신할 수 있는지 확인하십시오. 그렇지 않은 경우 소비자를 다시 초기화합니다.
너무 많은 시간 skew
- 이유: 호스트 시스템의 시스템 시계가 매우 동기화되지 않습니다.
- 영향: Directory Server는 시스템 시계를 사용하여 CSN의 일부를 생성합니다. 여러 공급 업체의 변경 순서를 반영하기 위해 공급 업체는 다른 공급 업체의 원격 시계를 기반으로 지역 시계를 앞으로 조정합니다. 조정은 일정 금액으로 제한되기 때문에 허용된 제한을 초과하는 모든 차이로 인해 복제 세션이 중단됩니다.
-
해결 방법: Directory Server 호스트 시스템에서 시스템 시계를 동기화합니다(예:
chronyd
서비스를 구성).
agmt=agreement_name (host_name:포트): Warning: endReplication extension 작업을 보낼 수 없음 (error_message)
- 이유: 소비자가 응답하지 않습니다.
- 영향: 소비자가 다시 시작하지 않고 복구하면 소비자의 복제본이 공급자로부터 릴리스 잠금 메시지를 받지 못한 경우 영구적으로 잠길 가능성이 있습니다.
- 해결 방법: 소비자가 공급업체로부터 새로운 변경 사항을 수신하거나 복제 모니터를 시작할 수 있는지 확인하고 이 소비자의 모든 공급업체가 복제본이 사용 중임을 경고하는지 확인합니다. 복제본이 영구적으로 잠긴 것으로 표시되고 공급업체가 들어가지 않는 경우 소비자를 다시 시작합니다.
변경 로그가 너무 커지고 있습니다.
- 이유: 변경 로그 제거가 해제되어 기본 설정 또는 변경 로그 제거가 설정되어 있지만 일부 소비자는 공급자 뒤에 있습니다.
해결 방법: 기본적으로 변경 로그 제거가 해제됩니다. 명령줄에서 켜려면 다음을 입력합니다.
dsconf -D "cn=Directory Manager" ldap://server.example.com replication set-changelog --max-age 1d --suffix "dc=example,dc=com"
# dsconf -D "cn=Directory Manager" ldap://server.example.com replication set-changelog --max-age 1d --suffix "dc=example,dc=com"
Copy to Clipboard Copied! 1D는
1 day를 의미합니다. 다른 유효한 시간 단위는 초, 분m
for minutes,h
시간, 주 동안w
입니다.값이
0
이면 제거가 해제됩니다.변경 로그 제거가 설정되어 있는 상태에서 5분마다 켜는 제거 스레드는 시간이 설정한 값보다 크고 이 공급업체 또는 허브의 모든 직접 소비자에게 재생된 경우 변경 사항이 제거됩니다.
제거 임계값에 도달하면 변경 로그가 제거되지 않은 것으로 표시되면 모든 소비자 간의 복제 모니터에서 최대 지연 시간을 확인합니다. 제거 임계값이 무엇인지에 관계없이 모든 소비자가 재생하기 전에 변경 사항을 제거하지 않습니다.