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