데이터와 함께 mongodb 데이터베이스 복사/클론
나는 나의 Mongo 데이터베이스를 그것의 데이터와 함께 복사해야 합니다.난 시도했다.
db.copyDatabase( "Old_db", "new_db", "localhost" )
하지만 문제는 이전 데이터가 아닌 빈 DB만 복사한다는 것입니다.
2019년 2월
부터db.copyDatabase()v4.0에서 더 이상 사용되지 않습니다. 사용해야 합니다.mongodump그리고.mongorestore대신:
mongodump
--host <source host:port>
--ssl
--username <username>
--password <password>
--authenticationDatabase admin
--db <sourceDbName>
--collection <collection-name>
mongodump명령은 전체 데이터베이스를 이름이 지정된 로컬 폴더로 내보냅니다.dump/<sourceDbName>기본적으로 다음을 사용합니다.mongorestore대상 데이터베이스로 가져오는 명령:
mongorestore
--host <target host:port>
--ssl
--username <username>
--password <password>
--authenticationDatabase admin
--db <targetDbName>
--collection <collection-name>
<dump folder/file>
예:
# backup the whole db (mydb-old):
mongodump -h Cluster0-shard-0/sample-shard-00-00-xyz.mongodb.net:27017 \
--ssl -u user1 -p 123123 --authenticationDatabase admin \
-d mydb-old
# backup only one collection (mydb-old.users):
mongodump -h Cluster0-shard-0/sample-shard-00-00-xyz.mongodb.net:27017 \
--ssl -u user1 -p 123123 --authenticationDatabase admin \
-d mydb-old -c users
# restore the whole db (mydb-old) to mydb-new:
mongorestore -h Cluster0-shard-0/sample-shard-00-00-xyz.mongodb.net:27017 \
--ssl -u user1 -p 123123 --authenticationDatabase admin \
-d mydb-new dump/mydb-old
# restore only one collection (mydb-old.users) to mydb-new.users:
mongorestore -h Cluster0-shard-0/sample-shard-00-00-xyz.mongodb.net:27017 \
--ssl -u user1 -p 123123 --authenticationDatabase admin \
-d mydb-new -c users dump/mydb-old/users.bson
자세히 알아보기:
copydb 또는 clone 또는 해당 도우미를 사용할 수 있습니다.copyDatabase()또는cloneDatabase()하지만 다음과 같은 몇 가지 고려 사항이 있습니다.
http://docs.mongodb.org/v2.2/tutorial/copy-databases-between-instances/ #요구사항
아마도 당신은 그것들 중 일부를 촉발하고 있을 것입니다.
방금 테스트했습니다.
db.copyDatabase("test","testCopy","127.0.0.1")
그리고 완벽하게 작동했습니다.
성공하셨다면 저희에게 알려주세요.
MongoDB v4.2+의 경우:
연상의copyDatabase그리고.cloneDatabase사용되지 않습니다.다음의 조합을 사용해야 합니다.mongodump그리고.mongorestore대신.
예:
원본 DB: [ 이름 =olddb(호스트 =)localhost포트 =27017) ]
대상 DB: [ 이름 =newdb(호스트 =)localhost포트 =27017) ]
접근 1 - 보관 파일 사용:
1 - mongodump를 실행하여 시스템을 덤프합니다.olddb데이터베이스를 보관소로mongodump-old-db:
mongodump --archive="mongodump-old-db" --db=olddb --host=localhost --port=27017
2 - 다음을 사용하여 mongore 복원 실행--nsFrom그리고.--nsTo아카이브에서 복원(데이터베이스 이름 변경):
mongorestore --archive="mongodump-old-db" --nsFrom='olddb.*' --nsTo='newdb.*' --host=localhost --port=27017
접근 2 - 표준 출력 스트림 사용:
보관 파일을 사용하는 대신, 당신은 몽고 덤프를 할 수 있습니다.olddb데이터베이스를 표준 출력 스트림으로 변환하고 mongore restore로 연결합니다.
그냥 실행:
mongodump --archive --db=olddb --host=localhost --port=27017 | mongorestore --archive --nsFrom='olddb.*' --nsTo='newdb.*' --host=localhost --port=27017
팁: 필요에 따라 uri(--uri) 또는 호스트(--host), 포트(--port), 사용자 이름(--username), 암호(--password) 또는 기타 옵션과 같은 추가 옵션을 포함할 수 있습니다.
출처: 해당 주제와 관련된 공식 MongoDB Docs.
인증이 필요한 경우:
db.copyDatabase('crm', 'crm_copy', 'localhost', 'admin', '123456')
방금 동료의 데이터/db 파일을 복사했는데 완벽하게 작동했습니다.연결/통화를 종료하기 전에 종료하는 것이 좋습니다.
저는 데몬을 보는 것을 추천합니다.다시 초기화해야 하는 상황이 발생했습니다(복제본 세트가 있는 경우).
MongoChef를 사용하면 매우 쉽게 수행할 수 있습니다. 동일한 데이터베이스를 로컬로 만든 다음 원본 컬렉션을 복사한 다음 로컬로 새로 만든 db로 전달합니다.
언급URL : https://stackoverflow.com/questions/14846712/copy-clone-mongodb-database-along-with-its-data
'programing' 카테고리의 다른 글
| WPF에서 수직 탭 세트를 구축하는 방법은 무엇입니까? (0) | 2023.05.01 |
|---|---|
| 어떻게 pip3를 업그레이드합니까? (0) | 2023.05.01 |
| 확인란과 해당 레이블을 일관되게 교차 브라우저에 정렬하는 방법 (0) | 2023.05.01 |
| 파이썬 스와핑 이해: a, b = b, a가 항상 b, a = a, b와 같지 않은 이유는 무엇입니까? (0) | 2023.05.01 |
| PSQL의 DECTION 및 NUMERICAL 데이터 유형 간의 차이 (0) | 2023.05.01 |