20장. 일반적인 복제 문제 해결
다중 제공 복제는 결국 일관성 복제 모델을 사용합니다. 즉, 다른 서버에서 동일한 항목을 변경할 수 있습니다. 이 두 서버 간에 복제가 발생하는 경우 Directory Server는 충돌하는 변경 사항을 해결해야 합니다. 대부분의 경우 각 서버에서 변경과 관련된 타임스탬프에 따라 해상도가 자동으로 수행됩니다. 최근의 변경 사항은 우선 순위가 있습니다. 그러나 해결 조치에 도달하기 위해 충돌이 수동 개입이 필요한 경우도 있습니다.
20.1. 이름 지정 충돌 식별 및 해결 링크 복사링크가 클립보드에 복사되었습니다!
여러 공급업체 서버가 동일한 고유 이름(DN)으로 항목을 생성하라는 요청을 수신하면 각 서버는 이 DN과 다른 입력 고유 식별자(입력 ID)를 사용하여 항목을 생성합니다. 항목 ID는 nsuniqueid
운영 특성에 저장됩니다.
예를 들어 서버 A
및 서버 B
는 uid=user_name,ou=people,dc=example,dc=com
사용자 항목을 생성하라는 요청을 받습니다. 결과적으로 각 서버에는 자체 항목이 있습니다.
서버 A에서 항목에는 다음이 있습니다.
-
uid=user_name,ou=people,dc=example,dc=com
-
nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b
-
서버 B에서 항목에는 다음이 있습니다.
-
uid=user_name,ou=people,dc=example,dc=com
-
nsuniqueid=643a461e-b61311e1-b23be826-4afeed5f
-
복제하는 동안 서버 A
는 새로 생성된 항목 uid=user_name,ou=people,dc=example,dc=com
을 서버 B
로 복제하고 서버 B
복제는 서버 A
에 새로 생성된 항목을 복제하고 각 서버에서 이름 충돌이 발생합니다. 변경 시퀀스 번호(CSN)를 비교하면 각 서버는 이전에 생성된 항목을 결정합니다. 예를 들어 서버 B
의 항목이 이전에 생성되었습니다.
자동 충돌 해결 절차에서는 생성된 마지막 항목( 서버 A
의 항목)을 다음과 같은 방식으로 변경합니다.
-
고유하지 않은 DN에
nsuniqueid
값을 추가합니다. -
충돌이 발생한 설명에
nsds5replconflict
속성을 추가합니다. -
ldapsubentry
오브젝트 클래스를 추가합니다.
이제 두 서버에 다음 항목이 있습니다.
다음을 포함하는 유효한 항목
-
uid=user_name,ou=people,dc=example,dc=com
-
nsuniqueid=643a461e-b61311e1-b23be826-4afeed5f
-
다음과의 충돌 항목
-
nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=people,dc=example,dc=com
-
nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b
-
이름 지정 충돌을 수동으로 해결하려면 각 서버에서 다음 절차를 사용하십시오.
프로세스
충돌 항목을 나열합니다.
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 충돌 항목이 있는 경우 진행 방법을 결정합니다.
유효한 항목(
uid=user_name,ou=people,dc=example,dc=com
)만 유지하고 충돌 항목을 삭제하려면 다음을 입력합니다.dsconf <instance_name> repl-conflict delete nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com
# dsconf <instance_name> repl-conflict delete nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 충돌 항목(
nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com
)만 계속하려면 다음을 입력합니다.dsconf <instance_name> repl-conflict swap nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com
# dsconf <instance_name> repl-conflict swap nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 두 항목을 모두 유지하려면 새 상대 고유 이름(RDN)을 지정하여 충돌 항목의 이름을 변경합니다.
dsconf -D "cn=Directory Manager" ldap://server.example.com repl-conflict convert --new-rdn=uid=user_name_NEW nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=people,dc=example,dc=com
# dsconf -D "cn=Directory Manager" ldap://server.example.com repl-conflict convert --new-rdn=uid=user_name_NEW nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=people,dc=example,dc=com
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 이 명령은 충돌 항목의 이름을
uid=user_name_NEW,ou=people,dc=example,dc=com
으로 변경합니다.
Directory Server는 충돌 항목에서 수행되는 LDAP 작업을 복제합니다. 일반적으로 복제된 작업은 작업 dn
을 사용하는 대신 원래 작업 항목의 nsuniqueid
를 사용하여 항목을 대상으로 합니다. 그러나 충돌 항목이 있는 경우 동작이 다를 수 있습니다.