Versuch zum abrufen der logischen Seite in Datenbank 2 konnte nicht abgerufen. Es gehört zu Zuordnungseinheit X nicht zu Y

Gestartet zu bekommen folgende Fehlermeldung, beim ausführen von bestimmten SP. Code im Zusammenhang mit diesem Fehler ist ziemlich einfach, verbinden #temp-Tabelle zu echten Tisch

Vollständigen text der Fehlermeldung:

Msg 605, Level 21, State 3, Procedure spSSRSRPTIncorrectRevenue, Line 123
Attempt to fetch logical page (1:558552) in database 2 failed. It belongs to allocation unit 2089673263876079616 not to 4179358581172469760.

Hier ist was ich gefunden habe:
https://support.microsoft.com/en-us/kb/2015739

Dies deutet auf eine Art von Problem mit der Datenbank. Ich Laufe DBCC CHECKDB auf Benutzer-Datenbank und die temporäre Datenbank – alle Pässe.

Zweite Sache, die ich mache – zu versuchen, um herauszufinden, welche Tabelle die Zuordnung Einheiten gehören

SELECT au.allocation_unit_id, OBJECT_NAME(p.object_id) AS table_name, fg.name AS filegroup_name,
au.type_desc AS allocation_type, au.data_pages, partition_number
FROM sys.allocation_units AS au
JOIN sys.partitions AS p ON au.container_id = p.partition_id
JOIN sys.filegroups AS fg ON fg.data_space_id = au.data_space_id
WHERE au.allocation_unit_id in(2089673263876079616, 4179358581172469760)
ORDER BY au.allocation_unit_id

Dieser gibt 2 Objekte in tempdb, nicht in der user-db. Also, es macht mich denken, dass es irgendeine Art der Beschädigung von Daten in tempdb? Ich bin Entwickler, kein DBA. Irgendwelche Vorschläge, was ich als Nächstes überprüft werden soll?

Auch, wenn ich obige Abfrage, wie kann ich sagen, ECHTEN Objekt-name, dass ich das verstehen? Wie #myTempTable______... statt #07C650CE

InformationsquelleAutor katit | 2016-03-28



4 Replies
  1. 0

    In meinem Fall abschneiden und neu Auffüllen der Daten in den betroffenen Tabellen war die Lösung.

    Wahrscheinlich die Daten in den Tabellen wurde beschädigt.

  2. 0

    Konnte ich dies beheben, durch das löschen des SQL-caches:

    DBCC FREEPROCCACHE
    GO
    DBCC DROPCLEANBUFFERS
    GO

    Anscheinend einen Neustart des SQL-Dienstes hätte die gleichen Auswirkungen.

    (über Gemacht Von SQL, hier wiedergegeben, um anderen zu helfen!)

  3. 0

    Datenbank-ID 2 bedeutet, dass Ihre tempdb beschädigt ist. Befestigung tempdp ist einfach. Starten Sie SQL Server-Dienst, und Sie sind gut zu gehen.

  4. 0

    Dies könnte eine Instanz einen Fehler von Microsoft behoben, die auf SQL Server 2008 mit Abfragen auf temporäre Tabellen, die self-Referenz (zum Beispiel wir haben erlebt, dass es beim laden von Daten aus einem realen Tisch in eine temporäre Tabelle und filtert alle Zeilen, die wir bereits aufgefüllt haben, der in der temp-Tabelle in einem vorherigen Schritt).

    Scheint es, dass es geschieht nur auf temporären Tabellen, die keine Identität/primary key, so eine Lösung ist, fügen Sie ein, wenn Sie die patch-CU3 oder später können Sie auch den hotfix zu aktivieren, die über das drehen eines trace-flag auf.

    Weitere details über den bug/fixes: https://support.microsoft.com/en-us/help/960770/fix-you-receive-error-605-and-error-824-when-you-run-a-query-that-inse

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.