| |
| Sun Java(TM) System Directory Server 5 2004Q2 관리 설명서 | |
10장
디렉토리 데이터 색인화책 색인과 마찬가지로 Directory Server 색인은 검색 문자열을 디렉토리 내용에 대한 참조와 연결하여 검색 속도를 향상시킵니다. 색인은 별도의 데이터베이스 파일에 저장된 속성 값의 테이블로서, 디렉토리의 각 접미어에 대해 개별적으로 작성 및 관리됩니다. 접미어 구성에 색인을 작성하면 서버에서 자동으로 색인을 유지 관리합니다.
색인화 소개, 색인화의 손실과 이점, nsslapd-allidsthreshold 속성에 대한 설명, Directory Server의 성능 향상 방법 등에 대해서는 Directory Server Performance Tuning Guide의 4장, "Tuning Indexing"을 참조하십시오.
이 장은 다음 내용으로 구성되어 있습니다.
색인화에 대한 개요각 접미어에 대한 색인은 해당 데이터베이스 디렉토리의 파일에 저장됩니다. 각 색인 파일에는 지정된 속성에 대해 접미어에 정의된 모든 색인이 포함됩니다. 예를 들어, 일반 이름(cn) 속성에 대해 유지 관리되는 모든 색인은 databaseName_cn.db3 파일에 저장됩니다.
접미어를 초기화하거나 이 장에 설명된 명령을 사용하면 색인 파일이 작성됩니다. 클라이언트 검색 작업 및 내부 작업 중에 서버는 색인에 액세스하여 보다 신속하게 디렉토리 항목을 찾을 수 있습니다. 수정 작업 중에는 디렉토리에서 디렉토리 내용을 업데이트한 후에 색인 파일을 업데이트하여 색인을 유지 관리합니다.
Directory Server 는 다음과 같은 유형의 색인을 지원합니다.
- 있음 색인(pres) - 속성 값에 관계 없이 특정 속성이 있는 모든 항목이 포함됩니다.
- 동일 색인(eq) - 특정 속성 값이 있는 항목을 효율적으로 검색할 수 있습니다.
- 근사 색인(approx) - ~= 필터 연산자를 사용하여 효율적인 "유사 발음" 검색을 제공합니다. 예를 들어, 근사 색인은 이름의 일부나 맞춤법이 틀린 이름을 검색하는 데 유용합니다. Directory Server는 Metaphone Phonetic 알고리즘의 변형을 사용하여 근사 색인에 대한 검색을 수행합니다.
- 하위 문자열 색인(sub) - cn=*john* 또는 cn=john* 같은 속성 값 하위 문자열을 효율적으로 검색합니다. 하지만 각각의 값이 수많은 하위 문자열을 갖기 때문에 유지 관리 손실이 매우 큰 색인입니다.
Directory Server는 색인에서 두 문자의 하위 문자열을 검색할 수 있도록 하위 문자열을 색인화합니다. 따라서 색인을 사용하면 (sn=*ab) 검색 속도는 향상될 수 있지만 (sn=*a) 검색 속도는 향상되지 않습니다. Directory Server는 와일드카드 앞에 한 문자뿐인 이니셜 하위 문자열 검색을 허용하여 최적화를 향상시킵니다. 따라서 하위 문자열 색인이 있는 경우 (sn=a*) 검색 속도는 향상될 수 있지만 (sn=*a) 검색 속도는 향상되지 않습니다. 하위 문자열 색인에 대한 자세한 내용은 Directory Server Performance Tuning Guide의 “Substring Indexes”를 참조하십시오.
시스템 색인
시스템 색인은 삭제하거나 수정할 수 없으며 Directory Server가 효율적으로 정상 작동하는 데 필요합니다. 아래 표에는 모든 접미어에 자동으로 작성되는 시스템 색인이 나와 있습니다.
기본 색인
디렉토리에 새 접미어를 작성하면 서버는 해당 데이터베이스 디렉토리에 기본 색인 집합을 구성합니다. 기본 색인은 사용자의 색인화 요구에 따라 수정할 수 있습니다. 단, 기업의 서버 플러그 인 또는 다른 서버에서 색인화된 특정 속성을 사용하지 않을 경우에만 해당 색인의 구성을 해제할 수 있습니다.
새 접미어를 작성할 때 사용할 기본 색인 집합을 수정하려면 기본 색인 집합 수정을 참조하십시오.
아래 표에는 Directory Server에 미리 구성된 기본 색인이 나와 있습니다.
표 10-2 모든 새 접미어의 기본 색인
속성
동일
있음
하위문자열
용도
cn
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
givenName
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
mailAlternateAddress
X
Sun Java System Messaging Server에서 사용됩니다.
mailHost
X
Sun Java System Messaging Server에서 사용됩니다.
member
X
Sun Java System 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에서도 사용됩니다. 자세한 내용은 참조 무결성 유지를 참조하십시오.
nsCalXItemId
X
X
X
Sun Java System Calendar Server에서 사용됩니다.
nsLIProfileName
X
Sun Java System Messaging Server의 로밍 기능에 사용됩니다.
nsRoleDN
X
역할 기반의 작업 성능을 향상시킵니다.
nswcalCALID
X
Sun Java System Calendar Server에서 사용됩니다.
owner
X
Sun Java System 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에서도 사용됩니다. 자세한 내용은 참조 무결성 유지를 참조하십시오.
pipstatus
X
Sun Java System 서버에서 사용됩니다.
pipuid
X
Sun Java System 서버에서 사용됩니다.
seeAlso
X
Sun Java System 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에서도 사용됩니다. 자세한 내용은 참조 무결성 유지를 참조하십시오.
sn
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
telephoneNumber
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
uid
X
Sun Java System 서버 성능을 향상시킵니다.
uniquemember
X
Sun Java System 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에서도 사용됩니다. 자세한 내용은 참조 무결성 유지를 참조하십시오.
속성 이름 빠른 참조 테이블
아래 표에는 기본 이름(실제 이름)과 별명을 가진 모든 속성이 나와 있습니다. 색인을 작성할 때는 반드시 기본 이름을 사용하십시오.
색인 관리이 절에서는 Directory Server 콘솔과 명령줄에서 특정 속성에 대한 있음, 동일, 근사, 하위 문자열 및 국가별 색인을 작성 및 제거하는 방법에 대해 설명합니다. 가상 목록 보기(VLV) 작업 전에 필요한 별도의 절차에 대해서는 찾아보기 색인 관리를 참조하십시오.
주
색인은 각 접미어별로 작성되기 때문에 모든 접미어 구성에서 새 색인을 작성해야 합니다.
콘솔을 사용하여 새 접미어를 작성하는 경우 기존 접미어의 색인 구성을 복제할 수 있습니다.
새 색인을 작성하기 전에 색인을 유지 관리함으로써 얻을 수 있는 이점과 손실을 비교해 보십시오. 다음과 같은 점에 주의합니다.
- 전화 번호와 같이 주로 숫자가 포함되는 속성에 근사 색인을 사용하는 것은 효율적이지 않으므로 피해야 합니다.
- 이진 속성에 대한 하위 문자열 색인은 제대로 작동하지 않습니다.
- 이진 데이터가 포함될 속성(예: jpegPhoto) 등의 큰 값에 동일 색인을 사용하는 것은 피해야 합니다.
- 색인을 유지 관리하려면 많은 자원이 필요하므로 빈번하게 검색되는 속성만 색인화해야 합니다. 항목을 작성하려면 서버에서 색인화된 모든 속성을 조사하여 새 항목에 포함된 각 속성에 대해 새 색인 항목을 생성해야 하므로 많은 CPU 시간이 소요됩니다.
- 각 색인 파일의 크기는 디렉토리 내용에 비례합니다.
- 색인화되지 않은 속성도 검색 요청에 지정할 수 있지만, 이 경우 검색 유형에 따라 검색 성능이 색인화된 검색보다 훨씬 떨어집니다.
콘솔에서 색인 관리
많은 속성에 대한 색인을 수정 또는 추가하려는 경우 먼저 접미어를 읽기 전용으로 설정한 후에 접미어 내용을 LDIF로 내보내야 합니다. 이렇게 하면 LDIF 파일을 사용하여 접미어를 다시 초기화함으로써 신속하게 접미어를 다시 색인화할 수 있습니다.
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 색인화할 접미어를 선택합니다. 그런 후에 오른쪽 패널에서 색인 탭을 선택합니다.
시스템 색인 테이블은 수정할 수 없습니다. 추가 색인 테이블에서 속성에 대한 색인을 추가, 수정 또는 제거합니다.
- 아직 색인화되지 않은 속성에 대한 색인을 추가하려면 속성 추가 버튼을 누릅니다. 표시되는 대화 상자에서 색인화할 속성을 하나 이상 선택하고 확인을 누릅니다.
추가 색인 테이블에 새 속성이 표시됩니다.
- 특정 속성의 색인을 수정하려면 추가 색인 테이블에서 해당 속성에 대해 유지 관리할 각 색인 유형에 해당하는 확인란을 선택하거나 선택 취소합니다.
- 영어 이외의 언어로 지정된 값을 포함하는 속성에 대한 색인을 작성하려면 사용할 조합 순서 OID를 일치 규칙 필드에 입력합니다.
여러 개의 OID를 공백 없이 쉼표로 구분하여 속성을 여러 언어로 색인화할 수 있습니다. 지원되는 로켈 목록 및 관련된 조합 순서 OID에 대해서는 Directory Server Administration Reference의 5장, "Directory Internationalization Reference"를 참조하십시오.
- 속성에 대한 모든 접미어를 제거하려면 테이블에서 해당 행을 선택하고 속성 삭제 버튼을 누릅니다.
- 저장을 눌러 새 색인 구성을 저장합니다.
속성에 대한 색인을 모두 제거하면 해당 속성에 대한 색인 파일이 제거되고 구성이 완료됩니다. 속성에 대한 색인을 수정했거나 새 색인을 추가한 경우에는 아래 단계에 따라 수행합니다.
- 새 색인을 사용하려면 데이터베이스 파일을 업데이트해야 한다는 경고 대화 상자가 표시됩니다. 접미어를 다시 색인화하거나 다시 초기화할 수 있습니다.
- 한두 개의 색인만 추가 또는 수정했거나 접미어를 계속 사용할 수 있어야 하는 경우에는 접미어를 다시 색인화해야 합니다. 접미어 다시 색인화 버튼을 눌러 다시 색인화 대화 상자를 표시합니다. 기본적으로 색인 구성에 추가했거나 수정한 속성이 선택됩니다. 확인을 눌러 이러한 속성을 다시 색인화합니다. 수백만 개의 항목이 있는 디렉토리의 많은 속성을 다시 색인화하려면 몇 시간이 걸릴 수도 있지만 다시 색인화 중에는 접미어가 항상 온라인 상태를 유지합니다.
- 여러 속성에 대한 색인을 추가 또는 수정했으며 이 접미어에서 내보낸 최근 LDIF 파일이 있는 경우 접미어 초기화 버튼을 누릅니다. 접미어 초기화 대화 상자에서 LDIF 파일의 경로와 이름을 입력하거나 탐색한 다음 확인을 누릅니다. LDIF 파일을 사용하여 접미어가 다시 초기화되고 새 구성에 따라 모든 색인이 작성됩니다. 디렉토리 크기에 따라 대체로 접미어를 다시 초기화하는 것이 두 개 이상의 속성을 다시 색인화하는 것보다 속도가 더 빠르지만 초기화 중에는 접미어를 사용할 수 없다는 단점이 있습니다.
- 접미어를 다시 색인화하거나 다시 초기화하지 않아도 모든 데이터를 계속 사용할 수는 있지만 새 색인이 작성되지 않으며 디렉토리 액세스 성능이 향상되지 않습니다.
명령줄에서 색인 관리
명령줄에서 색인을 작성하거나 수정하려면 다음 두 단계를 수행해야 합니다.
색인 구성 항목 작성
아직 색인화되지 않은 속성에 대한 색인을 작성하려면 해당 데이터베이스의 구성에 이 속성에 대한 새 항목을 작성해야 합니다.
색인 구성 항목의 DN은 다음과 같습니다.
cn=attributeName,cn=index,cn=databaseName,cn=ldbm database,
cn=plugins,cn=config여기서 databaseName은 색인을 작성할 접미어에 해당하는 데이터베이스 이름입니다. 예를 들어, 아래 명령은 프랑스어의 sn (성) 속성 값에 대한 있음, 동일, 하위 문자열 및 "유사 발음" 색인을 작성합니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=sn,cn=index,cn=databaseName,cn=ldbm database,
cn=plugins,cn=config
objectClass: top
objectClass: nsIndex
cn: sn
nsSystemIndex: false
nsIndexType: pres
nsIndexType: eq
nsIndexType: sub
nsIndexType: approx
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.76.1
^D색인 구성 항목에는 nsIndex 객체 클래스가 있으며, nsSystemIndex 속성이 존재하고 해당 속성 값이 false여야 합니다. 새 시스템 색인은 작성할 수 없습니다. Directory Server에서 내부적으로 정의한 기존의 시스템 색인만 유지 관리됩니다.
nsIndexType 속성 값은 지정된 속성에 대해 유지 관리될 색인을 열거합니다. 위에 제공된 값 중 하나를 사용하여 해당 색인을 정의합니다.
속성 색인화를 일시적으로 비활성화하기 위해 none 값만 사용하여 해당 속성에 대한 색인을 명시적으로 비활성화할 수도 있습니다. 색인 구성 항목에 nsIndexType 속성을 추가하지 않으면 기본적으로 모든 색인이 유지 관리됩니다.
선택 사항인 nsMatchingRule 속성에는 국가별 색인의 언어 조합 순서 OID가 포함됩니다. 지원되는 로켈 목록 및 관련된 조합 순서 OID에 대해서는 Directory Server Administration Reference의 5장, "Directory Internationalization Reference"를 참조하십시오.
색인 구성 속성에 대한 자세한 내용은 Directory Server Administration Reference의 2장, "Default Index Attributes"를 참조하십시오.
주
색인을 작성할 때는 항상 속성의 별명이 아닌 기본 이름을 사용해야 합니다. 기본 속성 이름은 스키마에서 해당 속성에 지정된 이름입니다(예: userid 속성의 경우 uid). 속성의 기본 이름 및 별명 목록은 표 10-3을 참조하십시오.
색인 구성 항목 수정
속성에 대해 이미 정의된 색인을 구성하려면 해당 색인 항목을 수정합니다. 예를 들어, 이전에 정의한 sn 색인 구성에 대해 아래 명령을 실행하면 "유사 발음" 색인이 제거되고 언어가 캐나다 프랑스어로 변경됩니다.
ldapmodify -h host -p port -D "cn=Directory Manager" -w password
dn: cn=sn,cn=index,cn=databaseName,cn=ldbm database,
cn=plugins,cn=config
changetype: modify
delete: nsIndexType
nsIndexType: approx
-
replace: nsMatchingRule
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.78.1
^Ddb2index-task 실행
색인화 항목을 새로 작성했거나 기존 색인화 항목에 다른 색인 유형을 추가했거나 색인화 항목의 조합 순서를 수정한 경우 directoryserver db2index-task 명령을 실행하여 새 색인을 생성합니다. 이 명령은 접미어 내용을 읽은 후에 해당 구성 항목에 따라 지정된 속성을 다시 색인화합니다.
명령을 실행하는 동안에도 서버를 통해 계속 접미어 내용을 사용할 수 있지만 명령이 완료될 때까지는 검색이 색인화되지 않습니다. 다시 색인화하려면 상당한 자원이 필요하므로 서버의 다른 작업 성능이 저하될 수 있습니다. 디렉토리 크기에 따라 대체로 접미어를 다시 초기화하는 것이 두 개 이상의 속성을 다시 색인화하는 것보다 속도가 더 빠르지만 초기화 중에는 접미어를 사용할 수 없다는 단점이 있습니다. 자세한 내용은 접미어 다시 초기화를 참조하십시오.
아래 예에서는 databaseName에 해당하는 접미어의 sn 색인을 다시 생성합니다.
# /usr/sbin/directoryserver db2index-task
-D "cn=Directory Manager" -w password -n databaseName -t sn자세한 내용은 Directory Server Administration Reference의 1장, "db2index-task"를 참조하십시오.
특정 속성에 대한 모든 색인 삭제
특정 속성에 대해 구성된 모든 색인을 제거하려면 해당 구성 항목과 데이터베이스 파일을 제거할 수 있습니다. 예를 들어, 아래 명령은 databaseName 데이터베이스의 sn 속성에 대한 모든 색인의 구성을 해제합니다.
ldapdelete -h host -p port -D "cn=Directory Manager" -w password \
"cn=sn,cn=index,cn=databaseName,cn=ldbm database,cn=plugins, \
cn=config"이 항목을 삭제하면 databaseName 데이터베이스에 해당하는 접미어의 sn 속성에 대한 색인이 유지 관리되지 않습니다. 디스크 공간을 절약하려면 서버에서 더 이상 사용하지 않는 해당 색인 파일을 삭제할 수도 있습니다. 이 예에서는 아래 파일을 삭제할 수 있습니다.
ServerRoot/slapd-serverID/db/databaseName/databaseName_sn.db3
접미어 다시 색인화
색인 파일이 손상되면 접미어를 다시 색인화하여 해당 데이터베이스 디렉토리에 색인 파일을 다시 작성해야 합니다. Directory Server 콘솔을 사용하여 접미어를 다시 색인화하려면 다시 색인화하거나 다시 초기화하는 두 가지 방법이 있습니다.
접미어 다시 색인화
접미어를 다시 색인화하면 서버는 포함된 모든 항목을 조사하여 색인 파일을 다시 구성합니다. 다시 색인화하는 동안에도 접미어 내용을 읽기 및 쓰기 작업에 사용할 수 있습니다. 하지만 전체 접미어에서 다시 색인화되는 각 속성을 검사해야 하므로 구성하는 색인에 따라 수백만 개의 항목이 있는 접미어의 경우 작업에 몇 시간이 걸릴 수도 있습니다. 또한 다시 색인화하는 동안에는 색인을 사용할 수 없으며 서버 성능이 저하됩니다.
콘솔을 사용하여 접미어를 다시 색인화하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 구성 탭에서 데이터 노드를 확장하여 다시 색인화할 접미어를 표시합니다.
- 접미어 구성 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 다시 색인화를 선택합니다. 또는 노드를 마우스 왼쪽 버튼으로 눌러 선택한 다음 객체 메뉴에서 다시 색인화를 선택할 수도 있습니다.
선택한 접미어에 색인화된 모든 속성 목록이 있는 접미어 다시 색인화 대화 상자가 표시됩니다.
- 다시 색인화할 각 속성 옆에 있는 확인란을 선택합니다. 모두 선택 및 선택 안 함 버튼을 사용하면 원하는 항목을 쉽게 선택할 수 있습니다. 지정된 속성에 대한 모든 색인은 한 개의 데이터베이스 파일에 저장되므로 모든 색인을 동시에 다시 색인화해야 합니다.
- 확인을 누릅니다. 예상치 못한 검색 결과 및 다시 색인화하는 동안 성능에 미치는 영향에 대한 확인 메시지가 콘솔에 표시됩니다.
- 예를 눌러 다시 색인화를 시작합니다.
다시 색인화에 대한 모든 메시지가 포함된 대화 상자가 콘솔에 표시됩니다. 작업이 끝나면 대화 상자를 닫습니다.
명령줄에서 접미어를 다시 색인화하려면 db2index-task 실행에 설명된 지침에 따라 색인 파일을 다시 구성할 모든 속성을 지정합니다.
접미어 다시 초기화
접미어를 다시 초기화하는 경우 새 내용을 가져오면 해당 내용이 바뀌고 새 색인 파일이 작성됩니다. 항목을 로드하면 모든 속성이 한 번에 색인화되므로 대체로 접미어를 다시 초기화하는 것이 두 개 이상의 속성을 다시 색인화하는 것보다 속도가 더 빠르지만 다시 초기화하는 동안에는 접미어를 사용할 수 없다는 단점이 있습니다.
아래 단계는 모두 Directory Server 콘솔이나 명령줄에서 수행할 수 있습니다.
- 액세스 권한 및 참조 설정에 설명된 것처럼 접미어를 읽기 전용으로 설정합니다. 내보내기 후에 내용이 수정되지 않도록 먼저 접미어에 쓰기 금지를 설정해야 합니다.
- 콘솔에서 개별 접미어를 LDIF로 내보내기에 설명된 것처럼 전체 접미어를 LDIF 파일로 내보냅니다.
- 접미어 초기화에 설명된 것처럼 이 LDIF 파일을 가져와서 접미어를 다시 초기화합니다.
초기화하는 동안에는 접미어를 사용할 수 없습니다. 초기화가 끝나면 구성된 모든 색인을 사용할 수 있습니다.
- 액세스 권한 및 참조 설정에 설명된 것처럼 접미어에 대한 쓰기를 다시 허용합니다.
기본 색인 집합 수정
새 접미어를 작성할 때 사용되는 기본 색인 집합은 아래 항목에 정의됩니다.
cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config
콘솔이나 명령줄에서 접미어를 작성하면 기본 색인 정의 항목이 있는 그대로 복사되어 해당 데이터베이스의 초기 색인 구성이 됩니다.
기본 색인 집합은 명령줄 유틸리티에서만 구성할 수 있습니다. 기본 색인 항목은 명령줄에서 색인 관리에 설명된 색인 구성 항목과 동일한 구문을 사용합니다. 예를 들어, 기본 색인 구성 항목을 추가하려면 아래의 ldapmodify 명령을 사용할 수 있습니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=drink,cn=default indexes,cn=config,cn=ldbm database,
cn=plugins,cn=config
objectClass: top
objectClass: nsIndex
cn: drink
nsSystemIndex: false
nsIndexType: eq
nsIndexType: sub
nsMatchingRule: 1.3.6.1.4.1.42.2.27.9.4.76.1
^D이 항목을 추가하면 프랑스어의 동일 검색 및 하위 문자열 검색에 대해 색인화된 drink 속성 값이 모든 새 접미어에 포함됩니다.
기본 색인 항목을 수정 또는 삭제하려면 ldapmodify 또는 ldapdelete 명령을 사용하여 cn=default indexes,cn=config,cn=ldbm database,cn=plugins,cn=config에 있는 색인 집합을 편집합니다.
찾아보기 색인 관리찾아보기 색인은 서버측 정렬이나 가상 목록 보기(VLV) 결과를 요청하는 검색 작업에만 사용되는 특수 색인입니다. 찾아보기 색인을 사용하면 다수 검색 결과의 서버측 정렬을 요청하는 검색 성능을 향상시킬 수 있습니다. 찾아보기 색인이 정의되어 있지 않을 경우 디렉토리 구성에 따라 서버에서 정렬을 요청하는 검색을 수행하지 않는 경우도 있습니다. 이렇게 하면 대규모 정렬 작업으로 인한 서버 자원의 소모를 방지할 수 있습니다.
찾아보기 색인은 검색 기본 항목에 적용되며 정렬 요청에 사용되는 각 검색 필터에 대해 별도의 색인을 작성해야 합니다. 예를 들어, 클라이언트 응용 프로그램이 모든 사용자의 정렬 목록을 자주 요청하는 경우 클라이언트가 사용한 필터 문자열의 ou=People에 대해 찾아보기 색인을 작성할 것입니다.
다른 색인과 마찬가지로 찾아보기 색인을 유지 관리하기 위한 업데이트 작업 중에도 성능 손실이 발생합니다. 찾아보기 색인을 배포할 경우 신중하게 계획하고 테스트해야 합니다.
콘솔에 대한 찾아보기 색인
Directory Server 콘솔은 전체 디렉토리에 대한 검색을 자주 수행하여 패널 내용을 갱신합니다. 디렉토리 트리 보기 옵션에 설명된 것처럼 디렉토리 트리 항목을 정렬하도록 콘솔을 구성한 경우 콘솔에 대한 찾아보기 색인을 작성해야 합니다.
콘솔에 대한 찾아보기 색인은 콘솔에서 수행하는 각 검색별로 작성되며 콘솔을 사용하여 작성할 수도 있습니다. 콘솔에 대한 찾아보기 색인을 작성하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 디렉토리 탭에서 디렉토리 트리를 탐색하여 정렬해야 하는 대규모 하위 트리의 부모(예: 수천 개의 사용자 항목이 있는 ou=People,dc=example,dc=com)를 표시합니다.
- 부모 항목을 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 찾아보기 색인 만들기를 선택합니다. 또는 항목을 왼쪽 마우스 버튼으로 눌러 선택한 다음 객체 메뉴에서 찾아보기 색인 만들기를 선택합니다.
찾아보기 색인 만들기 대화 상자가 표시되어 색인 작성 상태를 보여줍니다. 콘솔은 아래에 표시된 찾아보기 색인 구성 항목을 작성하고 색인 파일의 내용을 생성합니다.
- 닫기를 눌러 찾아보기 색인 만들기 대화 상자를 닫습니다.
새 색인은 콘솔 갱신 작업 시 즉시 활성화되고 디렉토리에 새 데이터가 추가될 때마다 유지 관리되므로 서버를 다시 시작할 필요가 없습니다.
콘솔에 대한 찾아보기 색인 구성은 다음과 같은 항목으로 이루어져 있습니다. vlvSearch 항목은 색인화할 검색의 기본 항목, 범위 및 필터를 정의합니다. vlvIndex 항목의 vlvSort 속성은 정렬이 지원되는 속성을 정렬되는 순서대로 표시합니다.
dn: cn=MCC entryDN,cn=databaseName,cn=ldbm database,
cn=plugins,cn=config
objectClass: top
objectClass: vlvSearch
cn: MCC entryDN
vlvBase: "entryDN"
vlvScope: 1
vlvFilter: (|(objectclass=*)(objectclass=ldapsubentry))
dn: cn=by MCC entryDN, cn=MCC entryDN,cn=databaseName,
cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvIndex
cn: by MCC entryDN
vlvSort: cn givenname o ou sn uidDirectory Server 콘솔에 대한 찾아보기 색인을 삭제하려면 다음을 수행합니다.
클라이언트 검색에 대한 찾아보기 색인
클라이언트 검색 결과 정렬에 대해 사용자 정의된 찾아보기 색인은 수동으로 정의해야 합니다. 명령줄에서 찾아보기 색인, 즉 가상 목록 보기(VLV) 색인을 작성하려면 다음 두 단계를 수행해야 합니다.
찾아보기 색인 항목 지정
찾아보기 색인은 지정된 기본 항목 및 해당 하위 트리별로 작성됩니다. 또한 찾아보기 색인 구성은 이 항목이 포함된 접미어의 데이터베이스 구성에 정의됩니다.
찾아보기 색인은 두 개의 항목으로 구성됩니다. 첫 번째 항목은 vlvSearch 객체 클래스를 사용하며 색인화할 검색의 기본 항목, 범위 및 필터를 지정합니다. 두 번째 항목은 첫 번째 항목의 자식으로, vlvIndex 객체 클래스를 사용하여 정렬할 속성 및 정렬 순서를 지정합니다.
아래 예에서는 ldapmodify 유틸리티를 사용하여 두 개의 찾아보기 색인 구성 항목을 작성합니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=Browsing ou=People, cn=databaseName,
cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvSearch
cn: Browsing ou=People
vlvbase: ou=People,dc=example,dc=com
vlvscope: 1
vlvfilter: (objectclass=inetOrgPerson)
dn: cn=Sort rev employeenumber, cn=Browsing ou=People,
cn=databaseName,cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvIndex
cn: Sort rev employeenumber
vlvSort: -employeenumber
^Dvlvscope는 기본 항목만 검색하는 경우 0, 기본 항목의 직계 자식의 경우 1, 기본 항목을 루트로 하는 전체 하위 트리의 경우 2로 지정됩니다. vlvfilter는 클라이언트 검색 작업에 사용할 LDAP 필터입니다. 찾아보기 색인 항목은 모두 같은 위치에 있으므로 항목을 설명하는 cn 값을 사용하여 찾아보기 색인 이름을 지정해야 합니다.
각각의 vlvSearch 항목에는 vlvIndex 항목이 한 개 이상 있어야 합니다. vlvSort 속성은 정렬 기준으로 사용할 속성 및 정렬 순서를 정의하는 속성 이름 목록입니다. 속성 이름 앞에 대시(-)가 있으면 역순서를 나타냅니다. 여러 개의 vlvIndex 항목을 정의하여 검색에 하나 이상의 색인을 정의할 수도 있습니다. 이전 예에서는 아래 항목을 추가할 수 있습니다.
ldapmodify -a -h host -p port -D "cn=Directory Manager" -w password
dn: cn=Sort sn givenname uid, cn=Browsing ou=People,
cn=databaseName,cn=ldbm database,cn=plugins,cn=config
objectClass: top
objectClass: vlvIndex
cn: Sort sn givenname uid
vlvSort: sn givenname uid
^D찾아보기 색인 구성을 수정하려면 해당 vlvSearch 항목이나 vlvIndex 항목을 편집합니다. 서버에서 유지 관리하지 않도록 찾아보기 색인을 제거하려면 개별 vlvIndex 항목을 제거하거나, 이 항목이 하나뿐인 경우 vlvSearch 항목과 vlvIndex 항목을 모두 제거합니다. vlvIndex 항목을 제거할 때 해당 데이터베이스 파일도 제거할 수 있습니다. 예를 들면 다음과 같습니다.
ServerRoot/slapd-serverID/db/dbName/dbName_vlv#Sortsngivennameuid.db3
vlvindex 명령 실행
찾아보기 색인 항목을 새로 작성했거나 기존 항목을 수정한 경우 directoryserver vlvindex 명령을 실행하여 새 찾아보기 색인 집합을 생성해야 합니다. 이 명령은 디렉토리 내용을 검사하여 찾아보기 색인용 데이터베이스 파일을 작성합니다.
찾아보기 색인을 생성하려면 아래 명령을 실행합니다.
아래 예에서는 이전 절에서 정의한 찾아보기 색인을 생성합니다.
# /usr/sbin/directoryserver vlvindex -n databaseName -T "Browsing ou=People"
표 10-4 위의 예에 사용된 vlvindex 옵션에 대한 설명
옵션
설명
-n
색인화할 항목이 있는 데이터베이스 이름을 지정합니다.
-T
해당 찾아보기 색인의 vlvSearch 항목에 포함된 이름 지정 속성 값을 지정합니다.
지정된 vlvSearch 항목의 vlvIndex 항목에 해당하는 모든 색인이 생성됩니다.자세한 내용은 Directory Server Administration Reference의 1장, "vlvindex"를 참조하십시오.