19장. 일반적인 복제 문제 해결
다중 제공 복제에서는 결국 일관성 복제 모델을 사용합니다. 즉, 다른 서버에서 동일한 항목을 변경할 수 있습니다. 이러한 두 서버 간에 복제가 발생하면 Directory Server에서 충돌하는 변경 사항을 해결해야 합니다. 대부분의 경우 각 서버의 변경과 관련된 타임 스탬프에 따라 해상도가 자동으로 수행됩니다. 가장 최근의 변경 사항은 priority입니다. 그러나 문제 해결에 도달하기 위해 수동으로 개입해야 하는 경우도 있습니다.
19.1. 이름 충돌 식별 및 해결
사용자가 복제 중에 다른 서버에서 동일한 고유 이름(DN)을 사용하여 두 개의 항목을 생성하면 자동 충돌 해결 프로시저가 DN의 항목 고유 식별자를 포함하여 생성된 마지막 항목을 변경합니다. 모든 디렉터리 항목에는 nsuniqueid operational 속성에 저장된 고유 식별자가 포함됩니다. 이름 지정 충돌이 발생하면 복제 절차에서는 이 고유 ID를 고유하지 않은 DN에 추가합니다.
예를 들어 uid=user_name,ou=People,dc=example,dc=com 항목이 두 개의 다른 서버에서 생성된 경우 복제는 생성된 마지막 항목의 DN에 고유 ID를 추가합니다. 즉, 다음 항목이 있습니다.
-
uid=user_name,ou=People,dc=example,dc=com -
asuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com
절차
충돌 항목을 나열합니다.
#
dsconf -D "cn=Directory Manager" ldap://server.example.com repl-conflict list dc=example,dc=comdn: nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=people,dc=example,dc=com cn: user_name displayName: user gidNumber: 99998 homeDirectory: /var/empty legalName: user name loginShell: /bin/false nsds5replconflict: namingConflict (ADD) uid=user_name,ou=people,dc=example,dc=com objectClass: top objectClass: nsPerson objectClass: nsAccount objectClass: nsOrgPerson objectClass: posixAccount objectClass: ldapsubentry uid: user_name uidNumber: 99998이 경우 Directory Server가 첫 번째 항목을 복제하기 전에 두 개의 다른 서버에서 사용자가 수동으로 생성되었습니다.
충돌 항목이 있는 경우 진행 방법을 결정합니다.
유효한 항목(
uid=user_name,ou=People,dc=example,dc=com)만 유지하고 conflict 항목을 삭제하려면 다음을 입력합니다.#
dsconf -D "cn=Directory Manager" ldap://server.example.com repl-conflict delete nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com충돌 항목 (
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 swap nsuniqueid=a7f1758b-512211ec-b115e2e9-7dc2d46b+uid=user_name,ou=People,dc=example,dc=com두 항목을 유지하려면 새로운 상대적 고유 이름(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이 명령은 충돌 항목의 이름을
uid=user_name_NEW,ou=People,dc=example,dc=com으로 변경합니다.