Tossi65 1 Geschrieben 29. Juli 2019 Melden Teilen Geschrieben 29. Juli 2019 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 Zitieren Link zu diesem Kommentar
DerFrank 15 Geschrieben 29. Juli 2019 Melden Teilen Geschrieben 29. Juli 2019 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 Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 29. Juli 2019 Autor Melden Teilen Geschrieben 29. Juli 2019 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???? Zitieren Link zu diesem Kommentar
MDD 12 Geschrieben 29. Juli 2019 Melden Teilen Geschrieben 29. Juli 2019 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? Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 29. Juli 2019 Autor Melden Teilen Geschrieben 29. Juli 2019 (bearbeitet) 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 bearbeitet 29. Juli 2019 von Tossi65 Rechtschreibung Zitieren Link zu diesem Kommentar
DerFrank 15 Geschrieben 30. Juli 2019 Melden Teilen Geschrieben 30. Juli 2019 (bearbeitet) Hi, Ist zwar schon etwas älter aber vielleicht hilft es dir weiter: SqlServerCentral Cannot insert duplicate keys Oder das hier:Repliction failing with PK error Vg DerFrank bearbeitet 30. Juli 2019 von DerFrank Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 12. August 2019 Autor Melden Teilen Geschrieben 12. August 2019 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. Zitieren Link zu diesem Kommentar
DerFrank 15 Geschrieben 12. August 2019 Melden Teilen Geschrieben 12. August 2019 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 Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 13. August 2019 Autor Melden Teilen Geschrieben 13. August 2019 Hallo wir-ra, transactional. Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 14. August 2019 Autor Melden Teilen Geschrieben 14. August 2019 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 Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 14. August 2019 Autor Melden Teilen Geschrieben 14. August 2019 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?! , Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 15. August 2019 Autor Melden Teilen Geschrieben 15. August 2019 Guten Morgen wi-ra, ich habe zugriff aus alle beteiligten Datenbanken. Ich komme auch auf allen Servern an die distribution Datenbank heran. Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 15. August 2019 Autor Melden Teilen Geschrieben 15. August 2019 Hallo wir-ra, ich habe vollzugriff. Das neue betanken der Zieldatenbank ist nicht so einfach. Wie gesagt, dort laufen aus verschiedenen Standorte die Daten zusammen. Einfacher wäre es die Methode dem Bearbeiten der zu übertragenden Daten. Gibt es dazu keine Anleitung?? Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 21. August 2019 Autor Melden Teilen Geschrieben 21. August 2019 (bearbeitet) Guten Morgen wi-ra, das Problemm wird immer bizzarer. Die eine Replikation, welche vorher gestört war, ist nun grün und keine Fehler. Aber es werden keine Daten übermittelt. Bei sder 2. Replikation, welche einen Fehler mit einem schon vorhandenen Eintrag in einer Tabelle meldet, zeigt auf 2. Tabellen. Im Fehlertext vom Agenten steht Tabelle a. Werte ich die Transaktion mit dem Command ID aus, wird dort eine andere Tabelle genannt. Wie soll man da richtig vorgehen??? Mfg Torsten bearbeitet 21. August 2019 von Tossi65 Zitieren Link zu diesem Kommentar
Tossi65 1 Geschrieben 22. August 2019 Autor Melden Teilen Geschrieben 22. August 2019 Guten Morgen wi-ra, diese Option habe ich vorgeschlagen, aber die Obrigkeit will das nicht. Dagegen konnte ich nicht argumentieren, Was meinst Du da arbeitet "jemand" mit / gegen? Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.