7.2. 데이터베이스 유형을 BDB에서 LMDB로 수동으로 마이그레이션
다음과 같은 경우 인스턴스의 BDB(Berkeley Database) 백엔드에서 Lightning Memory-Mapped Database(LMDB)로 수동 마이그레이션을 사용합니다.
-
dsctl
유틸리티의 마이그레이션을 수행할 수 없습니다. - LMDB 구성 속성을 수동으로 설정하려고 합니다.
사전 요구 사항
-
root
권한이 있습니다. - 디렉터리 관리자 암호가 있습니다.
절차
- 서버가 오프라인 상태인 동안 명령줄을 사용하여 데이터 내보내기에 설명된 대로 모든 데이터베이스를 LDIF 파일로 내보냅니다.
기존 데이터베이스 크기를 명확히 하고 안전 마진 20%를 추가하여 LMDB 데이터베이스 최대 크기를 결정합니다. LMDB에서 BDB로 마이그레이션하는 경우 이 단계를 건너뜁니다.
기존 데이터베이스 크기를 명확히 합니다.
du -hs /var/lib/dirsrv/slapd-instance_name/db/*/
# du -hs /var/lib/dirsrv/slapd-instance_name/db/*/ 1.8GB
Copy to Clipboard Copied! 20%의 안전 마진을 추가합니다.
1.8 GB + 20% = 2.16 GB
1.8 GB + 20% = 2.16 GB
Copy to Clipboard Copied! 향후 단계에서 최대 데이터베이스 크기가 필요합니다.
인스턴스에서 데이터베이스 유형을 LMDB로 변경하고 인스턴스를 다시 시작합니다.
dsconf instance_name backend config set --db-lib mdb dsctl instance_name restart
# dsconf instance_name backend config set --db-lib mdb Successfully updated database configuration # dsctl instance_name restart Instance "instance_name" has been restarted
Copy to Clipboard Copied! LMDB에서 BDB로 다시 마이그레이션하는 경우
--db-lib
옵션을bdb
로 설정합니다.LMDB 최대 크기를 바이트 단위로 이전 단계 (2.16GB)에서 계산한 값으로 설정하고 인스턴스를 다시 시작합니다.
dsconf instance_name backend config set --mdb-max-size 2319282339 dsctl instance_name restart
# dsconf instance_name backend config set --mdb-max-size 2319282339 Successfully updated database configuration # dsctl instance_name restart Instance "instance_name" has been restarted
Copy to Clipboard Copied! 이 명령은
nsslapd-mdb-max-size
구성 매개변수 값을 설정합니다.참고LMDB에서 BDB로 마이그레이션하는 경우 이 단계를 건너뜁니다.
- 서버가 오프라인 상태인 동안 명령줄을 사용하여 데이터 가져오기에 설명된 대로 LDIF 파일에서 모든 데이터베이스를 가져옵니다.
검증
-
nsslapd-backend-implement
구성 매개변수 값이mdb
로 설정되어 있는지 확인합니다.
dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
# dsconf -D "cn=Directory Manager" ldap://server.example.com backend config get | grep nsslapd-backend-implement
Enter password for cn=Directory Manager on ldap://server.example.com: password
nsslapd-backend-implement: mdb