Heim  >  Artikel  >  Datenbank  >  Detailliertes Beispiel für die Migration der Oracle-Datensynchronisierung über LogMiner

Detailliertes Beispiel für die Migration der Oracle-Datensynchronisierung über LogMiner

WBOY
WBOYnach vorne
2022-03-29 11:57:292041Durchsuche

Dieser Artikel vermittelt Ihnen relevantes Wissen über Oracle, das hauptsächlich die Probleme im Zusammenhang mit der Oracle-Datensynchronisierung über LogMiner vorstellt. Ich hoffe, dass es für alle hilfreich ist.

Detailliertes Beispiel für die Migration der Oracle-Datensynchronisierung über LogMiner

Empfohlenes Tutorial: „Oracle-Tutorial

Vorne geschrieben

Vor kurzem habe ich untersucht, wie man eine Datensynchronisation zwischen Oracle-Datenbanken erreicht, und es gibt tatsächlich relativ wenig Informationen im Internet. Das beste Oracle-Datenbanksynchronisierungstool ist: GoldenGate, und GoldenGate ist kostenpflichtig. Gibt es also eine gute Möglichkeit, Oracle-Daten zu synchronisieren? Richtig, LogMiner wird verwendet, um eine synchrone Migration von Oracle-Daten zu erreichen.

Implementierungsprozess

1. Verzeichnis erstellen

Erstellen Sie das Verzeichnis /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR, um die Wörterbuchinformationen der Datenbank zu speichern, wie unten gezeigt.

mkdir -p /home/oracle/tools/oracle11g/oradata/orcl/LOGMNR

2. Konfigurieren Sie LogMiner

Melden Sie sich als Oracle-Benutzer beim Server und als DBA bei der Oracle-Datenbank an, wie unten gezeigt.

sqlplus /nolog
conn  / as sysdba

Als nächstes erstellen Sie die Konfiguration des Wörterbuchordners wie unten gezeigt.

CREATE DIRECTORY utlfile AS '/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR';alter system set utl_file_dir='/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR' scope=spfile;

Hinweis: Da utl_file_dir nur in Dateien existiert, wird der Bereich im Dateimodus „spfile“ geschrieben, nicht in beiden. 3. Aktivieren Sie den Protokoll-Anhangsmodus . Erstellen Sie einen Datensynchronisierungsbenutzer

Erstellen Sie einen Datensynchronisierungsbenutzer. Wenn bereits einer vorhanden ist, können Sie ihn überspringen und Berechtigungen direkt erteilen.
alter database add supplemental log data;

6. Erstellen Sie ein Datenwörterbuch.

Wechseln Sie zu dem Benutzer, der Daten synchronisieren möchte, melden Sie sich als DBA an und erstellen Sie eine Datenwörterbuchdatei wie unten gezeigt.
SHUTDOWN IMMEDIATE;  STARTUP;
Der Befehl zum Erstellen eines Datenwörterbuchs kann auch über Java-Code implementiert werden. Wenn er über Java-Code implementiert wird, können Sie zunächst über JDBC eine Verbindung zur Oracle-Datenbank herstellen und dann den folgenden Befehl ausführen.

create user SYNC identified by SYNC;  #如果存在用户,则不需要再次创建,直接授权即可GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;

7. Fügen Sie die zu analysierenden Protokolldateien hinzu

Dieser Schritt kann in der Oracle-Befehlszeile ausgeführt oder mit Java-Code implementiert werden.

Verwenden Sie die SQL-Anweisung, um das unten gezeigte Ergebnis zu erzielen.
conn SYNC/SYNC@orcl as sysdba;  EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');
Bei Verwendung der Java-Code-Analyse lautet die verwendete SQL-Anweisung wie folgt.

BEGIN
dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');  END;

8. Sehen Sie sich die verwendete Protokolldatei an

EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW);  EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE);  EXECUTE dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);

Die Protokolldatei mit dem Status „AKTUELL“ ist die aktuell verwendete Protokolldatei

9. Verwenden Sie Lominer, um die Protokolldatei zu analysieren

BEGIN  
dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO01.LOG',options=>dbms_logmnr.NEW);  dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO02.LOG',options=>dbms_logmnr.ADDFILE);  dbms_logmnr.add_logfile(logfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/REDO03.LOG',options=>dbms_logmnr.ADDFILE);  END;

SQL-Anweisungen, die bei der Verwendung von Java-Code verwendet werden Analyse Wie unten gezeigt.

SELECT group#, sequence#, status, first_change#, first_time FROM V$log ORDER BY first_change#;

10. Sehen Sie sich die Analyseergebnisse an

EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora');

Hinweis: Die Analyseergebnisse in der Ansicht v$logmnr_contents existieren nur während der Lebensdauer der Sitzung, wenn wir den Prozess „dbms_logmrn.start_logmnr“ ausführen Wenn Sie neue Protokolle erstellen möchten, müssen Sie die Analyseprotokolldatei erneut hinzufügen und LogMiner zur Analyse verwenden.

11. Häufig gestellte Fragen

(1) Wenn die Ausnahme „Bezeichner ‚SYS.DBMS_LOGMNR‘ muss deklariert werden“ auftritt, müssen Sie dem Benutzer nach dem Erstellen des Benutzers die Berechtigung EXECUTE_CATALOG_ROLE erteilen, wie unten gezeigt.

BEGIN
dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora'); END;

(2) Zu diesem Zeitpunkt müssen Sie den entsprechenden Benutzer für seg_owner in der Abfrageanweisung angeben. Wenn ich beispielsweise den SYNC-Benutzer für die Analyse über LogMiner verwende, müssen Sie seg_owner wie gezeigt als SYNC-Benutzer angeben unten.
SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC';
Empfohlenes Tutorial: „

Oracle Video Tutorial

Das obige ist der detaillierte Inhalt vonDetailliertes Beispiel für die Migration der Oracle-Datensynchronisierung über LogMiner. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:csdn.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen