Jump to content
Tossi65

SQL Replikation - Primary Key Fehler

Recommended Posts

Hallo Leute,

wieder ein neues Problem. Wir setzen Replikationein, um Daten aus ausgelagerte Datenbanken in einer zentralen Datenbank zusammn zu führen.

Eine davon geht nicht mehr. Es kommt folgende Fehlermeldung:

 

Zitat

Command attempted:
declare @event_type SMALLINT = 1, @distributor_major_version SMALLINT = 11, @distributor_minor_version SMALLINT = 0, @distributor_build_number SMALLINT = 6251, @totalruntime INT = 8969, @totalworktime INT = 8125, @totalnumtrans INT = 0, @numtranspersec REAL = 0.00, @totalnumcmds INT = 0, @numcmdspersec REAL = 0.00, @totalskippedcmds INT = 0, @totalidletime INT = 0 if object_id(N'sys.sp_repl_generate_subscriber_event') is not null exec sys.sp_repl_generate_subscriber_event @event_state = @event_type,@distrib
(Transaction sequence number: 0x000CD8100000007F003300000000, Command ID: 89)

Error messages:
The process could not bulk copy into table '"dbo"."t_Test"'. (Source: MSSQL_REPL, Error number: MSSQL_REPL20037)
Get help: http://help/MSSQL_REPL20037
Batch send failed
Violation of PRIMARY KEY constraint 'PK_t_Test'. Cannot insert duplicate key in object 'dbo.t_Test'. The duplicate key value is (2, 3). (Source: MSSQLServer, Error number: 2627)
Get help: http://help/2627
To obtain an error file with details on the errors encountered when initializing the subscribing table, execute the bcp command that appears below.  Consult the BOL for more information on the bcp utility and its supported options. (Source: MSSQLServer, Error number: 20253)
Get help: http://help/20253
bcp "PruefDB"."dbo"."t_Test" in "\\zfrlinesql1\ReplData\unc\ZFRLINESQL1$FRPRODUCTION_PRUEFDB_PRUEFDB_TDATA_TOZENTRALE\20190729082802\t_Test_7#1.bcp" -e "errorfile" -t"\n<x$3>\n" -r"\n<,@g>\n" -m10000 -SZDELINESQL1\DEPRODUCTION -T -w (Source: MSSQLServer, Error number: 20253)
Get help: http://help/20253

Ich habe schon ddas Internet gequält, aber bin nicht weitergekommen. Kennt jemand sich damit aus?

 

 

Mfg Torsten

Share this post


Link to post
Share on other sites
Batch send failed
Violation of PRIMARY KEY constraint 'PK_t_Test'. Cannot insert duplicate key in object 'dbo.t_Test'. The duplicate key value is (2, 3)

 

der primarykey ist doppelt.

 

vg DerFrank

Share this post


Link to post
Share on other sites

Hallo DerFRank,

das weiss ich auch. Aber wie löse ich das Problem wieder auf. Agenten neustart bringt nichts. Neuer Snapshot bringt auch nichts. Ich habe verschiedene Szenarien durch aber ohne erfolg.

Wie bekomme ich den vermeindlichen Datensatz heraus????

Share this post


Link to post
Share on other sites

Hallo

Frank war schneller ;-)

vor 35 Minuten schrieb Tossi65:
 

Violation of PRIMARY KEY constraint 'PK_t_Test'. Cannot insert duplicate key in object 'dbo.t_Test'. The duplicate key value is (2, 3). (Source: MSSQLServer, Error number: 2627)

 

Dieser Wert scheint in deiner Tabelle T_test schon zu stehen.

Was für eine Art Replikation verwendet ihr?

Share this post


Link to post
Share on other sites

Hallo MDD,

wenn ich wüsste welchen Datensatz die Replikation in der Zieltabelle einfügen will, dann kann ich auch eingreifen. Der Key liegt bei der Tabelle auf dem Feld ID und diese Werte sind natürlich schon drin.

Seit dem Jahr 2012! Microsoft scheint hier wieder einen nicht aussagekräftige Meldung auszugeben. Kann man die  letzte übetragende ID der Quelle ermitteln???

 

Mdg Torsten

Edited by Tossi65
Rechtschreibung

Share this post


Link to post
Share on other sites

Hallo DerFrank,

ich habe den Eintrag in der Tabelle gefunden, zielseitig. Leider kann ich diesen Eintrag nicht löschen, da er Abhängigkeiten zu anderen Einträgen hat. Mist.

 

Wie und Wo kann ich den Befehl(Command) finden, damit ich diesen Inaktiv oder so setzen kann??? In MySQl setzt man einfach die Abarbeitung auf die nächste Sequenznummer(Step)

Wie geht das bei MS SQL????

 

Noch komischer ist der Umstand, das in der Fehlermeldung einen andere Tabelle genannt wird als in dem betreffenden Command?? Alles etwas verwirrend, Aber es muss doch gehen.

Die Kollegen sind schon sauer weil die Replikation seit Wochen nicht richtig läuft.

 

 

Share this post


Link to post
Share on other sites

hi tossi65

sorry aber bei der Replication bin ich raus... zu lange her.. vielleicht weiss hier im Board jemand eine adäquate Lösung.

 

falls ich doch noch was finde melde ich mich....

 

vg

derFrank

Share this post


Link to post
Share on other sites

Hallo wi-ra,

 

da wir die Datenbanken von den Standorten zu uns replizieren, sind diese unterschiedlich groß. Im Schnit ca 200 bis 500 MB. Aber sie werden alle gemeinsam in eine Zieldatenbank repliziert und die hat schon ca 1,5 GB.

 

Mich interessiert meht die distributio n DB. So wie ich es gelesen haben stehen dort die Commans drin. Wie und wo kann ich da eingreifen????

Die Beschreibung im Internet sind alle nicht so recht zielführend. Den Command über Transaction und CommandID zu identifizieren hat zu verschiedenen Ergenbnissen geführt.

Als Ursache wurden 2 verschiedene Tabellen genannt.

 

Mfg Torsten

Share this post


Link to post
Share on other sites

Ja das hast du richtig verstanden. Die Resultate werden in einer Datenbank zusammengeführt. Die Tabellen sind überall gleich nur die Datenmenge ist durch where ... unterschiedlich und werden übertragen. Fakt ist das eine Tabelle der Meinung ist, das der neue Eintrag schon vorhanden ist. Jetzt möchte ich diesen Eintrag für diese Datenmenge ermitteln und aus den Commands deaktivieren. Wenn es geht?!

,

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


Werbepartner:



×
×
  • Create New...