Die folgenden Abschnitte enthalten Informationen zu Tabellen, die DATALINK-Spalten enthalten. Eine vollständige Beschreibung der DATALINK-Spalten finden Sie im Abschnitt zur Anweisung CREATE TABLE im Handbuch SQL Reference.
Wenn eine Anwendung SQL-Anforderungen an Data Links-Server sendet, auf denen DB2 Data Links Manager ausgeführt wird (über DATALINK-Spalten mit dem Attribut FILE LINK CONTROL), verteilt der Datenbankmanager die Auslastung auf die Data Links-Server. Außerdem verfolgt er, welche Data Links-Server beteiligt sind. Wenn die Anwendung für eine Transaktion den Befehl COMMIT absetzt, schreibt der Datenbankmanager die Transaktion mit Hilfe des Protokolls zur zweiphasigen Festschreibung fest. In der ersten Phase schreibt der Datenbankmanager einen PREPARE-Protokollsatz und sendet an alle Data Links-Server eine PREPARE-Anforderung. Die einzelnen Data Links-Server antworten daraufhin mit einer der folgenden Rückmeldungen:
Die erste Phase gilt als erfolgreich, wenn alle Data Links-Server mit "YES" antworten.
Die Verarbeitung in der zweiten Phase hängt vom Ergebnis der ersten Phase ab. Wenn mindestens ein Data Links-Server mit "NO" antwortet, sendet der Datenbankmanager an alle beteiligten Data Links-Server eine ABORT-Anforderung. Die Transaktion wird mit ROLLBACK rückgängig gemacht, und an die Anwendung wird die Fehlernachricht SQL0903N mit dem Ursachencode "03" zurückgegeben. Andernfalls setzt der Datenbankmanager die COMMIT-Operation der Transaktion fort, wie er es ohne beteiligte Data Links-Server normalerweise tut. Am Ende der Verarbeitung sendet er an alle an der Transaktion beteiligten Data Links-Server eine COMMIT-Anforderung.
Wenn auf einem Data Links-Server ein Fehler auftritt, bei dem einige Transaktionen im Status PREPARED bleiben, werden diese Transaktionen als unbestätigte Transaktionen bezeichnet. Der Datenbankmanager ist für die Überwachung des Ergebnisses dieser Transaktionen zuständig und löst diese schließlich auf dem Data Links-Server auf. Immer wenn der Datenbankmanager erkennt, daß ein Fehler auf einem Data Links-Server möglicherweise unbestätigte Transaktionen verursacht hat, versetzt er den Data Links-Server in den Status "Wiederherstellung nach einem Systemabsturz erforderlich". In diesem Status werden alle SQL-Anforderungen, bei denen der Data Links-Server beteiligt ist, zurückgewiesen. Die Fehlernachricht SQL0357N mit dem Ursachencode "03" wird an die Anwendung zurückgegeben, von der die SQL-Anforderung ausging.
Während der Verarbeitung der Befehle RESTART und ACTIVATE DATABASE sowie des ersten Befehls CONNECT versucht der Datenbankmanager, zu jedem konfigurierten Data Links-Server eine Verbindung herzustellen und dessen unbestätigte Transaktionen aufzulösen, indem er diese abbricht oder festschreibt. Ein Status eines Data Links-Servers wird als verfügbar markiert, wenn alle seine unbestätigten Transaktionen aufgelöst werden, mit Ausnahme der Transaktionen, die auch auf dem Datenbankmanager unbestätigt sind. Im Verfügbarkeitsstatus werden SQL-Anforderungen, an denen Data Links-Server beteiligt sind, zugelassen. Wenn nach dem Ende dieses Versuchs, unbestätigte Transaktionen aufzulösen, der Datenbankmanager feststellt, daß sich möglicherweise auf einem Data Links-Server weiterhin aufzulösende unbestätigte Transaktionen befinden, versetzt er diesen in den Status "Wiederherstellung nach einem Systemabsturz erforderlich". Dieser Fall tritt z. B. ein, wenn ein Data Links-Server während der Verarbeitung von RESTART, ACTIVATE DATABASE oder dem ersten CONNECT nicht verfügbar ist oder wenn der Data Links-Server während dieser Verarbeitung einen Fehler erkennt.
Während sich ein Data Links-Server, der für eine Datenbank konfiguriert ist, im Status "Wiederherstellung nach einem Systemabsturz erforderlich" befindet, läßt der Datenbankmanager keine SQL-Anforderungen zu, an der dieser Data Links-Server beteiligt ist. SQL-Anforderungen, die andere Datenbankdaten betreffen, sind weiterhin zulässig. Der Datenbankmanager startet eine Verarbeitung, bei der versucht wird, die Wiederherstellung nach einem Systemabsturz auf den einzelnen Data Links-Servern, auf denen eine Wiederherstellung erforderlich ist, asynchron abzuschließen. Wenn die Verarbeitung der Wiederherstellung nach Systemabsturz erfolgreich ist, wird der Status des Data Links-Servers auf verfügbar gesetzt und so weitere SQL-Anforderungen, an denen er beteiligt ist, zugelassen.
DB2 sorgt dafür, daß bis zu dem Zeitpunkt, zu dem das Sicherungsdienstprogramm (BACKUP) beendet wird, verbundene Dateien auf Data Links-Servern, auf denen DB2 Data Links Manager ausgeführt wird, ebenfalls gesichert werden. (Das BACKUP-Programm kann online oder offline ausgeführt werden, und das Sicherungsabbild kann sowohl von der Datenbank als auch vom Tabellenbereich erstellt werden.) Die folgende Beschreibung trifft nur auf Dateien zu, die über DATALINK-Spalten verbunden sind, deren Parameter RECOVERY auf den Wert YES gesetzt ist. (Dateien, auf die über DATALINK-Spalten mit RECOVERY=NO verwiesen wird, werden nicht gesichert.)
Wenn Dateien verbunden werden, werden sie von den Data Links-Servern zum asynchronen Kopieren auf einen Archivierungs-Server wie TSM (Tivoli Storage Manager) oder auf Platte eingeplant. Wenn das Sicherungsprogramm ausgeführt wird, stellt DB2 sicher, daß alle Dateien, die zum Kopieren eingeplant sind, kopiert werden. Zu Beginn des Sicherungsvorgangs stellt DB2 außerdem sicher, daß alle Data Links-Server, die in der DB2-Konfigurationsdatei angegeben sind, aktiv sind. Wenn ein Data Links-Server eine oder mehrere verbundene Dateien hat, muß er bis zum Ende der Sicherungsoperation verfügbar sein. Wenn ein Data Links-Server nicht mehr verfügbar ist, bevor die Sicherungsoperation abgeschlossen ist, wird die Sicherungsoperation als unvollständig deklariert.
Wenn die DataLink-Verbindung einer Datei aufgehoben wird, wird sie entweder gelöscht oder auf ihre vorigen Berechtigungen zurückgesetzt, je nachdem, welcher Wert für den Parameter ON UNLINK angegeben ist. Eine erfolgreiche Sicherungsoperation kann den Data Links-Server dazu veranlassen, die archivierten Versionen von Dateien auf dem Archivierungs-Server (entweder Platte oder TSM) zu bereinigen. Der Datenbankkonfigurationsparameter num_db_backups gibt die Anzahl der DB2-Sicherungen an, bevor archivierte Versionen der Dateien, deren Programmverbindung aufgehoben ist, entfernt werden. Weitere Informationen zu diesem Konfigurationsparameter finden Sie in Kapitel 32, Konfigurieren von DB2.
Wenn nicht mehr verbundene Dateien entfernt werden, werden die Informationen zu den nicht mehr verbundenen Dateien aus den Registriertabellen des Data Links-Servers ebenfalls entfernt.
Die folgenden Informationen beziehen sich auf den Fall, daß Sie eine DATALINK-Spalte (bzw. Spalten) haben, die mit der Option RECOVERY=YES für eine Tabelle definiert ist (bzw. sind). Wenn eine Tabelle eine DATALINK-Spalte enthält, für die die Option RECOVERY=NO definiert ist, wird die Tabelle am Ende der Wiederherstellungsoperation in den Status Datalink_Reconcile_Pending (anstehende Abstimmung) versetzt. Weitere Informationen finden Sie in Abstimmen von Data Links.
Während der Wiederherstellungsoperation können Tabellen mit DATALINK-Spalten in einen der folgenden Status versetzt werden.
Wenn eine Tabelle in den Status Datalink_Reconcile_Not_Possible (Abstimmung nicht möglich) versetzt wurde, ist sie für uneingeschränkte Operationen an allen Spalten außer den DATALINK-Spalten verfügbar. Wenn eine DATALINK-Spalte in einer SELECT-Anweisung enthalten ist, wird eine Warnung ausgegeben. Sie können UPDATE-Aufrufe für DATALINK-Spalten absetzen (mit einigen Einschränkungen: Einzelheiten finden Sie in Aufheben des Status Datalink_Reconcile_Not_Possible für eine Tabelle). Sie können keine INSERT- und DELETE-Anweisungen absetzen, da sie die DATALINK-Spalte betreffen.
Wenn eine Tabelle in den Status Datalink_Reconcile_Pending (anstehende Abstimmung) versetzt wurde, ist sie für uneingeschränkte Operationen an allen Spalten außer den DATALINK-Spalten verfügbar. Wenn eine DATALINK-Spalte in einer SELECT-Anweisung enthalten ist, wird eine Warnung ausgegeben. Sie können jedoch keine DML-Anweisungen wie UPDATE, INSERT oder DELETE absetzen.
Diese Status werden in der Datei db2diag.log aufgelistet, wenn die Dienstprogramme für Wiederherstellung und aktualisierende Wiederherstellung ausgeführt werden. Sie können diese Informationen auch über den Befehl db2dart abrufen.
Wenn Sie eine Datenbank bzw. einen Tabellenbereich wiederherstellen und die Option WITHOUT DATALINK nicht angeben, müssen folgende Bedingungen erfüllt sein, damit die Wiederherstellung erfolgreich beendet wird:
Wenn nicht alle Informationen zu DATALINK-Spalten in den Registriertabellen eingetragen sind, wird die Tabelle mit den fehlenden Informationen zu einer DATALINK-Spalte nach dem Ende der Wiederherstellungsoperation (bzw. der Operation zur aktualisierenden Wiederherstellung, falls verwendet) in den Status Datalink_Reconcile_Not_Possible (Abstimmung nicht möglich) versetzt.
Wenn die Sicherung nicht in den Registriertabellen aufgezeichnet ist, ist die gelieferte Sicherungsdatei eine frühere Kopie als durch den Wert für num_db_backups angegeben und wurde somit bereits "speicherbereinigt". Dies bedeutet, daß die archivierten Dateien aus dieser früheren Sicherung entfernt wurden und nicht wiederhergestellt werden können. Alle Tabellen mit DATALINK-Spalten werden in den Status Datalink_Not_Possible versetzt.
Die Tabelle bleibt für Benutzer verfügbar, jedoch geben die Werte in den DATALINK-Spalten eventuell die Dateien nicht korrekt an (z. B. wird vielleicht keine Datei gefunden, die dem Wert für die DATALINK-Spalte entspricht).
Wenn Sie diese Verfahrensweise nicht wünschen, können Sie die Tabelle in den Status Überprüfung anstehend versetzen, indem Sie den Befehl SET CONSTRAINTS FOR tabellenname TO DATALINK RECONCILE PENDING absetzen.
Wenn sich nach einer Wiederherstellungsoperation eine Tabelle im Status Datalink_Reconcile_Not_Possible (Abstimmung nicht möglich) befindet, können Sie die Daten der DATALINK-Spalten mit einer der unter Aufheben des Status Datalink_Reconcile_Not_Possible für eine Tabelle beschriebenen Methoden berichtigen.
Wenn Sie eine Datenbank oder einen Tabellenbereich wiederherstellen und die Option WITHOUT DATALINK angeben und einer oder mehrere Data Links-Server, die DATALINK-Daten enthalten, nicht verfügbar sind, werden alle Tabellenbereiche, die Tabellen mit DATALINK-Werten enthalten, auf dem nicht verfügbaren Server in den Status RESTORE PENDING (Wiederherstellung anstehend) versetzt.
Anmerkung: | Sie können nur auf der Datenbankebene, nicht aber auf der Tabellenbereichsebene eine Wiederherstellung ohne aktualisierende Wiederherstellung ausführen. Zur Wiederherstellung ohne ROLLFORWARD-Operation können Sie entweder eine nicht wiederherstellbare Datenbank (d. h. eine Datenbank, für die die Umlaufprotokollierung aktiv ist) wiederherstellen oder das Dienstprogramm RESTORE mit dem Parameter WITHOUT ROLLING FORWARD verwenden. |
Wenn Sie das Dienstprogramm RESTORE mit der Option WITHOUT DATALINK verwenden, werden alle Tabellen mit DATALINK-Spalten in den Status Datalink_Reconcile_Pending (Abstimmung anstehend) versetzt, und während der Wiederherstellungsoperation wird keine Abstimmung mit den Data Links-Servern durchgeführt.
Wenn Sie die Option WITHOUT DATALINK nicht verwenden sowie sämtliche Data Links-Server verfügbar sind und sämtliche Informationen zu den DATALINK-Spalten vollständig in den Registriertabellen aufgezeichnet sind, wird für jeden in der Sicherungsdatei eingetragenen Data Links-Server folgendes ausgeführt:
Wenn Sie die Datenbank bzw. den Tabellenbereich wiederherstellen und anschließend bis zum Ende der Protokolle aktualisierend wiederherstellen (d. h. alle Protokolle stehen zur Verfügung), ist keine Abstimmungsüberprüfung erforderlich (unabhängig davon, ob der Parameter WITHOUT DATALINK angegeben wurde). Wenn Sie nicht sicher sind, ob alle Protokolle für die aktualisierende Wiederherstellung verfügbar sind, oder meinen, daß Sie eventuell DATALINK-Werte abstimmen (reconcile) müssen, gehen Sie wie folgt vor:
SET CONSTRAINTS FOR tabellenname TO DATALINK RECONCILE PENDING
Dadurch wird die Tabelle in den Status Datalink_Reconcile_Pending (Abstimmung anstehend) und den Status check-pending (Überprüfung anstehend) versetzt.
SET CONSTRAINTS FOR tabellenname IMMEDIATE CHECKED
Dadurch wird die Tabelle aus dem Status check-pending (Überprüfung anstehend) herausgenommen, aber im Status Datalink_Reconcile_Pending (Abstimmung anstehend) belassen. Sie müssen das Dienstprogramm zum Abstimmen (Reconcile) verwenden, um die Tabelle aus diesem Status herauszunehmen. Weitere Informationen finden Sie in Abstimmen von Data Links.
Bei Verwendung von Data Links-Tabellen können Sie bis zum Ende der Protokolle oder bis zu einem angegebenen Zeitpunkt aktualisierend wiederherstellen.
Tabellen in Tabellenbereichen, die bis zu einem bestimmten Zeitpunkt aktualisierend wiederhergestellt werden, werden am Ende der aktualisierenden Wiederherstellung in den Status Datalink_Reconcile_Pending (Abstimmung anstehend) versetzt. Sie sollten das Dienstprogramm zur Abstimmung (Reconcile) verwenden, um sie aus diesem Status herauszunehmen. Weitere Informationen finden Sie in Abstimmen von Data Links.
Im folgenden wird ein einfaches Szenario beschrieben, das Dateien zeigt,
die behalten werden müssen, um Sicherung und Wiederherstellung durchführen zu
können. Das Beispiel zeigt Änderungen am Wert einer einzelnen Zeile in
einer Spalte des Typs DATALINK zusammen mit den Dateien, die der DB2 Data
Links Manager zur Unterstützung der Wiederherstellung behalten muß. Für
dieses Beispiel wird angenommen, daß es keine Unterstützung für eine
aktualisierende Wiederherstellung dieser Dateien bis zu einem Zeitpunkt gibt,
der vor der letzten Sicherung liegt. Data Links-Server, die DB2 Data
Links Manager ausführen, unterliegen keiner solchen Einschränkung.
Beachten Sie, daß DateiA bis Zeit 3 existiert, zu der sie gelöscht wird, weil
die Verbindung zur Zeit 2 aufgehoben wurde, und für die Datenbank in diesem
Beispiel gilt, daß eine nicht mehr verbundene Datei bis zur Durchführung der
nächsten Sicherung behalten wird (d. h. der
Konfigurationsparameter num_db_backups der Datenbank hat den
Wert 1).
Zeit | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
---|---|---|---|---|---|---|---|
Aktivität | Erstellen | Aktualisieren | Sichern | Aktualisieren | Aktualisieren | Löschen | Wiederherstellen bis 5 |
Spaltenwert | WertA | WertB | WertB | WertC | WertD | - | WertD |
Verbundene Datei | DateiA | DateiB | DateiB | DateiC | DateiD | - | DateiD |
Vom Data Links File Manager extra behaltene Dateien |
| DateiA |
| DateiB | DateiB, DateiC | DateiB, DateiC, DateiD | DateiB, DateiC |
Anmerkung: | Die Wiederherstellung über DataLink verbundener Dateien erfolgt immer in Verbindung mit dem Rest der Datenbank. |
Die folgende Tabelle zeigt die verschiedenen Arten von Wiederherstellung,
die Sie durchführen können, die DB2 Data Links Manager-Verarbeitung, die bei
der RESTORE- und ROLLFORWARD-Operationen auftritt, und ob Sie nach Beendigung
der Wiederherstellung das Dienstprogramm Reconcile zur Abstimmung ausführen
müssen:
Art der Wiederherstellung | DB2 Data Links Manager-Verarbeitung bei RESTORE | DB2 Data Links Manager-Verarbeitung bei ROLLFORWARD | Abstimmung mit Reconcile |
---|---|---|---|
Nicht wiederherstellbare Datenbank (logretain=NO) | |||
RESTORE für Datenbank | Schnelle Abstimmung wird durchgeführt | N/V | Kann wahlfrei ausgeführt werden, wenn ein Problem mit Dateiverbindungen (Links) angenommen wird. |
RESTORE für Datenbank mit Option WITHOUT DATALINK | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | N/V | Erforderlich |
Wiederherstellbare Datenbank (logretain=YES) | |||
RESTORE für Datenbank mit Option WITHOUT ROLLING FORWARD | Schnelle Abstimmung wird durchgeführt | N/V | Wahlfrei |
RESTORE für Datenbank mit Optionen WITHOUT ROLLING FORWARD und WITHOUT DATALINK | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | N/V | Erforderlich |
RESTORE für Datenbank und ROLLFORWARD bis Ende der Protokolle | Keine Aktion | Keine Aktion | Wahlfrei |
RESTORE für Datenbank mit Option WITHOUT DATALINK und ROLLFORWARD bis Ende der Protokolle | Keine Aktion | Keine Aktion | Wahlfrei |
RESTORE für Tabellenbereich und ROLLFORWARD bis Ende der Protokolle | Keine Aktion | Keine Aktion | Wahlfrei |
RESTORE für Tabellenbereich mit Option WITHOUT DATALINK und ROLLFORWARD bis Ende der Protokolle | Keine Aktion | Keine Aktion | Wahlfrei |
RESTORE für Datenbank und ROLLFORWARD bis zu einem bestimmten Zeitpunkt | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | Erforderlich |
RESTORE für Datenbank mit Option WITHOUT DATALINK und ROLLFORWARD bis zu einem Zeitpunkt | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | Erforderlich |
RESTORE für Tabellenbereich und ROLLFORWARD bis zu einem Zeitpunkt | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | Erforderlich |
RESTORE für Tabellenbereich mit Option WITHOUT DATALINK und ROLLFORWARD bis zu einem Zeitpunkt | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | Erforderlich |
RESTORE für Datenbank unter anderem Datenbank-, Alias-, Host-Namen oder Exemplar ohne ROLLFORWARD (siehe Anmerkung ***) | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | N/V | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
RESTORE für Datenbank unter anderem Datenbank-, Alias-, Host-Namen oder Exemplar und ROLLFORWARD | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
RESTORE für Datenbank von einer unbrauchbaren Sicherung (Abbild wurde auf dem Data Links-Server speicherbereinigt) ohne ROLLFORWARD (siehe Anmerkung ***) | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | N/V | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
RESTORE für Datenbank von einer unbrauchbaren Sicherung mit ROLLFORWARD (Abbild wurde auf dem Data Links-Server speicherbereinigt) | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
RESTORE für Tabellenbereiche von einer unbrauchbaren Sicherung mit ROLLFORWARD (Abbild wurde auf dem Data Links-Server speicherbereinigt) | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
RESTORE für Datenbank von einer unbrauchbaren Sicherung (Abbild wurde auf dem Data Links-Server speicherbereinigt), mit der Option WITHOUT DATALINK und ohne ROLLFORWARD (siehe Anmerkung ***) | Tabellen werden in den Status Datalink_Reconcile _Pending gesetzt | N/V | Erforderlich |
RESTORE für Datenbank von einer unbrauchbaren Sicherung (Abbild wurde auf dem Data Links-Server speicherbereinigt), mit der Option WITHOUT DATALINK und mit ROLLFORWARD | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
RESTORE für Tabellenbereich von einer unbrauchbaren Sicherung (Abbild wurde auf dem Data Links-Server speicherbereinigt), mit der Option WITHOUT DATALINK und mit ROLLFORWARD | Keine Aktion | Tabellen werden in den Status Datalink_Reconcile _Not_Possible gesetzt. | Wahlfrei, aber Tabellen im Status Datalink_Reconcile _Not_Possible müssen manuell korrigiert werden. |
Eine mit RESTORE wiederhergestellte Tabelle (bzw. Tabellen) mit einer DATALINK-Spalte wird unter den folgenden Bedingungen in den Status Datalink_Reconcile_Not_Possible (Abstimmung nicht möglich) versetzt:
DB2 ermöglicht den Zugriff auf die Tabelle, auch wenn die Werte der DATALINK-Spalte vielleicht ungültig sind. Wenn Sie den Zugriff auf eine Tabelle mit möglicherweise inkonsistenten Werten in der DATALINK-Spalte verhindern wollen, setzen Sie den Befehl SET CONSTRAINTS FOR tabellenname TO DATALINK RECONCILE PENDING ab. Gehen Sie wie folgt vor, um die DATALINK-Werte zu aktualisieren:
Anschließend setzen Sie den Status Datalink_Reconcile_Not_Possible (Abstimmung nicht möglich) mit dem folgendem Befehl zurück:
SET CONSTRAINTS FOR tabellenname DATALINK RECONCILE PENDING IMMEDIATE UNCHECKED
Zur Abstimmung von DataLinks wird das Dienstprogramm Reconcile verwendet. Dieses Dienstprogramm wird von DB2 aus eingeleitet und betrifft alle Data Links-Server, die DB2 Data Links Manager ausführen und auf die durch DATALINK-Spaltenwerte verwiesen wird. Es überprüft entweder, ob die angegebenen Dateien auf dem Data Links-Server vorhanden sind oder ob die Verbindungen (Links) wiederhergestellt werden können. In den folgenden Abschnitten wird beschrieben, wie DB2 erkennt, ob Sie DataLinks abstimmen müssen und wie Sie sie abstimmen.
Wenn eine Data Links-Server-Dateireferenz nicht vorhanden ist oder nicht erneut hergestellt werden kann, stellt das Dienstprogramm Reconcile eine Kopie der fehlerhaften Zeilen zusammen mit einer Ursache für den jeweiligen Fehler in eine Ausnahmetabelle (falls angegeben) und ändert anschließend diese Zeilen. Wenn die Ausnahmetabelle nicht angegeben ist, werden die DATALINK-Spaltenwerte, für die keine Dateireferenz erneut hergestellt werden konnte, mit einer Spaltenkennung und einer Ursachenangabe in eine Ausnahmeberichtsdatei kopiert. Sie können die Daten der Ausnahmetabelle (falls angegeben) oder des Berichts zur Aktualisierung der Zeilen für die erforderlichen Korrekturen verwenden. Die Ausnahmetabelle, die mit dem Dienstprogramm Reconcile verwendet wird, ist mit der Ausnahmetabelle des Dienstprogramms LOAD identisch. Weitere Informationen zum Dienstprogramm LOAD finden Sie im Handbuch Versetzen von Daten Dienstprogramme und Referenz. Der Bericht verwendet die Namenskonvention report.exp (die Erweiterung .exp wird vom Dienstprogramm Reconcile bereitgestellt). Sie können zum Beispiel mit der folgenden Anweisung das Dienstprogramm Reconcile aufrufen:
db2 RECONCILE dept DLREPORT /u/scottba/report FOR EXCEPTION excptab
Mit diesem Befehl wird die Tabelle mit dem Namen dept abgestimmt und Ausnahmen werden in die Ausnahmetabelle excptab geschrieben, die vom Benutzer erstellt wurde. Informationen zu Dateien, deren Verbindung beim Abstimmen aufgehoben wurde, werden in die Datei report.ulk geschrieben, die im Verzeichnis /u/scottba erstellt wird. Wenn FOR EXCEPTION excptab nicht angegeben wird, werden die Ausnahmedaten in die Datei report.exp geschrieben, die im Verzeichnis /u/scottba erstellt wird. Weitere Informationen zum Dienstprogramm Reconcile finden Sie im Handbuch Command Reference.
Im folgenden werden einige Situationen beschrieben, in denen Sie eventuell das Dienstprogramm Reconcile ausführen müssen:
In diesem Fall befinden sich Tabellen mit DATALINK-Spaltendaten bereits im Status Datalink_Reconcile_Pending (Abstimmung anstehend). Sie sollten das Dienstprogramm Reconcile für jede dieser Tabellen ausführen.
In einigen Fällen, zum Beispiel bei den SQL-Anweisungen UPDATE und DELETE, kann DB2 möglicherweise ein Problem mit den Metadaten auf einem Data Links-Server erkennen. In solchen Fällen läßt DB2 die SQL-Anweisung fehlschlagen. Als Maßnahme würden Sie die Tabelle mit der Anweisung SET CONSTRAINTS in den Status Datalink_Reconcile_Pending (Abstimmung anstehend) versetzen und anschließend das Dienstprogramm Reconcile für diese Tabelle ausführen.
Ein Fehler wie dieser wird normalerweise von einer Anwendung erkannt, wenn sie auf eine Datei nicht zugreifen kann, deren Dateiverweis sie aus der Datenbank abgerufen hat. Sie müssen die Tabelle in den Status Datalink_Reconcile_Pending (Abstimmung anstehend) versetzen und anschließend das Dienstprogramm Reconcile für diese Tabelle ausführen. Einige der Dateien können eventuell vom Archivierungs-Server wiederhergestellt werden, wenn ihre entsprechenden DATALINK-Spalten mit RECOVERY=YES definiert wurden. In allen Fällen trägt das Dienstprogramm Reconcile die Ausnahmebedingungen in die Ausnahmetabelle oder den Ausnahmebericht ein. Sie können dann diese Dateien wiederherstellen oder die Spalte mit SQL-Anweisungen UPDATE korrigieren.
Gehen Sie wie folgt vor, wenn Sie die Kommunikationsverbindungen (Data Links) nach einer Wiederherstellung bis zu einem bestimmten Zeitpunkt oder aufgrund nicht übereinstimmender Informationen der Data Links-Server, die DB2 Data Links Manager ausführen, und der DB2-Steuerinformationen abstimmen müssen: