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.
Empfohlenes Tutorial: „Oracle-Tutorial“
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.
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
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
alter database add supplemental log data;
SHUTDOWN IMMEDIATE; STARTUP;
create user SYNC identified by SYNC; #如果存在用户,则不需要再次创建,直接授权即可GRANT CONNECT,RESOURCE,DBA,EXECUTE_CATALOG_ROLE TO SYNC;
Dieser Schritt kann in der Oracle-Befehlszeile ausgeführt oder mit Java-Code implementiert werden.
conn SYNC/SYNC@orcl as sysdba; EXECUTE dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR');
BEGIN dbms_logmnr_d.build(dictionary_filename => 'dictionary.ora', dictionary_location =>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR'); END;
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);
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#;
EXECUTE dbms_logmnr.start_logmnr(dictfilename=>'/home/oracle/tools/oracle11g/oradata/orcl/LOGMNR/dictionary.ora');
(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;
SELECT sql_redo, sql_undo, seg_owner FROM v$logmnr_contents WHERE seg_name='EMP' AND seg_owner='SYNC';
“
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!