|
|
| Sun ONE Directory Server 관리 설명서 |
책 색인과 마찬가지로 Directory Server 색인은 검색 문자열을 디렉토리 내용에 대한 참조와 연결하여 검색 속도를 향상시킵니다. 색인은 별도의 데이터베이스 파일에 저장된 속성 값의 테이블로서, 디렉토리의 각 접미사에 대해 개별적으로 작성 및 관리됩니다. 접미사 구성에 색인을 작성하면 서버에서 자동으로 색인을 유지관리합니다.
색인화 소개, 색인화의 손실과 이점, nsslapd-allidsthreshold 속성에 대한 설명, Directory Server의 성능 향상 방법 등에 대해서는 Sun ONE Directory Server 설치 및 조정 설명서의 7장, "색인화 조정"을 참조하십시오.
이 장은 다음 내용으로 구성되어 있습니다.
색인화에 대한 개요
각 접미사에 대한 색인은 해당 데이터베이스 디렉토리의 파일에 저장됩니다. 각 색인 파일에는 지정된 속성에 대해 접미사에 정의된 모든 색인이 포함됩니다. 예를 들어, 일반 이름(cn) 속성에 대해 유지관리되는 모든 색인은 databaseName_cn.db3 파일에 저장됩니다.
접미사를 초기화하거나 이 장에 설명된 명령을 사용하면 색인 파일이 작성됩니다. 클라이언트 검색 작업 및 내부 작업 중에 서버는 색인에 액세스하여 보다 신속하게 디렉토리 항목을 찾을 수 있습니다. 수정 작업 중에는 디렉토리에서 디렉토리 내용을 업데이트한 후에 색인 파일을 업데이트하여 색인을 유지관리해야 합니다.
Directory Server는 다음과 같은 유형의 색인을 지원합니다.
- 있음 색인(pres) - 속성 값에 관계 없이 특정 속성이 있는 모든 항목이 포함됩니다.
- 동일 색인(eq) - 특정 속성 값이 있는 항목을 효율적으로 검색할 수 있습니다.
- 근사 색인(approx) - ~= 필터 연산자를 사용하여 효율적인 "유사 발음" 검색을 제공합니다. 예를 들어, 근사 인덱스는 이름의 일부나 맞춤법이 틀린 이름을 검색하는 데 유용합니다. Directory Server는 Metaphone Phonetic 알고리즘의 변형을 사용하여 근사 인덱스에 대한 검색을 수행합니다.
주 Directory Server 5.2의 Metaphone Phonetic 알고리즘은 US-ASCII 문자만 지원하기 때문에 영어 값에만 근사 색인화를 사용해야 합니다.
- 하위 문자열 색인(sub) - cn=*john*과 같은 속성 값 하위 문자열을 효율적으로 검색합니다. 하지만 각각의 값이 수많은 하위 문자열을 갖기 때문에 유지관리 손실이 매우 큰 색인입니다.
하위 문자열 색인은 각 항목에서 최소 2자 이상으로 제한됩니다.
- 일치 규칙 색인 - 현지화된 일치 규칙(조합 순서라고도 함)의 OID를 색인화할 속성과 연결하여 다국어 디렉토리의 검색 속도를 향상시킵니다.
- 찾아보기 색인 - 가상 목록 보기(VLV) 컨트롤을 사용한 검색의 응답 시간을 향상시킵니다. 데이터가 가득 채워진 하위 트리(예: ou=People,dc=example,dc=com)의 표시 성능을 높이기 위해 분기점에 대한 찾아보기 색인을 작성할 수도 있습니다.
시스템 색인
시스템 색인은 삭제하거나 수정할 수 없으며 Directory Server가 효율적으로 정상 작동하는 데 필요합니다. 아래 표에는 모든 접미사에 자동으로 작성되는 시스템 색인이 나와 있습니다.
기본 색인
디렉토리에 새 접미사를 작성하면 서버는 해당 데이터베이스 디렉토리에 기본 색인 집합을 구성합니다. 기본 색인은 사용자의 색인화 요구에 따라 수정할 수 있습니다. 단, 기업의 서버 플러그 인 또는 다른 서버에서 색인화된 특정 속성을 사용하지 않을 경우에만 해당 색인의 구성을 해제할 수 있습니다.
새 접미사를 작성할 때 사용할 기본 색인 집합을 수정하려면 "기본 색인 집합 수정"을 참조하십시오.
아래 표에는 Directory Server에 미리 구성된 기본 색인이 나와 있습니다.
표 10-2    모든 새 접미사의 기본 색인
속성
동일
있음
하위 문자열
용도
cn
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
givenName
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
mailAlternateAddress
X
Sun ONE Messaging Server에서 사용됩니다.
mailHost
X
Sun ONE Messaging Server에서 사용됩니다.
member
X
Sun ONE 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에도 사용됩니다. 자세한 내용은
"참조 무결성 유지"를 참조하십시오.nsCalXItemId
X
X
X
Sun ONE Calendar Server에서 사용됩니다.
nsLIProfileName
X
Sun ONE Messaging Server의 로밍 기능에 사용됩니다.
nsRoleDN
X
역할 기반의 작업 성능을 향상시킵니다.
nswcalCALID
X
Sun ONE Calendar Server에서 사용됩니다.
owner
X
Sun ONE 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에도 사용됩니다. 자세한 내용은 Sun ONE Directory Server 관리 설명서를 참조하십시오.
pipstatus
X
Sun ONE 서버에서 사용됩니다.
pipuid
X
Sun ONE 서버에서 사용됩니다.
seeAlso
X
Sun ONE 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에도 사용됩니다. 자세한 내용은
"참조 무결성 유지"를 참조하십시오.sn
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
telephoneNumber
X
X
X
가장 일반적인 유형의 사용자 디렉토리 검색 성능을 향상시킵니다.
uid
X
Sun ONE 서버 성능을 향상시킵니다.
uniquemember
X
Sun ONE 서버 성능을 향상시킵니다. 이 색인은 참조 무결성 플러그 인에도 사용됩니다. 자세한 내용은
"참조 무결성 유지"를 참조하십시오.데이터베이스의 표준 색인 파일
기본 색인 및 기타 내부 색인화 메커니즘을 유지해야 하는 필요성 때문에 Directory Server에서는 일부 표준 색인 파일도 유지관리합니다. 다음과 같은 표준 색인 파일은 기본적으로 작성되므로 별도로 생성할 필요가 없습니다.
- databaseName_id2entry.db3 - 디렉토리 항목의 실제 데이터베이스가 포함됩니다. 이 파일을 사용하여 다른 모든 데이터베이스 파일을 다시 작성할 수 있습니다.
- databaseName_id2children.db3 - 항목의 직계 자식만 조사하는 검색인 한 수준 검색의 범위를 제한합니다.
- databaseName_dn.db3 - 특정 항목과 하위 트리의 모든 항목을 조사하는 검색인 하위 트리 검색의 범위를 제어합니다.
- databaseName_dn2id.db3 - 항목의 고유 이름을 해당 ID 번호에 매핑하여 모든 검색을 효율적으로 시작합니다.
속성 이름 빠른 참조 테이블
아래 표에는 기본 이름(실제 이름)과 별칭을 가진 모든 속성이 나와 있습니다. 색인을 작성할 때는 반드시 기본 이름을 사용하십시오.
색인 관리
이 절에서는 Directory Server 콘솔과 명령줄에서 특정 속성에 대한 있음, 동일, 근사, 하위 문자열 및 국가별 색인을 작성 및 제거하는 방법에 대해 설명합니다. 가상 목록 보기(VLV) 작업 전에 필요한 별도의 절차에 대해서는 "찾아보기 색인 관리"를 참조하십시오.
주 색인은 각 접미사별로 작성되기 때문에 모든 접미사 구성에서 새 색인을 작성해야 합니다.
콘솔을 사용하여 새 접미사를 작성하는 경우 기존 접미사의 색인 구성을 복제할 수 있습니다.
새 색인을 작성하기 전에 색인을 유지관리함으로써 얻을 수 있는 이점과 손실을 비교해 보십시오. 다음과 같은 점에 주의합니다.
- 전화 번호와 같이 주로 숫자가 포함되는 속성에 근사 색인을 사용하는 것은 효율적이지 않으므로 피해야 합니다.
- 이진 속성에 대한 하위 문자열 색인은 제대로 작동하지 않습니다. 이진 데이터가 포함될 속성(예: jpegPhoto) 등의 큰 값에 동일 색인을 사용하는 것은 피해야 합니다.
- 색인을 유지관리하려면 많은 자원이 필요하므로 빈번하게 검색되는 속성만 색인화해야 합니다. 항목을 작성하려면 서버에서 색인화된 모든 속성을 조사하여 새 항목에 포함된 각 속성에 대해 새 색인 항목을 생성해야 하므로 많은 CPU 시간이 소요됩니다.
- 각 색인 파일의 크기는 디렉토리 내용에 비례합니다.
- 색인화되지 않은 속성도 검색 요청에 지정할 수 있지만, 이 경우 검색 유형에 따라 검색 성능이 색인화된 검색보다 훨씬 떨어집니다.
콘솔에서 색인 관리
많은 속성에 대한 색인을 수정 또는 추가하려는 경우 먼저 접미사를 읽기 전용으로 설정한 후에 접미사 내용을 LDIF로 내보내야 합니다. 이렇게 하면 LDIF 파일을 사용하여 접미사를 다시 초기화함으로써 신속하게 접미사를 다시 색인화할 수 있습니다.
- Directory Server 콘솔의 최상위 "구성" 탭에서 "데이터" 노드를 확장하여 색인화할 접미사를 선택합니다. 그런 후에 오른쪽 패널에서 "색인" 탭을 선택합니다.
"시스템 색인" 테이블은 수정할 수 없습니다. "추가 색인" 테이블에서 속성에 대한 색인을 추가, 수정 또는 제거합니다.
- 아직 색인화되지 않은 속성에 대한 색인을 추가하려면 "속성 추가" 버튼을 누릅니다. 표시되는 대화 상자에서 색인화할 속성을 하나 이상 선택하고 "확인"을 누릅니다.
"추가 색인" 테이블에 새 속성이 표시됩니다.
- 특정 속성의 색인을 수정하려면 "추가 색인" 테이블에서 해당 속성에 대해 유지관리할 각 색인 유형에 해당하는 확인란을 선택하거나 선택 취소합니다.
- 값이 영어 이외의 언어로 지정된 속성에 대한 색인을 작성하려면 사용할 조합 순서 OID를 "일치 규칙" 필드에 입력합니다.
여러 개의 OID를 공백 없이 쉼표로 구분하여 속성을 여러 언어로 색인화할 수 있습니다. 지원되는 로켈 목록 및 관련된 조합 순서 OID에 대해서는 Sun ONE Directory Server Reference Manual의 Appendix C, "Directory Internationalization"을 참조하십시오.
- 속성에 대한 모든 접미사를 제거하려면 테이블에서 해당 행을 선택하고 "속성 삭제" 버튼을 누릅니다.
- "저장"을 눌러 새 색인 구성을 저장합니다.
속성에 대한 색인을 모두 제거하면 해당 속성에 대한 색인 파일이 제거되고 구성이 완료됩니다. 속성에 대한 색인을 수정했거나 새 색인을 추가한 경우에는 아래 단계에 따라 수행합니다.
- 새 색인을 사용하려면 데이터베이스 파일을 업데이트해야 한다는 경고 대화 상자가 표시됩니다. 접미사를 다시 색인화하거나 다시 초기화할 수 있습니다.
- 한두 개의 색인만 추가 또는 수정했거나 접미사를 계속 사용할 수 있어야 하는 경우에는 접미사를 다시 색인화해야 합니다. "접미사 다시 색인화" 버튼을 눌러 다시 색인화 대화 상자를 표시합니다. 기본적으로 색인 구성에 추가했거나 수정한 속성이 선택됩니다. "확인"을 눌러 이러한 속성을 다시 색인화합니다. 수백만 개의 항목이 있는 디렉토리의 많은 속성을 다시 색인화하려면 몇 시간이 걸릴 수도 있지만 다시 색인화 중에는 접미사가 항상 온라인 상태를 유지합니다.
- 여러 속성에 대한 색인을 추가 또는 수정했으며 이 접미사에서 내보낸 최근 LDIF 파일이 있는 경우 "접미사 초기화" 버튼을 누릅니다. "접미사 초기화" 대화 상자에서 LDIF 파일의 경로와 이름을 입력하거나 탐색한 다음 "확인"을 누릅니다. LDIF 파일을 사용하여 접미사가 다시 초기화되고 새 구성에 따라 모든 색인이 작성됩니다. 디렉토리 크기에 따라 대체로 접미사를 다시 초기화하는 것이 두 개 이상의 속성을 다시 색인화하는 것보다 속도가 더 빠르지만 초기화 중에는 접미사를 사용할 수 없다는 단점이 있습니다.
- 접미사를 다시 색인화하거나 다시 초기화하지 않아도 모든 데이터를 계속 사용할 수는 있지만 새 색인이 작성되지 않으며 디렉토리 액세스 성능이 향상되지 않습니다.
접미사를 다시 색인화하거나 다시 초기화하면 새 색인이 디렉토리에 추가한 새 데이터 및 디렉토리의 기존 데이터에 대해 즉시 활성화되므로 서버를 다시 시작할 필요가 없습니다.
명령줄에서 색인 관리
명령줄에서 색인을 작성하거나 수정하려면 다음 두 단계를 수행해야 합니다.
- ldapmodify 명령줄 유틸리티를 사용하여 색인 구성 항목을 추가하거나 수정합니다. 색인은 각 접미사에 별도로 구성되며 색인 구성 항목은 해당 데이터베이스 구성과 함께 저장됩니다.
- db2index.pl Perl 스크립트(Solaris 패키지의 directoryserver db2index-task)를 실행하여 서버에서 유지관리할 새 색인 집합을 생성합니다.
색인 구성 항목 작성
아직 색인화되지 않은 속성에 대한 색인을 작성하려면 해당 데이터베이스의 구성에 이 속성에 대한 새 항목을 작성해야 합니다.
색인 구성 항목의 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색인 구성 항목에는 nsIndex 개체 클래스가 있으며, nsSystemIndex 속성이 존재하고 해당 속성 값이 false여야 합니다. 새 시스템 색인은 작성할 수 없습니다. Directory Server에서 내부적으로 정의한 기존의 시스템 색인만 유지관리됩니다.
nsIndexType 속성 값은 지정된 속성에 대해 유지관리될 색인을 열거합니다. 위에 제공된 값 중 하나를 사용하여 해당 색인을 정의합니다.
속성 색인화를 일시적으로 비활성화하기 위해 none 값만 사용하여 해당 속성에 대한 색인을 명시적으로 비활성화할 수도 있습니다. 색인 구성 항목에 nsIndexType 속성을 추가하지 않으면 기본적으로 모든 색인이 유지관리됩니다.
선택 사항인 nsMatchingRule 속성에는 국가별 색인의 언어 조합 순서 OID가 포함됩니다. 지원되는 로켈 목록 및 관련된 조합 순서 OID에 대해서는 Sun ONE Directory Server Reference Manual의 Appendix C, "Directory Internationalization"을 참조하십시오.
색인 구성 속성에 대한 자세한 내용은 Sun ONE Directory Server Reference Manual의 Chapter 5, "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.pl 스크립트 실행
색인화 항목을 새로 작성했거나 기존 색인화 항목에 다른 색인 유형을 추가했거나 색인화 항목의 조합 순서를 수정한 경우 db2index.pl 스크립트(Solaris 패키지의 directoryserver db2index-task)를 실행하여 새 색인을 생성합니다. 이 스크립트는 접미사 내용을 읽은 후에 해당 구성 항목에 따라 지정된 속성을 다시 색인화합니다.
명령을 실행하는 동안에도 서버를 통해 계속 접미사 내용을 사용할 수 있지만 스크립트가 완료될 때까지는 검색이 색인화되지 않습니다. 다시 색인화하려면 상당한 자원이 필요하므로 서버의 다른 작업 성능이 저하될 수 있습니다. 디렉토리 크기에 따라 대체로 접미사를 다시 초기화하는 것이 두 개 이상의 속성을 다시 색인화하는 것보다 속도가 더 빠르지만 초기화 중에는 접미사를 사용할 수 없다는 단점이 있습니다. 자세한 내용은 "접미사 다시 초기화"를 참조하십시오.
이 스크립트에 대한 명령은 플랫폼에 따라 달라집니다.
Solaris 패키지
# /usr/sbin/directoryserver db2index-task
Windows 플랫폼
cd serverRoot
bin\slapd\admin\bin\perl slapd-serverID\db2index.pl기타 설치
# serverRoot/slapd-serverID/db2index.pl
아래 예제에서는 databaseName에 해당하는 접미사의 sn 색인을 다시 생성합니다.
UNIX 셸 스크립트:
# use directoryserver db2index-task in the Solaris 패키지
/var/Sun/mps/slapd-example/db2index.pl \
-D "cn=Directory Manager" -w password -n databaseName -t snWindows 배치 파일:
C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
C:\Program Files\Sun\MPS\slapd-example\db2index.pl
-D "cn=Directory Manager" -w password -n databaseName -t sn자세한 내용은 Sun ONE Directory Server Reference Manual의 Chapter 2, "db2index.pl"을 참조하십시오.
특정 속성에 대한 모든 색인 삭제
특정 속성에 대해 구성된 모든 색인을 제거하려면 해당 구성 항목과 데이터베이스 파일을 제거할 수 있습니다. 예를 들어, 아래 명령은 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.pl 스크립트 실행"에 설명된 지침에 따라 색인 파일을 다시 구성할 모든 속성을 지정합니다.
접미사 다시 초기화
접미사를 다시 초기화하는 경우 새 내용을 가져오면 해당 내용이 바뀌고 새 색인 파일이 작성됩니다. 항목을 로드하면 모든 속성이 한 번에 색인화되므로 대체로 접미사를 다시 초기화하는 것이 두 개 이상의 속성을 다시 색인화하는 것보다 속도가 더 빠르지만 다시 초기화하는 동안에는 접미사를 사용할 수 없다는 단점이 있습니다.
아래 단계는 모두 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이 항목을 추가하면 프랑스어의 동일 검색 및 하위 문자열 검색에 대해 색인화된 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 콘솔에 대한 찾아보기 색인을 삭제하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "디렉토리" 탭에서 디렉토리 트리를 탐색하여 찾아보기 색인을 작성한 항목을 표시합니다.
- 항목을 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 "찾아보기 색인 삭제"를 선택합니다. 또는 항목을 왼쪽 마우스 버튼으로 눌러 선택한 다음 "개체" 메뉴에서 "찾아보기 색인 삭제"를 선택합니다. 이 메뉴 항목은 콘솔에 대한 찾아보기 색인이 선택한 항목에 있는 경우에만 활성화됩니다.
- 색인 삭제를 확인하는 "찾아보기 색인 삭제" 경고 대화 상자가 표시됩니다. "예"를 눌러 찾아보기 색인을 삭제합니다.
클라이언트 검색에 대한 찾아보기 색인
클라이언트 검색 결과 정렬에 대해 사용자 정의된 찾아보기 색인은 수동으로 정의해야 합니다. 명령줄에서 찾아보기 색인, 즉 가상 목록 보기(VLV) 색인을 작성하려면 다음 두 단계를 수행해야 합니다.
- ldapmodify 유틸리티 또는 Directory Server 콘솔의 "디렉토리" 탭을 사용하여 새 찾아보기 색인 항목을 추가하거나 기존의 찾아보기 색인 항목을 편집합니다.
- vlvindex 스크립트(Solaris 패키지의 directoryserver vlvindex)를 실행하여 서버에서 유지관리할 새 찾아보기 색인 집합을 생성합니다.
찾아보기 색인 항목 지정
찾아보기 색인은 지정된 기본 항목 및 해당 하위 트리별로 작성됩니다. 또한 찾아보기 색인 구성은 이 항목이 포함된 접미사의 데이터베이스 구성에 정의됩니다.
주 찾아보기 색인은 연결 접미사가 아닌 로컬 접미사 및 하위 접미사에만 작성할 수 있습니다.
찾아보기 색인은 두 개의 항목으로 구성됩니다. 첫 번째 항목은 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 명령 실행
찾아보기 색인 항목을 새로 작성했거나 기존 항목을 수정한 경우 vlvindex 명령(Solaris 패키지의 directoryserver vlvindex)을 실행하여 새 찾아보기 색인 집합을 생성해야 합니다. 이 명령은 디렉토리 내용을 검사하여 찾아보기 색인용 데이터베이스 파일을 작성합니다.
찾아보기 색인을 생성하려면 아래 명령을 실행합니다.
Solaris 패키지
# /usr/sbin/directoryserver vlvindex
기타 설치
# installDir/slapd-serverID/vlvindex
아래 예제에서는 이전 절에서 정의한 찾아보기 색인을 생성합니다.
# vlvindex -n databaseName -T "Browsing ou=People"
표 10-4    위의 예제에 사용된 vlvindex 옵션에 대한 설명
옵션
설명
-n
색인화할 항목이 있는 데이터베이스 이름을 지정합니다.
-T
해당 찾아보기 색인의 vlvSearch 항목에 포함된 이름 지정 속성 값을 지정합니다.
지정된 vlvSearch 항목의 vlvIndex 항목에 해당하는 모든 색인이 생성됩니다.자세한 내용은 Sun ONE Directory Server Reference Manual의 Chapter 2, "vlvindex"를 참조하십시오.