728x90
반응형
질문 : MongoDB 데이터베이스의 이름을 어떻게 바꾸나요?
내 MongoDB 데이터베이스 이름에 오타가 있으며 데이터베이스 이름을 바꾸려고합니다.
이렇게 복사 하고 삭제할 수 있습니다.
db.copyDatabase('old_name', 'new_name');
use old_name
db.dropDatabase();
데이터베이스 이름을 바꾸는 명령이 있습니까?
답변
아니에요. https://jira.mongodb.org/browse/SERVER-701 참조
불행히도 이것은 데이터베이스 메타 데이터가 원래 (기본) 스토리지 엔진에 저장되는 방식으로 인해 구현할 수있는 간단한 기능이 아닙니다. MMAPv1 파일에서 모든 단일 컬렉션 및 인덱스를 설명하는 네임 스페이스 (예 : dbName.collection)에는 데이터베이스 이름이 포함되어 있으므로 데이터베이스 파일 집합의 이름을 바꾸려면 모든 단일 네임 스페이스 문자열을 다시 작성해야합니다. 이는 다음 사항에 영향을줍니다.
- .ns 파일
- 컬렉션에 대한 모든 단일 번호 파일
- 모든 인덱스의 네임 스페이스
- 각 컬렉션 및 인덱스의 내부 고유 이름
- system.namespaces 및 system.indexes의 내용 (또는 향후 해당 항목)
- 내가 놓칠 수있는 다른 위치
이것은 독립형 mongod 인스턴스에서 단일 데이터베이스의 이름을 변경하는 것입니다. 복제본 세트의 경우 모든 복제본 노드에서 위의 작업을 수행해야하며 각 노드에서이 데이터베이스를 참조하는 모든 단일 oplog 항목을 어떻게 든 무효화하거나 다시 작성해야합니다. 그런 다음 샤딩 된 클러스터 인 경우 추가해야합니다. DB가 샤딩 된 경우 모든 샤드가 변경되고 구성 서버에는 전체 이름이있는 네임 스페이스 측면에서 모든 샤드 메타 데이터가 있습니다.
라이브 시스템에서는이를 수행 할 수있는 방법이 전혀 없습니다.
오프라인으로 수행하려면 새 이름을 수용하기 위해 모든 단일 데이터베이스 파일을 다시 작성해야하며 그 시점에서 현재 "copydb"명령만큼 느려집니다.
출처 : https://stackoverflow.com/questions/9201832/how-do-you-rename-a-mongodb-database
728x90
반응형
'프로그래밍 언어 > Database' 카테고리의 다른 글
Ruby on Rails 데이터베이스 제거 또는 재생성 (0) | 2021.07.13 |
---|---|
PHP에서 SQL 공격(injection)을 방지하는 방법 (0) | 2021.07.12 |
Sqlite3 데이터베이스에서 열 이름 목록을 얻는 방법 (0) | 2021.07.12 |
관계형 데이터베이스에 계층 적 데이터를 저장하는 옵션 (0) | 2021.07.12 |
SQLite의 초당 INSERT 성능 향상 (0) | 2021.07.09 |