2016-05-02 7 views
1

Ich verwende das Azure Elastic Scale Split Merge-Tool, um ein Shardlet zu einem anderen Shard zu verschieben. Alles scheint wie geplant zu laufen, aber am Ende versagt es, ohne mir zu sagen, warum.Elastic Scale Split/Merge-Tool schlägt unerwartet fehl

Dies ist die komplette Ausgabe des Protokolls

Status: Failed 
Details: [Error] The request failed. 
Status: Completing 
Details: [Informational] Deleting any temp tables that were created while processing the request. 
Status: CopyingShardedTables 
Details: [Informational] Successfully copied key range [8643e580-b986-426f-8a11-0d33bd766a37:8743e580-b986-426f-8a11-0d33bd766a37) for sharded table [Edumatic].[Channels]. 
Status: CopyingShardedTables 
Details: [Informational] Moving key range [8643e580-b986-426f-8a11-0d33bd766a37:8743e580-b986-426f-8a11-0d33bd766a37) of sharded tables. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[RoleUsers]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Roles]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Quizes]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Practices]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Polls]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Migrations]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[MediaNodes]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Lectures]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Items]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[GroupUsers]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Groups]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Exams]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Activities]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[TreeStructures]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[TreeNodes]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Workspaces]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Locks]. 
Status: CopyingReferenceTables 
Details: [Informational] Successfully copied reference table [Edumatic].[Media]. 
Status: Starting 
Details: [Informational] Performing data consistency checks on target shards. 
Status: Starting 
Details: [Informational] Starting Split-Merge state machine for request. 
Status: Queued 
Details: [Informational] Operation has been queued. 
Split-Merge request created with OperationId: [4ca7910b-ce66-45fd-a450-c95765c590d6] 

Gibt es eine Möglichkeit für detaillierte Informationen zu fragen, so kann ich wissen, warum es schief geht?

+0

ich genau das gleiche passiert haben, Hast du etwas herausgefunden? Ich vermute, dass es wegen einer zirkulären Beziehung in der db ist, aber für eine andere zirkuläre fk bekomme ich eine richtige Fehlermeldung –

+0

Sorry für die späte Antwort. Es ist mir gelungen, das zu beheben, indem ich die SchemaInfo beim Programmieren der Datenbank initialisiere –

Antwort

0

schaffte ich es zu beheben durch meine Schema Einstellung, wenn ich meine Scherben ein:

 SchemaInfoCollection schemaInfoCollection = this.ShardMapManager.GetSchemaInfoCollection(); 
     SchemaInfo schemaInfo = new SchemaInfo(); 

     schemaInfo.Add(new ReferenceTableInfo("dbo", "ActivityData")); 
     schemaInfo.Add(new ShardedTableInfo("dbo", "Answers", "ChannelId")); 
     schemaInfo.Add(new ShardedTableInfo("dbo","Channels","Id")); 
     schemaInfo.Add(new ReferenceTableInfo("dbo", "ExamData")); 
     schemaInfo.Add(new ShardedTableInfo("dbo","Groups", "ChannelId")) 

     bool keyExists = false; 
     foreach (var pair in schemaInfoCollection) 
     { 
      if (pair.Key == "ElasticScaleWithEF") 
      { 
       keyExists = true; 
       schemaInfoCollection.Replace("ElasticScaleWithEF", schemaInfo); 
      } 
     } 
     if (!keyExists) 
     { 
      schemaInfoCollection.Add("ElasticScaleWithEF", schemaInfo); 
     } 

Nicht sicher, ob es der richtige Weg ist, aber es funktioniert

0

In der Datenbank, die der Split-Merge-Service für Metadaten verwendet, haben Sie eine Tabelle namens RequestStatus.

Wenn Sie select details from requeststatus where operationid = '4ca7910b-ce66-45fd-a450-c95765c590d6' tun, werden Sie einen XML-Bericht mit dem Fehler erhalten, die aufgetreten, dass der Web-ui aus irgendeinem Grunde nicht immer zeigen.