|
|
| Sun ONE Directory Server 관리 설명서 |
디렉토리 서버에서 관리하는 데이터는 대량으로 가져오는 경우가 많습니다. Directory Server는 전체 접미사를 가져오거나 내보내기 위한 도구를 제공합니다. 모든 접미사를 동시에 백업하고, 이 백업을 사용하여 모든 데이터를 복원할 수 있는 도구도 제공됩니다.
이 장에서는 디렉토리를 채우기 위한 다음 내용을 설명합니다.
접미사 읽기 전용 모드 설정
Directory Server에서 내보내기 또는 백업 작업을 수행하기 전에 지정된 접미사에 읽기 전용 모드를 활성화하면 특정 시간의 접미사 내용을 안전하게 유지할 수 있습니다. 또한, 가져오기 또는 복원 작업을 수행하기 전에 영향을 받는 접미사가 읽기 전용 모드로 설정되지 않았는지 확인해야 합니다.
디렉토리를 업데이트할 수 없게 되므로 Directory Server 콘솔과 명령줄 유틸리티는 내보내기 또는 백업 작업 전에 디렉토리를 읽기 전용 모드로 자동 설정하지 않습니다. 하지만 다중 마스터 구성에서 서버 한 대만 읽기 전용 모드로 설정하는 경우 다른 마스터에서는 계속 데이터를 쓸 수 있습니다.
접미사를 읽기 전용으로 설정하려면 "액세스 권한 및 참조 설정"에 설명된 절차에 따라 수행합니다. 또는 "전역 읽기 전용 모드 설정"에 설명된 것처럼 전체 디렉토리 서버를 쓸 수 없게 설정할 수도 있습니다.
데이터 가져오기
Sun ONE Directory Server는 데이터를 가져오는 두 가지 방법을 제공합니다.
- LDIF 파일을 가져와서 디렉토리 접미사의 항목을 대량으로 추가, 수정 및 삭제합니다.
- LDIF 파일을 사용하여 접미사를 초기화함으로써 접미사의 현재 데이터를 삭제하고 LDIF 파일의 내용으로 바꿉니다.
두 방법은 모두 Directory Server 콘솔과 명령줄 유틸리티를 통해 사용할 수 있습니다.
주 UTF-8 문자 집합 인코딩을 사용하는 LDIF 파일만 가져올 수 있습니다.
LDIF를 가져올 경우 부모 항목이 디렉토리에 있거나 먼저 이 파일을 사용하여 부모 항목을 추가해야 합니다. 접미사를 초기화할 경우에는 LDIF 파일에 해당 접미사의 모든 디렉토리 트리 노드와 루트 항목이 포함되어 있어야 합니다.
아래 표에는 가져오기와 초기화의 차이점이 설명되어 있습니다.
LDIF 파일 가져오기
가져오기 작업을 수행하면 Directory Server 콘솔은 ldapmodify 작업을 수행하여 새 항목을 디렉토리에 추가합니다. 항목은 LDIF 파일에 지정되어 있으며, 이 파일에는 가져오기 작업의 일부로 기존 항목을 수정하거나 삭제하는 업데이트 명령문도 포함될 수 있습니다.
Directory Server에서 관리하는 모든 접미사 및 구성에 정의된 연결 접미사 또는 연결 하위 접미사를 대상으로 항목을 가져올 수 있습니다. 항목을 추가하는 다른 모든 작업과 마찬가지로 서버는 가져오는 새 항목을 모두 색인화합니다.
콘솔에서 LDIF 가져오기
가져오기를 수행하려면 디렉토리 관리자 또는 관리자로 로그인해야 합니다.
- Directory Server 콘솔의 최상위 "태스크" 탭에서 탭의 아래쪽으로 스크롤하여 "LDIF에서 가져오기" 옆에 있는 버튼을 누릅니다.
"LDIF 가져오기" 대화 상자가 표시됩니다.
- "LDIF 가져오기" 대화 상자의 "LDIF 파일" 필드에 가져올 LDIF 파일의 전체 경로를 입력하거나 "찾아보기"를 눌러 로컬 파일 시스템에서 해당 파일을 선택합니다.
원격 시스템의 디렉토리에 액세스하는 경우 필드 이름이 "LDIF 파일(콘솔 시스템 상)"로 표시됩니다. 이 레이블은 사용자가 원격 디렉토리 서버 시스템이 아닌 로컬 파일 시스템을 탐색하고 있음을 나타냅니다.
- 다음 옵션을 원하는 대로 설정합니다.
- "추가만" - LDIF 파일에는 기본 추가 지침 외에도 수정 및 삭제 지침이 포함될 수 있습니다. 콘솔에서 추가 지침만 수행하고 LDIF 파일의 다른 모든 지침을 무시하려면 이 확인란을 선택합니다.
- "오류 발생 시 계속" - 오류가 발생한 경우에도 서버에서 가져오기 작업을 계속 수행하려면 이 확인란을 선택합니다. 예를 들어, 일부 항목이 접미사에 이미 존재하는 LDIF 파일을 가져오는 경우 이 옵션을 사용할 수 있습니다. 콘솔은 가져오기 작업을 수행하는 동안 이미 존재하는 항목과 같은 오류를 거부용 파일에 기록합니다.
이 확인란이 선택되어 있지 않으면 가져오기 작업은 첫 번째 오류가 발생한 후에 중단됩니다. LDIF 파일에서 오류 전의 항목은 성공적으로 가져오며 디렉토리에 남아 있습니다.
- "거부용 파일" 필드에 콘솔에서 가져올 수 없는 모든 항목을 기록할 파일의 전체 경로를 입력하거나 "찾아보기"를 눌러 로컬 파일 시스템에서 해당 파일을 선택합니다.
예를 들어 디렉토리에 이미 존재하는 항목이나 부모 개체가 없는 항목은 가져올 수 없습니다. 콘솔은 서버에서 보낸 오류 메시지를 거부용 파일에 씁니다.
이 필드를 비워 두면 서버에서 거부된 항목을 기록하지 않습니다.
- "확인"을 눌러 가져오기 작업을 시작합니다.
Directory Server 콘솔에서 작업 상태와 발생한 오류 텍스트가 포함된 대화 상자를 표시합니다. "거부용 파일" 필드에 파일이 지정되어 있으면 해당 파일에도 모든 오류 메시지가 기록됩니다.
명령줄에서 LDIF 가져오기
ldif2ldap 명령(Solaris 패키지의 directoryserver ldif2ldap)은 LDAP를 통해 LDIF 파일을 가져오며 포함된 모든 작업을 수행합니다. 이 스크립트를 사용하여 데이터를 모든 디렉토리 접미사에 동시에 가져올 수 있습니다. ldif2ldap를 사용하여 가져오려면 서버를 실행해야 합니다.
이 명령의 전체 경로는 다음과 같습니다.
Solaris 패키지
# /usr/sbin/directoryserver ldif2ldap
기타 설치
# ServerRoot/slapd-serverID/ldif2ldap
아래 예제에서는 ldif2ldap 명령을 사용하여 가져오기를 수행합니다. 명령줄에서 디렉토리 관리자에 대한 자격 증명을 제공하면 root 권한이 없어도 이 명령을 실행할 수 있습니다. 마지막 매개 변수는 가져올 하나 이상의 LDIF 파일 이름입니다.
UNIX 셸 스크립트:
# use directoryserver ldif2ldap on Solaris 패키지 installations
/var/Sun/mps/slapd-example/ldif2ldap \
"cn=Directory Manager" password \
/var/Sun/mps/slapd-example//ldif/demo.ldifWindows 배치 파일:
C:\Program Files\Sun\MPS\slapd-example\ldif2ldap.bat
"cn=Directory Manager" password
C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif이 스크립트의 사용 방법은 Sun ONE Directory Server Reference Manual의 Chapter 2, "ldif2ldap"를 참조하십시오.
접미사 초기화
접미사를 초기화하면 추가할 항목만 포함된 LDIF 파일의 내용이 접미사의 기존 데이터를 덮어씁니다.
주의
LDIF 파일을 사용하여 접미사를 초기화하는 경우, 데이터를 복원하는 중이 아니면 o=NetscapeRoot 접미사를 덮어쓰지 않도록 주의하십시오. 이 접미사를 덮어쓰면 정보가 삭제되어 모든 Sun ONE 서버를 다시 설치해야 합니다.
접미사를 초기화하려면 디렉토리 관리자 또는 관리자로 인증되어야 합니다. 보안상, 디렉토리 관리자 및 관리자만 접미사의 루트 항목(예: dc=example,dc=com)에 액세스할 수 있으므로 루트 항목이 포함된 LDIF 파일을 가져오려면 이러한 ID를 사용해야 합니다.
콘솔에서 접미사 초기화
- Directory Server 콘솔의 최상위 "구성" 탭에서 "데이터" 노드를 확장하여 초기화할 접미사를 표시합니다.
- 접미사 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 "초기화"를 선택합니다.
또는 접미사 노드를 선택하고 "개체" 메뉴에서 "초기화"를 선택할 수도 있습니다.
"접미사 초기화" 대화 상자가 표시됩니다.
- "LDIF 파일" 필드에 초기화에 사용할 LDIF 파일의 전체 경로를 입력하거나 "찾아보기"를 눌러 사용자 시스템에서 해당 파일을 찾습니다.
- 가져올 파일이 있는 로컬 시스템에서 콘솔을 실행하는 경우 6단계로 넘어갑니다. LDIF 파일이 있는 서버의 원격 시스템에서 콘솔을 실행하는 경우에는 다음 옵션 중 하나를 선택합니다.
로컬 시스템에서. LDIF 파일이 로컬 시스템에 있음을 나타냅니다.
서버 시스템에서. LDIF 파일이 원격 서버에 있음을 나타냅니다. 기본적으로 콘솔은 아래 디렉토리에서 이 파일을 찾습니다.
ServerRoot/slapd-serverID/ldif
- "확인"을 누릅니다.
주의
이 스크립트는 접미사에 있는 데이터를 덮어씁니다.
- 접미사에 있는 데이터를 덮어쓸 것을 확인합니다.
접미사 초기화가 수행되며 오류가 발생하면 대화 상자로 보고됩니다.
ldif2db 명령을 사용한 접미사 초기화
ldif2db 명령(Solaris 패키지의 directoryserver ldif2db)은 접미사를 초기화하고 기존 데이터를 덮어씁니다. 이 스크립트를 사용하여 가져오기를 수행하려면 서버를 종료해야 합니다.
기본적으로 스크립트는 기존의 o=NetscapeRoot 구성 정보를 먼저 저장한 다음, 가져오는 파일에 있는 o=NetscapeRoot 구성 정보와 병합합니다.
주의
이 스크립트는 접미사에 있는 데이터를 덮어씁니다.
서버를 중지한 상태에서 LDIF 파일을 가져오려면
- 명령줄에서 root로 아래 명령을 실행하여 서버를 중지합니다.
Solaris 패키지
# /usr/sbin/directoryserver stop
기타 설치
# ServerRoot/slapd-serverID/stop-slapd
- 아래 위치에 있는 명령을 실행합니다.
Solaris 패키지
# /usr/sbin/directoryserver ldif2db
기타 설치
# ServerRoot/slapd-serverID/ldif2db
- 해당 명령을 실행하여 서버를 시작합니다.
Solaris 패키지
# /usr/sbin/directoryserver start
기타 설치
# ServerRoot/slapd-serverID/start-slapd
아래 예제에서는 ldif2db 명령을 사용하여 LDIF 파일 두 개를 하나의 접미사로 가져옵니다.
UNIX 셸 스크립트:
# use directoryserver ldif2db on Solaris 패키지 installations
/var/Sun/mps/slapd-example/ldif2db -n Database1 \
-i /var/Sun/mps/slapd-example/ldif/demo.ldif \
-i /var/Sun/mps/slapd-example/ldif/demo2.ldifWindows 배치 파일:
C:\Program Files\Sun\MPS\slapd-example\ldif2db.bat -n Database1
-i C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif
-i C:\Program Files\Sun\MPS\slapd-example\ldif\demo2.ldif
이 명령의 사용 방법은 Sun ONE Directory Server Reference Manual의 Chapter 2, "ldif2db"를 참조하십시오.
ldif2db.pl Perl 스크립트를 사용한 접미사 초기화
ldif2db 명령과 마찬가지로 ldif2db.pl 스크립트(Solaris 패키지의 directoryserver ldif2db-task)는 지정한 접미사에 있는 데이터를 덮어씁니다. 이 스크립트를 사용하여 가져오기를 수행하려면 서버를 실행해야 합니다.
주의
이 스크립트는 접미사에 있는 데이터를 덮어씁니다.
이 스크립트에 대한 명령은 플랫폼에 따라 달라집니다.
Solaris 패키지
# /usr/sbin/directoryserver ldif2db-task
Windows 플랫폼
cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\ldif2db.pl기타 설치
# ServerRoot/slapd-serverID/ldif2db.pl
아래 예제에서는 ldif2db.pl 스크립트를 사용하여 LDIF 파일을 가져옵니다. 디렉토리 관리자로 인증하면 root 권한이 없어도 스크립트를 실행할 수 있습니다.
UNIX 셸 스크립트:
# use directoryserver ldif2db-task on Solaris 패키지 installations
/var/Sun/mps/slapd-example/ldif2db.pl \
-D "cn=Directory Manager" -w password -n Database1 \
-i /var/Sun/mps/slapd-example/ldif/demo.ldifWindows 배치 파일:
C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
C:\Program Files\Sun\MPS\slapd-example\ldif2db.pl
-D "cn=Directory Manager" -w password -n Database1
-i C:\Program Files\Sun\MPS\slapd-example\ldif\demo.ldif아래 표에는 예제에 사용된 ldif2db.pl 옵션이 설명되어 있습니다.
이 Perl 스크립트의 사용 방법은 Sun ONE Directory Server Reference Manual의 Chapter 2, "ldif2db.pl"을 참조하십시오.
데이터 내보내기
일반 텍스트 LDIF(LDAP Data Interchange Format)를 사용하여 디렉토리 내용을 내보낼 수 있습니다. LDIF는 항목, 속성 및 해당 값의 텍스트 표시로 RFC 2849
(http://www.ietf.org/rfc/rfc2849.txt)에 설명되어 있는 표준 형식입니다.데이터 내보내기는 다음과 같은 작업에 도움이 됩니다.
- 서버에 있는 데이터 백업
- 다른 디렉토리 서버로 데이터 복사
- 다른 응용 프로그램으로 데이터 내보내기
- 디렉토리 토폴로지를 변경한 후에 접미사 다시 채우기
내보내기 작업 시 구성 정보(cn=config)는 내보내지 않습니다.
주의
내보내기 작업 중에는 서버를 중지하지 마십시오.
콘솔에서 디렉토리 데이터를 LDIF로 내보내기
내보낸 최종 파일의 위치에 따라 디렉토리 데이터의 일부나 모두를 LDIF로 내보낼 수 있습니다. LDIF 파일이 서버에 있으면 서버의 로컬 접미사에 저장된 데이터만 내보낼 수 있습니다. LDIF 파일이 서버의 원격 시스템에 있으면 접미사와 연결 접미사를 모두 내보낼 수 있습니다.
서버가 실행되는 동안 Directory Server 콘솔에서 디렉토리 데이터를 LDIF로 내보내려면
- Directory Server 콘솔의 최상위 "태스크" 탭에서 탭의 아래쪽으로 스크롤하여 "LDIF로 내보내기" 옆에 있는 버튼을 누릅니다.
"내보내기" 대화 상자가 표시됩니다.
- "LDIF 파일" 필드에 LDIF 파일의 전체 경로와 파일 이름을 입력하거나 "찾아보기"를 눌러 해당 파일을 찾습니다.
원격 서버에서 콘솔을 실행 중이면 "찾아보기" 버튼이 활성화되지 않습니다. "찾아보기" 버튼이 활성화되지 않을 경우 이 파일은 기본적으로 아래 디렉토리에 저장되어 있습니다.
ServerRoot/slapd-serverID/ldif
- 서버의 원격 시스템에서 콘솔을 실행 중이면 "LDIF 파일" 필드 아래에 두 개의 라디오 버튼이 표시됩니다. 콘솔을 실행하는 시스템에 있는 LDIF 파일로 내보내려면 "로컬 시스템에"를 선택하고 서버 시스템에 있는 LDIF 파일로 내보내려면 "서버 시스템에"를 선택합니다.
- 전체 디렉토리를 내보내려면 "모든 접미사" 라디오 버튼을 선택합니다.
디렉토리의 개별 하위 트리만 내보내려면 "하위 트리" 라디오 버튼을 선택하고 텍스트 상자에 하위 트리의 기본 항목 DN을 입력합니다.
또는 "찾아보기"를 눌러 하위 트리를 선택할 수도 있습니다.
- "확인"을 눌러 디렉토리 내용을 파일로 내보냅니다.
콘솔에서 개별 접미사를 LDIF로 내보내기
서버가 실행되는 동안 Directory Server 콘솔에서 개별 접미사를 LDIF로 내보내려면
- Directory Server 콘솔의 최상위 "구성" 탭에서 "데이터" 노드를 확장하여 내보낼 접미사를 표시합니다.
- 접미사 노드를 마우스 오른쪽 버튼으로 누르고 팝업 메뉴에서 "내보내기"를 선택합니다. 또는 접미사 노드를 선택하고 "개체" 메뉴에서 "내보내기"를 선택할 수도 있습니다.
"접미사 내보내기" 대화 상자가 표시됩니다.
- "LDIF 파일" 필드에 LDIF 파일의 전체 경로를 입력하거나 "찾아보기"를 눌러 사용자 시스템에서 해당 파일을 찾습니다.
"찾아보기" 버튼이 활성화되지 않을 경우 이 파일은 기본적으로 아래 디렉토리에 저장되어 있습니다.
ServerRoot/slapd-serverID/ldif
- 접미사가 복제되면 "복제 정보를 내보냅니다" 확인란을 선택할 수 있습니다. 이 기능은 내보낸 LDIF를 사용하여 이 접미사의 다른 복제본을 초기화할 경우에만 필요합니다.
- 이 접미사에 속성 암호화가 활성화되어 있으면 "속성 암호 해독" 확인란을 선택할 수 있습니다. 이렇게 하려면 서버의 인증서 데이터베이스를 보호하는 암호를 제공해야 합니다. 암호를 입력하거나 암호가 포함된 파일 이름을 입력하는 옵션을 선택합니다. 속성 값의 암호를 해독하는 암호를 제공하지 않으면 LDIF 출력에 암호화된 값이 표시됩니다.
- "확인"을 눌러 접미사 내용을 파일로 내보냅니다.
명령줄에서 LDIF로 내보내기
db2ldif 명령(Solaris 패키지의 directoryserver db2ldif)을 사용하여 디렉토리의 모든 접미사 또는 하위 트리를 LDIF로 내보낼 수 있습니다. 이 스크립트는 서버의 실행 여부에 관계 없이 접미사 내용의 전체 또는 일부를 내보냅니다.
데이터베이스 내용을 LDIF 파일로 내보내려면 아래 명령을 실행합니다.
Solaris 패키지
# /usr/sbin/directoryserver db2ldif
기타 설치
# ServerRoot/slapd-serverID/db2ldif
아래 예제에서는 두 개의 접미사를 LDIF 파일 하나로 내보냅니다.
db2ldif -a output.ldif \
-s "dc=example,dc=com" -s "o=NetscapeRoot"아래 표에는 예제에 사용된 db2ldif 옵션이 설명되어 있습니다.
db2ldif 명령을 -r 옵션과 함께 사용하여 복제된 접미사를 LDIF 파일로 내보낼 수도 있습니다. 결과로 작성된 LDIF에는 복제 메커니즘에서 사용하는 속성 하위 유형이 포함되어 있습니다. 그런 후에 "복제본 초기화"에 설명된 것처럼 소비자 서버에서 이 LDIF 파일을 가져와 소비자 복제본을 초기화할 수 있습니다.
db2ldif 명령을 -r 옵션과 함께 사용하는 경우 해당 서버를 중지해야 합니다. 먼저 서버를 중지한 다음 명령을 시작하거나 서버를 중지할 필요가 없는 db2ldif.pl 스크립트를 -r 옵션과 함께 사용해야 합니다.
이 스트립트의 사용 방법은 Sun ONE Directory Server Reference Manual의 Chapter 2, "db2lidf"를 참조하십시오.
데이터 백업
데이터 백업은 나중에 데이터베이스 파일이 손상되거나 삭제될 경우에 대비하여 내용이나 디렉토리의 스냅샷을 저장합니다. Directory Server 콘솔이나 명령줄 스크립트를 사용하여 접미사를 백업할 수 있습니다.
주의
백업 작업 중에는 서버를 중지하지 마십시오.
기본적으로 여기에 설명된 모든 백업 절차는 서버 파일의 복사본을 동일한 호스트에 저장합니다. 보안을 강화하려면 이 백업을 복사하여 다른 시스템이나 파일 시스템에 저장해야 합니다.
주 이러한 백업 방법으로 원격 서버에 있는 연결 접미사를 백업할 수는 없습니다. 이 경우 각각의 서버를 별도로 백업해야 합니다.
콘솔에서 서버 백업
Directory Server 콘솔에서 서버를 백업하는 경우 서버는 모든 데이터베이스 내용 및 관련 색인 파일을 백업 위치에 복사합니다. 서버가 실행되는 동안 백업을 수행할 수 있습니다.
서버 콘솔에서 서버를 백업하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "태스크" 탭에서 "디렉토리 서버 백업" 옆에 있는 버튼을 누릅니다.
"디렉토리 백업" 대화 상자가 표시됩니다.
- "디렉토리" 텍스트 상자에 백업을 저장할 디렉토리의 전체 경로를 입력합니다. 디렉토리와 콘솔을 동일한 시스템에서 실행하는 경우 "찾아보기"를 눌러 로컬 디렉토리를 찾습니다.
또는 "기본값 사용"을 눌러 아래 디렉토리에 백업을 저장합니다.
ServerRoot/slapd-serverID/bak/YYYY_MM_DD_hh_mm_ss
여기서 serverID는 디렉토리 서버의 이름이며, 디렉토리 이름은 백업이 작성된 날짜와
시간을 사용하여 생성됩니다.
- "확인"을 눌러 백업을 작성합니다.
명령줄에서 서버 백업
db2bak 명령(Solaris 패키지의 directoryserver db2bak)을 사용하여 명령줄에서 서버를 백업할 수 있습니다. 이 스크립트는 서버의 실행 여부에 관계 없이 작동합니다.
이 백업 방법으로 구성 정보를 백업할 수는 없습니다. 구성 정보 백업에 대한 자세한 내용은 "dse.ldif 구성 파일 백업"을 참조하십시오.
디렉토리를 백업하려면 아래 명령을 실행합니다.
Solaris 패키지
# /usr/sbin/directoryserver db2bak backupDir
기타 설치
# ServerRoot/slapd-serverID/db2bak backupDir
backupDir 매개 변수는 백업을 저장할 디렉토리를 지정합니다. 기본 백업 디렉토리 이름은 현재 날짜인 YYYY_MM_DD_hh_mm_ss를 사용하여 생성됩니다. 이 스트립트의 사용 방법은 Sun ONE Directory Server Reference Manual의 Chapter 2, "db2bak"를 참조하십시오.
dse.ldif 구성 파일 백업
Directory Server는 자동으로 dse.ldif 구성 파일을 백업합니다. 디렉토리 서버를 시작하면 아래 디렉토리의 dse.ldif.startOK 파일에 자동으로 dse.ldif 파일의 백업이 작성됩니다.
ServerRoot/slapd-serverID/config
cn=config 분기가 수정되면 서버는 먼저 이 파일을 config 디렉토리의 dse.ldif.bak 파일에 백업한 다음 dse.ldif 파일에 수정 사항을 씁니다. 구성을 저장해야 하는 경우 두 파일 중 하나의 복사본을 만드십시오.
백업을 사용한 데이터 복원
아래 절차에서는 Directory Server 콘솔이나 명령줄을 사용하여 디렉토리에 있는 접미사를 복원하는 방법에 대해 설명합니다. 서버는 "데이터 백업"에 설명된 것처럼 백업되어 있어야 합니다. 복제 계약에 사용된 접미사를 복원하는 경우 먼저 "복제된 접미사 복원"을 읽어 보십시오.
주의
백업 또는 복원 작업 중에는 서버를 중지하지 마십시오.
서버를 복원하면 기존의 모든 데이터베이스 파일을 덮어쓰므로 백업 이후의 데이터 변경 사항이 모두 손실됩니다.
복제된 접미사 복원
공급자 서버와 소비자 서버 간에 복제된 접미사를 복원하려면 몇 가지 주의해야 할 사항이 있습니다. 가능하면 백업을 사용하여 접미사를 복원하는 대신 복제 메커니즘을 통해 접미사를 업데이트해야 합니다. 이 절에서는 복제본의 복원 방법과 시기, 그리고 작업 후에 다른 복제본과 동기화하는 방법에 대해 설명합니다. 백업 및 복원 기능을 사용하여 복제본을 초기화하는 방법은 "복제본 초기화"를 참조하십시오.
단일 마스터 시나리오에서 공급자 복원
단일 마스터 공급자로 설정된 접미사에는 전체 복제 토폴로지에 대한 신뢰할 수 있는 데이터가 저장되어 있습니다. 따라서 이 접미사를 복원하면 전체 토폴로지의 모든 데이터를 다시 초기화하는 것과 같습니다. 복원할 백업 내용을 사용하여 모든 데이터를 다시 초기화하려는 경우에만 단일 마스터를 복원해야 합니다.
오류가 발생하여 단일 마스터 데이터를 복원할 수 없는 경우, 소비자 데이터가 백업보다 최신 업데이트일 수 있으므로 소비자 중 하나의 데이터를 사용할 수도 있습니다. 이 경우 소비자 복제본의 데이터를 LDIF 파일로 내보낸 다음 이 LDIF 파일을 사용하여 마스터를 다시 초기화해야 합니다.
마스터 복제본에서 백업을 복원하거나 LDIF 파일을 가져온 경우 이 복제본에서 업데이트를 받는 모든 허브와 소비자 복제본을 다시 초기화해야 합니다. 공급자 서버의 로그 파일에 소비자를 다시 초기화해야 한다는 메시지가 기록됩니다.
다중 마스터 시나리오에서 공급자 복원
다중 마스터 복제에서는 복제된 데이터의 신뢰할 수 있는 복사본이 각각의 마스터에 저장되어 있습니다. 현재의 복제본 내용으로 업데이트되면서 만료된 이전 백업은 복원할 수 없습니다. 가능하면 복제 메커니즘에서 다른 마스터의 내용을 사용하여 마스터를 최신 상태로 유지할 수 있도록 해야 합니다.
이렇게 할 수 없는 경우에만 다음 방법 중 하나로 다중 마스터 복제본을 복원해야 합니다.
- 가장 간단한 방법은 백업을 복원하지 않고 다른 마스터 중 하나를 사용하여 해당 마스터를 다시 초기화하는 것입니다. 이렇게 하면 최신 데이터가 해당 마스터로 전송되어 복제할 수 있도록 준비됩니다. "콘솔에서 복제본 초기화" 또는 "명령줄에서 복제본 초기화"를 참조하십시오.
- 수백만 개의 항목이 있는 복제본의 경우, 새로운 이진 복사 기능을 사용하면 다른 마스터 중 하나에서 받은 최신 백업을 보다 신속하게 복원할 수 있습니다. "이진 복사를 사용한 복제본 초기화"를 참조하십시오.
- 마스터의 백업이 다른 마스터 중 어느 하나에 있는 변경 로그 내용의 최대 수명보다 오래되지 않은 경우 이 백업을 사용하여 마스터를 복원할 수 있습니다. 변경 로그 수명에 대한 자세한 내용은 "고급 다중 마스터 구성"을 참조하십시오. 이전 백업을 복원하면 다른 마스터는 자신의 변경 로그를 사용하여 백업이 저장된 이후에 처리된 모든 수정 사항을 마스터에 업데이트합니다.
복원 또는 다시 초기화하는 방법에 관계 없이 마스터 복제본은 초기화 후에 읽기 전용 모드로 남아 있습니다. "다중 마스터 초기화 후의 수렴"에 설명된 것처럼 복제본은 이 동작을 통해 다른 마스터와 동기화할 수 있으며, 그 후에 쓰기 작업이 허용됩니다.
모든 복제본이 동기화된 후에 복원 또는 다시 초기화된 마스터에 대한 쓰기 작업을 허용하는 경우 허브나 소비자 서버를 다시 초기화할 필요가 없다는 이점이 있습니다.
허브 복원
이 절의 내용은, 예를 들어 데이터베이스 파일이 손상되었거나 복제가 장시간 중단된 경우와 같이 복제 메커니즘에서 자동으로 허브 복제본을 최신 상태로 유지할 수 없는 경우에만 적용됩니다. 이 경우 다음 방법 중 하나를 사용하여 허브 복제본을 복원하거나 다시 초기화해야 합니다.
- 가장 간단한 방법은 백업을 복원하지 않고 마스터 복제본 중 하나를 사용하여 허브를 다시 초기화하는 것입니다. 이렇게 하면 최신 데이터가 허브로 전송되어 복제할 수 있도록 준비됩니다. "콘솔에서 복제본 초기화" 또는 "명령줄에서 복제본 초기화"를 참조하십시오.
- 수백만 개의 항목이 있는 복제본의 경우, 새로운 이진 복사 기능을 사용하면 다른 허브 복제본에서 받은 최신 백업을 보다 신속하게 복원할 수 있습니다. "이진 복사를 사용한 복제본 초기화"를 참조하십시오. 복사할 다른 허브 복제본이 없을 경우, 가능하면 앞 단락에 설명된 것처럼 허브를 다시 초기화하거나 다음 단락에 설명된 것처럼 허브를 복원해야 합니다.
- 허브의 백업이 해당 공급자 중 어느 하나(허브 또는 마스터 복제본)에 있는 변경 로그 내용의 최대 수명보다 오래되지 않은 경우 이 백업을 사용하여 허브를 복원할 수 있습니다. 변경 로그 수명에 대한 자세한 내용은 "고급 다중 마스터 구성"을 참조하십시오. 이전 백업을 복원하면 해당 공급자는 자신의 변경 로그를 사용하여 백업이 저장된 이후에 처리된 모든 수정 사항을 허브에 업데이트합니다.
주 허브 복제본을 복원 또는 다시 초기화하는 방법에 관계 없이 다른 모든 수준의 허브를 비롯한 이 허브의 모든 소비자를 반드시 다시 초기화해야 합니다.
전용 소비자 복원
이 절의 내용은, 예를 들어 데이터베이스 파일이 손상되었거나 복제가 장시간 중단된 경우와 같이 복제 메커니즘에서 자동으로 전용 소비자 복제본을 최신 상태로 유지할 수 없는 경우에만 적용됩니다. 이 경우 다음 방법 중 하나를 사용하여 소비자를 복원하거나 다시 초기화해야 합니다.
- 가장 간단한 방법은 백업을 복원하지 않고 공급자(마스터 또는 허브 복제본) 중 하나를 사용하여 소비자를 다시 초기화하는 것입니다. 이렇게 하면 최신 데이터가 소비자로 전송되어 복제할 수 있도록 준비됩니다. "콘솔에서 복제본 초기화" 또는 "명령줄에서 복제본 초기화"를 참조하십시오.
- 수백만 개의 항목이 있는 복제본의 경우, 새로운 이진 복사 기능을 사용하면 다른 소비자 복제본에서 받은 최신 백업을 보다 신속하게 복원할 수 있습니다. "이진 복사를 사용한 복제본 초기화"를 참조하십시오. 복사할 다른 소비자가 없을 경우, 가능하면 앞 단락에 설명된 것처럼 허브를 다시 초기화하거나 다음 단락에 설명된 것처럼 복제본을 복원해야 합니다.
- 소비자의 백업이 해당 공급자 중 어느 하나(허브 또는 마스터 복제본)에 있는 변경 로그 내용의 최대 수명보다 오래되지 않은 경우 이 백업을 사용하여 소비자를 복원할 수 있습니다. 변경 로그 수명에 대한 자세한 내용은 "고급 다중 마스터 구성"을 참조하십시오. 이전 백업을 복원하면 해당 공급자는 자신의 변경 로그를 사용하여 백업이 저장된 이후에 처리된 모든 수정 사항을 허브에 업데이트합니다.
콘솔에서 서버 복원
디렉토리 데이터가 손상되었을 경우 Directory Server 콘솔에서 이전에 생성한 백업을 사용하여 데이터를 복원할 수 있습니다. 콘솔을 사용하여 서버를 복원하려면 디렉토리 서버를 실행해야 합니다. 그러나 복원 중에는 해당 접미사를 사용하여 작업을 처리할 수 없습니다.
이전에 작성한 백업을 사용하여 서버를 복원하려면 다음을 수행합니다.
- Directory Server 콘솔의 최상위 "태스크" 탭에서 "디렉토리 서버 복원" 옆에 있는 버튼을 누릅니다.
"디렉토리 복원" 대화 상자가 표시됩니다.
- "사용 가능한 백업" 목록에서 백업을 선택하거나 "디렉토리" 텍스트 상자에 유효한 백업의 전체 경로를 입력합니다.
"사용 가능한 백업" 목록에는 아래의 기본 디렉토리에 있는 모든 백업이 표시됩니다.
ServerRoot/slapd-serverID/bak
- "확인"을 눌러 서버를 복원합니다.
명령줄에서 서버 복원
다음과 같은 스크립트를 사용하여 명령줄에서 서버를 복원할 수 있습니다.
- bak2db 명령(Solaris 패키지의 directoryserver bak2db) 사용. 이 스크립트를 사용하려면 서버를 종료해야 합니다.
- bak2db.pl Perl 스크립트(Solaris 패키지의 directoryserver bak2db-task) 사용. 이 스크립트를 사용하려면 서버를 실행해야 합니다.
bak2db 명령줄 스크립트 사용
서버가 종료된 동안 명령줄에서 디렉토리를 복원하려면 다음을 수행합니다.
- 명령줄에서 root로 아래 명령을 실행하여 서버를 중지합니다.
Solaris 패키지
# /usr/sbin/directoryserver stop
기타 설치
# ServerRoot/slapd-serverID/stop-slapd
- 백업 디렉토리의 전체 경로를 사용하여 bak2db 명령을 실행합니다.
Solaris 패키지
# /usr/sbin/directoryserver bak2db backupDir
기타 설치
# ServerRoot/slapd-serverID/bak2db backupDir
- 해당 명령을 실행하여 서버를 시작합니다.
Solaris 패키지
# /usr/sbin/directoryserver start
기타 설치
# ServerRoot/slapd-serverID/start-slapd
아래 예제에서는 기본 백업 디렉토리의 백업을 복원합니다.
# bak2db /var/Sun/mps/slapd-example/bak/2001_07_01_11_34_00
자세한 내용은 Sun ONE Directory Server Reference Manual의 Chapter 2, "bak2db"를 참조하십시오.
bak2db.pl Perl 스크립트 사용
서버가 실행되는 동안 명령줄에서 디렉토리를 복원하려면 아래의 Perl 스크립트를 사용합니다.
Solaris 패키지
# /usr/sbin/directoryserver bak2db-task
Windows 플랫폼
cd ServerRoot
bin\slapd\admin\bin\perl slapd-serverID\bak2db.pl기타 설치
# ServerRoot/slapd-serverID/bak2db.pl
아래 예제에서는 ldif2db.pl 스크립트를 사용하여 LDIF 파일을 가져옵니다. -a 옵션은 백업 디렉토리의 전체 경로를 제공합니다.
UNIX 셸 스크립트:
# use directoryserver bak2db-task on Solaris 패키지 installations
/var/Sun/mps/slapd-example/bak2db.pl \
-D "cn=Directory Manager" -w password \
-a /var/Sun/mps/slapd-example/bak/checkpointWindows 배치 파일:
C:\Program Files\Sun\MPS\bin\slapd\admin\bin\perl.exe
C:\Program Files\Sun\MPS\slapd-example\bak2db.pl
-D "cn=Directory Manager" -w password
-a C:\Program Files\Sun\MPS\slapd-example\bak\2001_07_01_11_34_00자세한 내용은 Sun ONE Directory Server Reference Manual의 Chapter 2, "bak2db.pl"을 참조하십시오.
dse.ldif 구성 파일 복원
디렉토리는 dse.ldif 파일의 백업 복사본 두 개를 아래 디렉토리에 작성합니다.
ServerRoot/slapd-serverID/config
dse.ldif.startOK 파일은 서버를 시작할 때 dse.ldif 파일의 복사본을 기록합니다. dse.ldif.bak 파일에는 dse.ldif 파일에 대한 최신 변경 사항의 백업이 저장되어 있습니다. 최신 변경 사항이 저장된 파일을 디렉토리에 복사합니다.
dse.ldif 구성 파일을 복원하려면 다음을 수행합니다.
- 명령줄에서 root로 아래 명령을 실행하여 서버를 중지합니다.
Solaris 패키지
# /usr/sbin/directoryserver stop
기타 설치
# ServerRoot/slapd-serverID/stop-slapd
- 구성 파일이 포함된 디렉토리로 변경합니다.
- 유효한 백업 구성 파일을 사용하여 dse.ldif 파일을 덮어씁니다. 예를 들어 다음과 같이 입력할 수 있습니다.
cp dse.ldif.startOK dse.ldif
- 해당 명령을 실행하여 서버를 시작합니다.
Solaris 패키지
# /usr/sbin/directoryserver start
기타 설치
# ServerRoot/slapd-serverID/start-slapd