2016-07-18 2 views
0

라이브 데이터 마이그레이션 Tokumx 2.0에서 PSMDB으로 (MongoDB를 3.0 Percona 서버)라이브 데이터 마이그레이션 Tokumx 2.0에서 Percona으로 서버 제로 또는 최소 다운 타임 (PSMDB)

=======와 MongoDB를 3.0

https://github.com/dbpercona/tokumx2_to_psmdb3_migration/blob/master/ZeroDowntimeMigration.md#catchup

이 문서에 소스 TokuMX 2.x를 서버에서 마이그레이션하는 방법에 대해 설명합니다 방문일 : 나는 다음과 같은 가이드를 사용하여 MongoDB 3.0 Percona 서버에 Tokumx 2.0 replicaset 클러스터에서 라이브 데이터 마이그레이션을하고있는 중이 야

은 아래 링크 지정 MongoDB 3.x 용 Percona Server (PSMDB) (최소 0으로 수행) wntime. 마이그레이션 프로세스는 다음과 같은 단계가 필요합니다

스냅 - 시간 원본 백업에 포인트를 덤프 - 스위치를 대상으로 소스에서 작업 로그를 재생 - - 대상에 시 Catchup를로드 BSON을 - 복원 을 BSON하는 소스 백업을 변환 응용 프로그램 계층을 다시 구성 타겟 사용

oplog 동기화를위한 catchup phase 명령 중에. ./bin/toku2mongo --from localhost : 27017 --gtid 4:35 - 호스트 mongoprodcluster1a : 37017 2> & 1 | 어떤 도움이 높이 평가

connected to: mongoprodcluster1a:37017 Sat Jul 16 11:57:31.655 [toku2mongo] ERROR: error replaying command op { op: "c", ns: "cases.$cmd", o: { beginLoad: 1, ns: "cases", indexes: {}, options: {} } }: { ok: 0.0, errmsg: "no such command: beginLoad", code: 59, bad cmd: { beginLoad: 1, ns: "cases", indexes: {}, options: {} } } Sat Jul 16 11:57:31.655 [toku2mongo] Exiting while processing GTID 4:35 Sat Jul 16 11:57:31.655 [toku2mongo] Use --gtid=4:35 to resume. Sat Jul 16 11:57:31.655 [toku2mongo] Saved GTID to file /mnt/tokumx-bkup/toku2mongo-2.0.2-el6-x86_64/toku2mongo_saved_timestamp. Sat Jul 16 11:57:31.655 [toku2mongo] I'll automatically use this value next time if you run from this directory and don't pass --gtid.

: &

./toku2mongo.out 티 오류를 제공합니다. 감사합니다

답변

0

이것은 Percona Server for MongoDB (3.x)에서 지원되지 않는 TokuMX 2.x 측에서 사용자 지정 명령을 실행했기 때문입니다. 이 명령은 캐치 업 단계에서 응용 프로그램에 의해 실행되고 있습니다. 이것은보고있는 오류의 원인입니다. 응용 프로그램에서 실행되는

명령

마이그레이션 프로세스를 시작하기 전에

here을 설명하는 db.runCommand({ 'beginLoad' : [ 'coll1' , ... ] }) 명령이다. 응용 프로그램이 Percona Server for MongoDB (3.x)에서 지원되지 않는 사용자 지정 TokuMX 2.x 기능을 구현하지 않도록하는 것이 중요합니다. 여기에는 일괄 적재 명령뿐만 아니라 거래 명령도 포함됩니다.

마이그레이션 프로세스를 시작하기 전에 임시 환경에서 MongoDB 용 Percona Server를 사용하여 응용 프로그램 기능을 완전하게 테스트하는 것이 가장 좋은 방법입니다.

+0

Tokumx 2.x에서 확인한 결과 BeginLoad 및 Transactions 명령이 있습니다. 반면, Perona 서버에서 mongodb 3.x에 대한 BeginLoad 및 Transaction 명령을 찾지 못했습니다. 자, 그렇다면 권고 사항은 무엇입니까? 우리는 TokuMX를 재구성하거나 mongodb 3.x를 위해 Percona 서버에 무언가를 추가해야합니까, 아니면 toku2mongo 스크립트를 업데이트해야합니까? 또는 이전이 불가능합니까? – gahmed

+0

안녕하세요, 대량로드 및 트랜잭션을 제거하려면 응용 프로그램을 수정해야합니다. MongoDB 용 Percona Server는 낙관적 인 동시성을 사용하고 복잡한 트랜잭션을 지원할 수없는 상향식 MongoDB 3.x 소스 코드를 따릅니다. TokuMX는 트랜잭션을 지원하는 MongoDB 2.x 스토리지 로직의 저수준 재 작성이었습니다. 그러나 TokuMX는 개발을 계속하기에 상업적 이익이 충분하지 않았습니다. –

+0

자세한 답장을 보내 주셔서 대단히 감사합니다. 아직 내 마음에 몇 가지 질문이 있습니다. TokuMX를 수정하여 대량로드 및 트랜잭션을 제거하는 간단한 프로세스입니까? 수정을위한 가동 중지 시간이 필요합니까? – gahmed

관련 문제