Table of Contents
ToggleOID/DIP 동기화 진단: orclodipConDirLastAppliedChgNum으로 미처리 변경 확인
이 가이드는 언제 유용한가요?
OID/DIP 동기화가 지연될 때 프로파일 방향, 변경 번호의 출처, 처리 로그를 나누어 확인하는 방법을 정리합니다. Oracle 11g 문서에서 orclodipConDirLastAppliedChgNum은 연결 디렉터리에서 OID로 가져오는 import의 처리 지점입니다. OID 자체 changelog 번호와 바로 비교할 수 없습니다. 아래 원래 명령은 설치 버전·클라이언트 문법·번호 체계가 검증되지 않은 예시이며, 그대로 실행하지 마세요.
- AD↔OID 동기화 지연이 발생할 때
- DIP 프로세스가 STARTING/Running인데 변화가 없을 때
- 로그에 명확한 단서가 적을 때
welcome1을 사용하지 마세요. -w 인수는 환경 변수로 바꿔도 프로세스 인수 등에 비밀번호가 노출될 수 있습니다. 설치 버전에 맞는 인증 방식과 TLS 연결을 확인해야 하며, 3060 접속을 암호화된 연결로 가정하지 마세요.
🔧 OID/DIP 진단 Playbook
원래 명령을 담은 검토용 템플릿입니다. import/export 번호 체계, 인증·문법, 리셋 절차가 검증되지 않았으므로 다운로드 파일을 그대로 실행하지 마세요.
Playbook 다운로드1. 프로파일 DN 찾기
프로파일은 어느 디렉터리의 변경을 어디로 전달할지 정한 동기화 설정입니다. 처리 지점의 숫자를 읽기 전에 대상 프로파일과 방향부터 확인해야 합니다.
먼저 대상 인스턴스와 프로파일 엔트리의 정확한 DN을 확인합니다. import는 연결 디렉터리→OID, export는 OID→연결 디렉터리이므로 방향과 커넥터를 함께 기록합니다.
dn:은 해당 프로파일 조회의 기준입니다. changelog와 rootDSE 조회는 별도 검색 기준을 사용하므로 모든 명령의 base DN으로 대입하지 않습니다.
# "subscriber profile" 아래의 프로파일 목록에서 DN만 추출
ldapsearch -LLL -h dip11g -p 3060 \
-D cn=orcladmin -w welcome1 \
-b "cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" \
-s one "(objectClass=orclodipagentprofile)" dn
2. orclodipConDirLastAppliedChgNum 읽기
Oracle 11g 문서에서 이 속성은 import 시 연결 디렉터리의 변경을 OID에 적용한 처리 지점입니다. OID export의 처리 번호와는 구분해야 하며, 설치 버전과 커넥터별 의미를 먼저 확인합니다.
cn=changelog의 번호를 단순 비교하지 마세요. 같은 변경 스트림이어도 필터·매핑·처리 상태를 확인해야 미처리 여부를 판단할 수 있습니다.
ldapsearch -LLL -h dip11g -p 3060 \
-D cn=orcladmin -w welcome1 \
-b "orclodipagentname=MsadSyncProfile,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" \
-s base "(objectClass=*)" orclodipConDirLastAppliedChgNum
쉘 변수 캡처 예제 — 출력과 자료형 검증 필요
LAST=$(ldapsearch -LLL -h dip11g -p 3060 \
-D cn=orcladmin -w welcome1 \
-b "orclodipagentname=MsadSyncProfile,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" \
-s base "(objectClass=*)" orclodipConDirLastAppliedChgNum |
awk '/orclodipcondirlastappliedchgnum:/ {print $2}')
echo "LAST = ${LAST}"
49204와 49205는 같은 숫자 기반 변경 스트림이라고 검증된 경우의 예시입니다. 예제의 awk는 출력 속성명의 대소문자에 따라 빈 값을 만들 수 있습니다. 조회 성공·값의 형식·출처를 확인하기 전에는 LAST+1 연산을 하지 마세요.
3. changelog 비교 전에 방향과 번호 체계 확인
cn=changelog는 OID의 변경 기록입니다. 연결 디렉터리 import 처리 지점과 직접 비교하는 아래 예제는 일반적인 진단법으로 사용할 수 없습니다. 설치 버전의 프로파일 속성·검색 스키마를 확인한 뒤 같은 변경 스트림만 대조합니다.
chgNumber와 반환 속성 changeNumber가 설치 스키마에 맞는지도 별도 검증해야 합니다.
# LAST가 49204라면, 49205 이상이 존재하는지 1건만 확인
ldapsearch -LLL -h dip11g -p 3060 -D cn=orcladmin -w welcome1 \
-b "cn=changelog" "(chgNumber>=$((LAST+1)))" changeNumber -z 1
4. (선택) OID 변경 번호의 범위와 조회 조건 확인
OID 변경 기록을 진단하는 경우에는 rootDSE 속성 지원 여부와 changelog 보존 범위를 확인합니다. 아래 최신 항목 조회의 정렬 옵션도 LDAP 클라이언트에 따라 다르므로 검증 전에는 최대값 조회로 받아들이지 않습니다.
4-1. 루트 엔트리의 lastChangeNumber
ldapsearch -LLL -h dip11g -p 3060 \
-D "cn=orcladmin" -w welcome1 \
-b "" -s base "(objectClass=*)" lastChangeNumber
4-2. changelog 정렬 조회 예제 — 클라이언트 문법 검증 필요
ldapsearch -LLL -h dip11g -p 3060 -D cn=orcladmin -w welcome1 \
-b "cn=changelog" -s one "(objectClass=*)" changeNumber -S changeNumber:desc -z 1
5. 권장 점검 / 조치 체크리스트
- 프로파일 속성: import/export 방향과 LAST의 출처를 먼저 확인합니다. 같은 변경 스트림·숫자 형식·검색 스키마가 검증되기 전에는
(chgNumber >= LAST+1)예제를 사용하지 않습니다 - Sync 모드/컨트롤: 설치 버전에서
orclodipSynchronizationMode,orclodipAgentControl의 의미와 프로파일 상태·예약 주기·재시도 정책·필터·매핑을 대조합니다 - DIP Reader 로그:
Searching changelog with base=cn=changelog는 원문의 예시 키워드입니다. 로그 수준·회전·대상 프로파일·시각을 확인하고 조회 및 적용 결과를 함께 추적합니다 - 강제 리셋(주의): LAST 하향 변경을 일반 해결책으로 사용하지 않습니다. 설치 버전의 지원 절차, 재처리 범위와 복구 계획이 확인된 경우에만 별도 승인된 변경으로 다룹니다
- Replication 부하:
oidmon -cmd showreplmon은 지원 여부가 확인되지 않은 원문 예제입니다. 설치 버전의 지원 도구와 시각이 일치하는 지표로 경합 여부를 확인합니다
6. 처리 지점 변경의 위험과 지원 절차 확인
처리 지점 변경은 디렉터리 데이터의 롤백이 아닙니다. Oracle 11g 문서는 동기화 상태 속성의 임의 변경을 권장하지 않습니다. 아래 LDIF·ldapmodify는 지원 여부가 확인되지 않은 원문 예제로 보존한 것이며, 그대로 적용하지 마세요.
6-1. 현재 프로파일 엔트리 백업(LDIF)
ldapsearch -LLL -h dip11g -p 3060 -D "cn=orcladmin" -w welcome1 \
-b "orclodipagentname=MsadSyncProfile,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory" \
-s base "(objectClass=*)" \* + > MsadSyncProfile_backup.ldif
6-2. 원문 LDIF 예제 — 지원 절차 확인 전 적용 금지
dn: orclodipagentname=MsadSyncProfile,cn=subscriber profile,cn=changelog subscriber,cn=oracle internet directory
changetype: modify
replace: orclodipConDirLastAppliedChgNum
orclodipConDirLastAppliedChgNum: 49200
6-3. 원문 적용 명령 — 실행하지 않는 검토 예제
ldapmodify -h dip11g -p 3060 -D "cn=orcladmin" -w welcome1 -f reset_last.ldif
49200은 안전한 권장값이 아니며, 재기동 로그 한 줄만으로 정상화를 판정하지 않습니다.
7. DIP Reader 디버깅 팁
대상 프로파일과 시각을 맞춰 조회 시도, 읽기 결과, 매핑·적용 결과를 구분합니다. import 커넥터가 어떤 변경 출처를 읽는지도 먼저 확인합니다.
Searching changelog with base=cn=changelog가 없어도 질의가 없었다고 단정할 수 없습니다. 버전·로그 수준·회전·대상 프로세스를 확인해야 합니다. 키워드가 있어도 조회 성공이나 적용 완료를 입증하지는 않습니다.
- 원문 JPS 보안 디버그 옵션
-Doracle.security.jps.debug=true은 DIP Reader 추적을 보장하지 않습니다. 설치 버전의 로깅 절차와 민감 정보 처리·종료 기준을 확인하기 전에는 활성화하지 않습니다 - 로그 키워드:
Searching changelog with base=cn=changelog - 권한 문제: 실제 프로파일 바인드 계정의 조회·적용 권한과 오류를 확인합니다. 예시 orcladmin 계정과 운영 계정을 혼동하지 않습니다
- 연결 문제: 해당 프로파일의 출발·도착 디렉터리, 리스너·TLS·연결 오류를 구분합니다. 지연만으로 네트워크 원인을 단정하지 않습니다
