2014-10-03 3 views
2

ArangoDB 인스턴스가 있습니다. 1.4 백업에서 복원해야합니다. 나는 데이터베이스를 백업하기 위해 arangodump를 사용했고 나는 arangorestore로 복원하고 있습니다. _users 컬렉션의 사용자 비밀번호를 제외하고 모든 데이터가 올바르게 복원 된 것처럼 보입니다. 암호화 된 문자열이 들어있는 password라는 사용자 문서에 등록 정보를 만듭니다. 사용자 암호를 복원하는 방법이 있습니까?사용자 비밀번호를 포함한 백업에서 ArangoDB 복원

업데이트 : 두 번째 모습에서 모든 것이 잘못 가져옵니다. 가져온. 서의 모든 데이터를 포함하는 데이터 특성으로. 서를 가져 오는 중입니다. 이것은 분명히 작동하지 않습니다. 이 데이터를 올바르게 가져 오려면 어떻게해야합니까?

업데이트 2 : 가져 오기 프로세스가 정상적으로 작동하지만 덤프가 이상하게 보입니다. 그것은이 같은 래퍼 문서와 각 문서를 덤프 :

{"type":2300,"key":"540727924","rev":"540727924","data": 
    {"_key":"540727924","_rev":"540727924","type":"group"} 
} 

확실하지 무슨 "형, 키, 회전, 데이터"래퍼 문서가 있지만 복원 과정을 노는 것으로 보인다. 최악의 경우 래퍼없이 이러한 문서를 가져 오는 스크립트를 작성합니다. 그러나 이것을 할 수있는 더 좋은 방법이 있다면 그것은 좋을 것입니다.

답변

1

암호는 ArangoDB에 소금에 절인 해시 값으로 저장됩니다. 원래 암호는 저장되지 않으며 해시 값에서 복구 할 수 없습니다. 이것은 보안상의 이유로 이루어지며 다른 곳에서는 일반적인 관행입니다. ArangoDB는 일반 텍스트 암호를 사용하지 않으므로 데이터를 다시 가져올 때 문제가 발생하지는 않습니다.

필자가 볼 수있는 한 덤프 및 복원 작업은 정확합니다. 데이터를 덤프하면 의도적으로 모든 문서의 데이터가 data 속성으로 래핑됩니다. 덤핑은 컬렉션에서 문서를 덤프 할 수있을뿐만 아니라 제거 작업을 덤프 할 수도 있기 때문입니다 (복원 작업으로 다시 적용됩니다). type 속성은보고있는 데이터 유형을 나타내며 2300은 일반 문서이며 가장자리는 2301이고 제거 작업은 2302입니다.

arangodump에서 생성 된 데이터는 arangorestore를 사용하여 다시 가져올 수 있으므로 변환 할 필요가 없습니다. 내 자신의 스크립트를 작성하는 것은 필자의 관점에서 필요하지 않다.

복원 후 암호와 관련된 한 가지 사실은 ArangoDB가 캐시에 암호 데이터를 보관하고이 캐시가 복원 작업에 의해 자동으로 업데이트되지 않을 수 있다는 것입니다.

이 문제가 발생했는지 확인하고 문제가 발생하면 복원 후에 서버를 중지했다가 다시 시작해볼 수 있습니까? 인증이 그 이후가 아닌 후에도 성공하면 암호 캐시에 문제가있을 수 있습니다.

그렇다면 arangorestore 작업에서 arangodump로 생성 된 데이터를 사용할 때 실제로 어떤 문제가 발생합니까? 게시물에서 무엇이 잘못되었는지 명확하지 않습니다.

+0

마지막으로 ArangoDB의 최신 버전으로 업그레이드하여 RegEx 수식을 사용하여 "래퍼"문서를 제거한 다음 수동으로 각 컬렉션에 json을 가져 왔습니다. 이유는 확실하지 않지만 ArangoRestore를 사용했을 때 "래퍼"문서를 복원 할 수있었습니다. 이는 분명히 내가 원했던 것이 아닙니다. – skinneejoe

+0

이상한. 나는 1.4의'arangodump '를 사용하여 ArangoDB 1.4에서 _users 컬렉션을 버리고 2.2의'arangorestore'를 사용하여 ArangoDB 2.2로 가져 왔습니다. 거기에는 아무런 문제가 없으며, 문서는 래퍼 속성이 없어도 괜찮아 보인다. 문서를 다시 가져 오기 위해'arangoimp'를 사용 했습니까? 그러면 wrapper 속성이 생성되지만 'arangorestore'는 그렇게해서는 안됩니다. – stj

관련 문제