반응형
Mongorestore를 다른 데이터베이스에 저장
MongoDB에서는 데이터베이스를 덤프하여 콘텐츠를 다른 데이터베이스로 복원할 수 있습니까?예를 들어 다음과 같습니다.
mongodump --db db1 --out dumpdir
mongorestore --db db2 --dir dumpdir
하지만 효과가 없어요.다음은 오류 메시지입니다.
dumpdir dir에서 복원할 컬렉션 목록 작성
서브디렉토리 "subdir/db1"에 대해 무엇을 해야 할지 모르겠습니다. 건너뛰기...
다 했어요.
실제로 이전 덤프의 출력 디렉토리 "내부"에 있는 "데이터베이스 이름" 컨테이너 디렉토리를 가리켜야 합니다.
mongorestore -d db2 dumpdir/db1
또한 보통 <path>만 사용해도 됩니다.-dir이는 "위치를 벗어난" 경우, 즉 "인수 목록의 중간에 있는" 경우에만 필요합니다.
p.s. 아카이브 백업 파일용(mongorestore v3.4.10에서 테스트 완료)
mongorestore --gzip --archive=${BACKUP_FILE_GZ} --nsFrom "${DB_NAME}.*" --nsTo "${DB_NAME_RESTORE}.*"
mongodump --db=DB_NAME --out=/path-to-dump
mongorestore --nsFrom "DB_NAME.*" --nsTo "NEW_DB_NAME.*" /path-to-dump
Blakes Seven의 답변 외에, 당신의 데이터베이스가 인증을 사용하는 경우, 나는 이것을 사용하여 작동하도록 했습니다.--uri최신 mongo 버전(> 3.4.6)이 필요한 옵션:
mongodump --uri="mongodb://$sourceUser:$sourcePwd@$sourceHost/$sourceDb" --gzip --archive | mongorestore --uri="mongodb://$targetUser:$targetPwd@$targetHost/$targetDb" --nsFrom="$sourceDb.*" --nsTo="$targetDb.*" --gzip --archive
감사합니다! @Blakes Seven
도커 노트 추가: 컨테이너 이름은 컨테이너 ID와 교환할 수 있습니다.
(인증 완료, 이름 있는 컨테이너=my_db 및 new_db로 가정)
덤프:
docker exec -it my_db bash -c "mongodump --uri mongodb://db:password@localhost:27017/my_db --archive --gzip | cat > /tmp/backup.gz"
워크스테이션에 복사:
docker cp my_db:/tmp/backup.gz c:\backups\backup.gz
새 컨테이너에 복사(양식 백업 폴더):
docker cp .\backup.gz new_db:/tmp
컨테이너 tmp 폴더에서 복원:
docker exec -it new_db bash -c "mongorestore --uri mongodb://db:password@localhost:27017/new_db --nsFrom 'my_db.*' --nsTo 'new_db.*' --gzip --archive=/tmp/backup.gz"
다른 이름으로 DB를 복원할 수 있습니다.구문은 다음과 같습니다.
mongorestore --port 27017 -u="username" -p="password"
--nsFrom "dbname.*"
--nsTo "new_dbname.*"
--authenticationDatabase admin /backup_path
언급URL : https://stackoverflow.com/questions/36321899/mongorestore-to-a-different-database
반응형
'programing' 카테고리의 다른 글
| SQL 문자열에서 앰퍼샌드 문자를 이스케이프하는 중 (0) | 2023.03.27 |
|---|---|
| 반응 선택 컴포넌트의 옵션으로 어레이를 사용하는 방법 (0) | 2023.03.27 |
| $state.go(app.location)와 $location.path("app/location")의 차이점은 무엇입니까? (0) | 2023.03.27 |
| 스프링 부트 테스트에서 이미 사용 중인 포트 해결 정의 포트 (0) | 2023.03.27 |
| 저장되지 않은 변경 사항을 감지하고 angularjs를 사용하여 사용자에게 경고 (0) | 2023.03.27 |