2011-04-09 3 views
4

로컬 myp-app에서 'mydb'라는 mongodb 데이터베이스를 사용하고 있습니다. 개발 중이며 Dropbox를 통해 db 파일을 동기화하려고하므로 모든 개발 컴퓨터에서 사용할 수 있습니다.Dropbox 위에 mongodb 데이터베이스 동기화하기

데이터베이스에 새로운 데이터를 삽입 할 때마다 'mydb.0'및 'mydb.ns'파일이 변경되지 않는 것 같습니다. 그래서 Dropbox는 아무 것도 동기화하지 않습니다. 어떤 아이디어가 있습니까?

나는 이것이 끔찍한 생각처럼 들리 겠지만 나는 유일한 데이터베이스 사용자이고 한 번에 둘 이상의 컴퓨터에서 데이터베이스를 실행하지 않는다. 또한 다른 사람들과 파일을 공유하지 않습니다. 내가 떠난 곳에서 정확히 다른 컴퓨터에서 계속할 수 있도록주의를 기울이는 것입니다.

답변

3

불행히도 이것은 끔찍한 생각처럼 들립니다. Mongo가 동시에 두 대의 컴퓨터에서 실행되는 경우 어떻게됩니까? 대부분의 경우 두 데이터베이스 모두 손상됩니다. 더 좋은 방법은 mongodump와 mongorestore를 사용하여 데이터베이스를 Dropbox에 덤프하고 덤프에서 복원하는 스크립트를 작성하는 것입니다. 당신은 수동으로 이들을 실행해야 할 것입니다.

데이터베이스 파일을 변경하지 않은 이유는 아마도 Mongo가 데이터베이스 파일을 미리 할당했기 때문에 크기가 변경되지 않고 내용 만 변경 되었기 때문일 수 있습니다. Dropbox가 이것을 발견하지 못할 수도 있습니다. Mongo는 한번에 디스크에 쓰지도 않습니다. 오히려, 나중에 메모리 플러시 될 수있는 메모리 맵핑 된 파일을 사용합니다 (원인이되어서는 안되기 때문에 몇 초가 걸립니다).

+0

나는 데이터베이스를 사용하는 유일한 사람이고 한 번에 둘 이상의 컴퓨터에서 실행하지 않습니다. 그것은 문제가 아닙니다. –

+0

내 질문에 뭔가를 추가했습니다. 스크립트 아이디어를 얻으려면 Tnx를 사용하십시오. –

+0

데이터베이스 파일을 동기화하는 경우 (그리고 동기화 문제를 해결할 경우) Dropbox가 파일을 동기화 할 때 Mongo가 실행 중이 아닌지 반드시 확인해야합니다. 결국 손상된 데이터베이스로 끝날 것입니다. 그것은 제정신이 아닙니다. – Theo

관련 문제