[MONGODB] 어떻게 다른 하나 개의 MongoDB를 서버에서 데이터베이스를 복사합니까?
MONGODB어떻게 다른 하나 개의 MongoDB를 서버에서 데이터베이스를 복사합니까?
나는 다른 서버에 두 개의 mongodbs이 모두 --auth로 시작합니다. 지금은 한 서버에서 다른 서버로 DB를 복사합니다.
> mongo
> use admin
> db.copyDatabase("mydb","mydb","another_server")
이것은 보여준다:
{ "errmsg" : "", "ok" : 0 }
과:
> db.getLastError()
null
오류를 보인다 없지만, 사본은 성공하지 못합니다. 사용할 올바른 명령은 무엇입니까?
해결법
-
==============================
1.당신이 --auth를 사용하는 경우, 당신은 거기에 사용자 이름 / 암호를 포함해야합니다 ...
당신이 --auth를 사용하는 경우, 당신은 거기에 사용자 이름 / 암호를 포함해야합니다 ...
당신이 명령을 실행할 때 또한 당신은 "대상"서버에 있어야합니다.
db.copyDatabase(<from_db>, <to_db>, <from_hostname>, <username>, <password>);
작동하지 않는 모든 경우에, 당신은 복사 할 데이터베이스의 노예를 만드는 식으로 뭔가를 시도 할 수도 있습니다 ...
-
==============================
2.몽고 버전 3.2에서 시작 당신은 mongodump / mongorestore를 사용하여 작업을 수행 할 수 있습니다 :
몽고 버전 3.2에서 시작 당신은 mongodump / mongorestore를 사용하여 작업을 수행 할 수 있습니다 :
mongodump --host <from_host> --db <from_db> --archive | mongorestore --host <to_host> --archive
추가 정보는 다음에서 찾을 수 있습니다 :
https://docs.mongodb.com/manual/reference/program/mongodump/ https://docs.mongodb.com/manual/reference/program/mongorestore/
당신이 그것에 SSH 터널을 만들 수 있습니다 도달 몽고 원격 만들려면 :
MongoDB를 원격 서버로 터널을 만들고 로컬 클라이언트 27,117 포트를 통해 터널
ssh -fN -L 27117:localhost:27017 <remote_host>
이 경우 명령은 수에 복원 할 로컬 컴퓨터에서 실행합니다 :
mongodump --port 27117 --db <from_db> --archive | mongorestore --archive
-
==============================
3.저스틴 젠킨스의 대답 또한 당신이 MongoDB를 네트워크에 노출이없는 경우도 SSH 터널을 사용할 수 있음을 염두에 두어야 (로컬 호스트 전용)
저스틴 젠킨스의 대답 또한 당신이 MongoDB를 네트워크에 노출이없는 경우도 SSH 터널을 사용할 수 있음을 염두에 두어야 (로컬 호스트 전용)
나는 "작업"사이를 전환 할 화면을 사용합니다. 내 편의를 위해 SSH 터널 및 MongoDB를 별도의 화면 탭에서 실행됩니다.
1 단계 : 터널을 만드는
ssh username@yourdomainOrIP -L 27018:localhost:27017 ...Enter your password
2 단계 :
mongo use admin db.copyDatabase(<fromdb>,<todb>,"localhost:27018",<username>,<password)
-
==============================
4.대상 서버의 데이터베이스 이름이 원본 서버와 동일하지 않은 경우 마이크 Shauneu의 대답 이외에, 당신은 네임 스페이스를 다시 작성해야합니다. 인증 조합에서 나는 최근 몽고 버전 (> 3.4.6)을 필요로하는 --uri 옵션을 사용하여 작업이있어 :
대상 서버의 데이터베이스 이름이 원본 서버와 동일하지 않은 경우 마이크 Shauneu의 대답 이외에, 당신은 네임 스페이스를 다시 작성해야합니다. 인증 조합에서 나는 최근 몽고 버전 (> 3.4.6)을 필요로하는 --uri 옵션을 사용하여 작업이있어 :
mongodump --uri="mongodb://$sourceUser:$sourcePwd@$sourceHost/$sourceDb" --gzip --archive | mongorestore --uri="mongodb://$targetUser:$targetPwd@$targetHost/$targetDb" --nsFrom="$sourceDb.*" --nsTo="$targetDb.*" --gzip --archive
from https://stackoverflow.com/questions/5495137/how-do-i-copy-a-database-from-one-mongodb-server-to-another by cc-by-sa and MIT license
'MONGODB' 카테고리의 다른 글
[MONGODB] 몽구스 : 깊은 인구 (채워진 필드를 채울) (0) | 2019.12.13 |
---|---|
[MONGODB] 몽고에 인증 할 수 없습니다 "인증 실패" (0) | 2019.12.13 |
[MONGODB] DBRef와 MongoDB를를 조회하는 방법 (0) | 2019.12.13 |
[MONGODB] 또 다른 컬렉션에 MongoDB를 컬렉션의 저장 부분 집합 (0) | 2019.12.13 |
[MONGODB] / 자바 드라이버와 MongoDB를 지난 삽입 된 문서의 ID를 가져옵니다 (0) | 2019.12.13 |