Heim Datenbank MySQL-Tutorial 如何让 GoldenGate 在 trail 文件中记录数据库的 SCN 信息

如何让 GoldenGate 在 trail 文件中记录数据库的 SCN 信息

Jun 07, 2016 pm 03:24 PM
trail 如何 数据库 文件 记录

如何让 GoldenGate 在 trail 文件中记录数据库的 SCN 信息 通常情况下,Oracle GoldenGate 的 trail 文件中是不会包含数据库的 SCN 信息的,要在 trail 文件中记录此信息,必须在 Extract 进程参数中设置 TOKENS 示例如下: --Normal extract mapping-- TABL

如何让 GoldenGate 在 trail 文件中记录数据库的 SCN 信息

通常情况下,Oracle GoldenGate 的 trail 文件中是不会包含数据库的 SCN 信息的,要在 trail 文件中记录此信息,必须在 Extract 进程参数中设置 TOKENS
示例如下:
--Normal extract mapping--
TABLE scott.* ;

--To use tokens--
TABLE scott.*, tokens (tk-scn = @getenv("ORATRANSACTION", "SCN")); 

设置 tokens 后 Extract 进程会在 trail 文件中写入一个 token ,其中包含 SCN 的详细信息。下面我们通过实验来详细了解一下设置 tokens 和不设置的区别。

设置 tokens 前:
GGSCI (prod.oracle.com) 1> view params ESCOTT
EXTRACT escott
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ggs, PASSWORD register
EXTTRAIL ./dirdat/aa
TABLE scott.EMP_GGS, tokens (tk-scn = @getenv("ORATRANSACTION", "SCN")); 
TABLE scott.DEPT_GGS, tokens (tk-scn = @getenv("ORATRANSACTION", "SCN")); 

Logdump 15 >open ./dirdat/aa000016
Current LogTrail is /home/oracle/ggs/dirdat/aa000016 
Logdump 16 >ghdr on
Logdump 17 >detail data
Logdump 18 >usertoken detail
Logdump 51 >n
___________________________________________________________________ 
Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)  
UndoFlag   :     .  (x00)     BeforeAfter:     A  (x41)  
RecLength  :   120  (x0078)   IO Time    : 2013/03/21 23:31:55.000.000   
IOType     :     5  (x05)     OrigNode   :   255  (xff) 
TransInd   :     .  (x03)     FormatType :     R  (x52) 
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00) 
AuditRBA   :        131       AuditPos   : 6994960 
Continued  :     N  (x00)     RecCount   :     1  (x01) 


2013/03/21 23:31:55.000.000 Insert               Len   120 RBA 1079 
Name: SCOTT.EMP_GGS 
After  Image:                                             Partition 4   G  s   
 0000 000a 0000 0000 0000 0000 1cd4 0001 0008 0000 | ....................  
 0004 4d49 4d49 0002 0009 0000 0005 434c 4552 4b00 | ..MIMI........CLERK.  
 0300 0a00 0000 0000 0000 001e de00 0400 1500 0031 | ...................1  
 3938 372d 3132 2d31 373a 3030 3a30 303a 3030 0005 | 987-12-17:00:00:00..  
 000a 0000 0000 0000 0001 3880 0006 000a ffff 0000 | ..........8.........  
 0000 0000 0000 0007 000a 0000 0000 0000 0000 0014 | ....................  
Column     0 (x0000), Len    10 (x000a)  
 0000 0000 0000 0000 1cd4                          | ..........  
Column     1 (x0001), Len     8 (x0008)  
 0000 0004 4d49 4d49                               | ....MIMI  
Column     2 (x0002), Len     9 (x0009)  
 0000 0005 434c 4552 4b                            | ....CLERK  
Column     3 (x0003), Len    10 (x000a)  
 0000 0000 0000 0000 1ede                          | ..........  
Column     4 (x0004), Len    21 (x0015)  
 0000 3139 3837 2d31 322d 3137 3a30 303a 3030 3a30 | ..1987-12-17:00:00:0  
 30                                                | 0  
Column     5 (x0005), Len    10 (x000a)  
 0000 0000 0000 0001 3880                          | ........8.  
Column     6 (x0006), Len    10 (x000a)  
 ffff 0000 0000 0000 0000                          | ..........  
Column     7 (x0007), Len    10 (x000a)  
 0000 0000 0000 0000 0014                          | ..........  

下面我们来看看在 Extract 进程参数中加入 tokens 设置后,插入一条记录在 trail 文件中的记录

GGSCI (prod.oracle.com) 3> view params escott
TABLE scott.EMP_GGS;
EXTRACT escott
SETENV (NLS_LANG=AMERICAN_AMERICA.AL32UTF8)
USERID ggs, PASSWORD register
EXTTRAIL ./dirdat/aa
TABLE scott.EMP_GGS, tokens (tk-scn = @getenv("ORATRANSACTION", "SCN"));
TABLE scott.DEPT_GGS, tokens (tk-scn = @getenv("ORATRANSACTION", "SCN"));

插入一条记录后,trail 文件切到下一队列
GGSCI (prod.oracle.com) 8> info ESCOTT,detail
EXTRACT    ESCOTT    Last Started 2013-03-21 23:42   Status RUNNING
Checkpoint Lag       00:00:00 (updated 00:00:09 ago)
Log Read Checkpoint  Oracle Redo Logs
                     2013-03-21 23:43:34  Seqno 132, RBA 290816
                     SCN 0.1364750 (1364750)
  Target Extract Trails:
  Remote Trail Name                                Seqno        RBA     Max MB
  ./dirdat/aa                                         17       1333          5

Logdump 54 >open ./dirdat/aa000017     
Current LogTrail is /home/oracle/ggs/dirdat/aa000017 
Logdump 55 >ghdr on
Logdump 56 >detail data
Logdump 57 >usertoken on
Logdump 58 >usertoken detail
Logdump 59 >n

Logdump 61 >n
___________________________________________________________________ 
Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)  
UndoFlag   :     .  (x00)     BeforeAfter:     A  (x41)  
RecLength  :   120  (x0078)   IO Time    : 2013/03/21 23:43:34.000.000   
IOType     :     5  (x05)     OrigNode   :   255  (xff) 
TransInd   :     .  (x03)     FormatType :     R  (x52) 
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00) 
AuditRBA   :        132       AuditPos   : 289296 
Continued  :     N  (x00)     RecCount   :     1  (x01) 

2013/03/21 23:43:34.000.000 Insert               Len   120 RBA 1079 
Name: SCOTT.EMP_GGS 
After  Image:                                             Partition 4   GU s   
 0000 000a 0000 0000 0000 0000 1cd5 0001 0008 0000 | ....................  
 0004 4d49 4e49 0002 0009 0000 0005 434c 4552 4b00 | ..MINI........CLERK.  
 0300 0a00 0000 0000 0000 001e de00 0400 1500 0031 | ...................1  
 3938 372d 3132 2d31 373a 3030 3a30 303a 3030 0005 | 987-12-17:00:00:00..  
 000a 0000 0000 0000 0001 3880 0006 000a ffff 0000 | ..........8.........  
 0000 0000 0000 0007 000a 0000 0000 0000 0000 0014 | ....................  
Column     0 (x0000), Len    10 (x000a)  
 0000 0000 0000 0000 1cd5                          | ..........  
Column     1 (x0001), Len     8 (x0008)  
 0000 0004 4d49 4e49                               | ....MINI  
Column     2 (x0002), Len     9 (x0009)  
 0000 0005 434c 4552 4b                            | ....CLERK  
Column     3 (x0003), Len    10 (x000a)  
 0000 0000 0000 0000 1ede                          | ..........  
Column     4 (x0004), Len    21 (x0015)  
 0000 3139 3837 2d31 322d 3137 3a30 303a 3030 3a30 | ..1987-12-17:00:00:0  
 30                                                | 0  
Column     5 (x0005), Len    10 (x000a)  
 0000 0000 0000 0001 3880                          | ........8.  
Column     6 (x0006), Len    10 (x000a)  
 ffff 0000 0000 0000 0000                          | ..........  
Column     7 (x0007), Len    10 (x000a)  
 0000 0000 0000 0000 0014                          | ..........  
  
User tokens:   15 bytes 
tk-scn              : 1364750 

这里显示的 tk-scn : 1364750 正是我们要显示的数据库 SCN 号。

下面我们来做一个更精确的测试,我们更新一条记录,并记录插入记录前后的 SCN 号,然后
到 trail 文件中查看是否确实如此。

SQL> select dbms_flashback.get_system_change_number from dual;
 
GET_SYSTEM_CHANGE_NUMBER
------------------------
                 1365152
SQL> update scott.emp_ggs set ename = 'DANIEL' where empno = 7381;
 
1 row updated
SQL> commit;
 
Commit complete
SQL> select dbms_flashback.get_system_change_number from dual;
 
GET_SYSTEM_CHANGE_NUMBER
------------------------
                 1365155

修改记录前的数据库 SCN 为 1365152,修改后的为 1365155,那么修改记录时的 SCN 应该在二者之间:

Logdump 62 >n
___________________________________________________________________ 
Hdr-Ind    :     E  (x45)     Partition  :     .  (x04)  
UndoFlag   :     .  (x00)     BeforeAfter:     A  (x41)  
RecLength  :    28  (x001c)   IO Time    : 2013/03/21 23:53:03.000.000   
IOType     :    15  (x0f)     OrigNode   :   255  (xff) 
TransInd   :     .  (x03)     FormatType :     R  (x52) 
SyskeyLen  :     0  (x00)     Incomplete :     .  (x00) 
AuditRBA   :        132       AuditPos   : 526352 
Continued  :     N  (x00)     RecCount   :     1  (x01) 

2013/03/21 23:53:03.000.000 FieldComp            Len    28 RBA 1333 
Name: SCOTT.EMP_GGS 
After  Image:                                             Partition 4   GU s   
 0000 000a 0000 0000 0000 0000 1cd5 0001 000a 0000 | ....................  
 0006 4441 4e49 454c                               | ..DANIEL  
Column     0 (x0000), Len    10 (x000a)  
 0000 0000 0000 0000 1cd5                          | ..........  
Column     1 (x0001), Len    10 (x000a)  
 0000 0006 4441 4e49 454c                          | ....DANIEL  
  
User tokens:   15 bytes 
tk-scn              : 1365154 

通过 logdump 看到的是 SCN 1365154 确实介于 1365152 和 1365155 之间



http://blog.csdn.net/xiangsir/article/details/8708626

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Wie implementiert die Go-Sprache die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank? Mar 27, 2024 pm 09:39 PM

Die Go-Sprache ist eine effiziente, prägnante und leicht zu erlernende Programmiersprache. Sie wird von Entwicklern aufgrund ihrer Vorteile bei der gleichzeitigen Programmierung und Netzwerkprogrammierung bevorzugt. In der tatsächlichen Entwicklung sind Datenbankoperationen ein unverzichtbarer Bestandteil. In diesem Artikel wird erläutert, wie die Go-Sprache zum Implementieren von Datenbank-Hinzufügungs-, Lösch-, Änderungs- und Abfrageoperationen verwendet wird. In der Go-Sprache verwenden wir normalerweise Bibliotheken von Drittanbietern, um Datenbanken zu betreiben, z. B. häufig verwendete SQL-Pakete, Gorm usw. Hier nehmen wir das SQL-Paket als Beispiel, um vorzustellen, wie die Hinzufügungs-, Lösch-, Änderungs- und Abfragevorgänge der Datenbank implementiert werden. Angenommen, wir verwenden eine MySQL-Datenbank.

Wie implementiert Hibernate polymorphe Zuordnung? Wie implementiert Hibernate polymorphe Zuordnung? Apr 17, 2024 pm 12:09 PM

Die polymorphe Hibernate-Zuordnung kann geerbte Klassen der Datenbank zuordnen und bietet die folgenden Zuordnungstypen: Joined-Subclass: Erstellen Sie eine separate Tabelle für die Unterklasse, einschließlich aller Spalten der übergeordneten Klasse. Tabelle pro Klasse: Erstellen Sie eine separate Tabelle für Unterklassen, die nur unterklassenspezifische Spalten enthält. Union-Unterklasse: ähnelt der verbundenen Unterklasse, aber die Tabelle der übergeordneten Klasse vereint alle Spalten der Unterklasse.

iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen iOS 18 fügt eine neue Albumfunktion „Wiederhergestellt' hinzu, um verlorene oder beschädigte Fotos wiederherzustellen Jul 18, 2024 am 05:48 AM

Apples neueste Versionen der iOS18-, iPadOS18- und macOS Sequoia-Systeme haben der Fotoanwendung eine wichtige Funktion hinzugefügt, die Benutzern dabei helfen soll, aus verschiedenen Gründen verlorene oder beschädigte Fotos und Videos einfach wiederherzustellen. Mit der neuen Funktion wird im Abschnitt „Extras“ der Fotos-App ein Album mit dem Namen „Wiederhergestellt“ eingeführt, das automatisch angezeigt wird, wenn ein Benutzer Bilder oder Videos auf seinem Gerät hat, die nicht Teil seiner Fotobibliothek sind. Das Aufkommen des Albums „Wiederhergestellt“ bietet eine Lösung für Fotos und Videos, die aufgrund einer Datenbankbeschädigung verloren gehen, die Kameraanwendung nicht korrekt in der Fotobibliothek speichert oder eine Drittanbieteranwendung die Fotobibliothek verwaltet. Benutzer benötigen nur wenige einfache Schritte

Eine ausführliche Analyse, wie HTML die Datenbank liest Eine ausführliche Analyse, wie HTML die Datenbank liest Apr 09, 2024 pm 12:36 PM

HTML kann die Datenbank nicht direkt lesen, dies kann jedoch über JavaScript und AJAX erreicht werden. Zu den Schritten gehören das Herstellen einer Datenbankverbindung, das Senden einer Abfrage, das Verarbeiten der Antwort und das Aktualisieren der Seite. Dieser Artikel bietet ein praktisches Beispiel für die Verwendung von JavaScript, AJAX und PHP zum Lesen von Daten aus einer MySQL-Datenbank und zeigt, wie Abfrageergebnisse dynamisch auf einer HTML-Seite angezeigt werden. In diesem Beispiel wird XMLHttpRequest verwendet, um eine Datenbankverbindung herzustellen, eine Abfrage zu senden und die Antwort zu verarbeiten. Dadurch werden Daten in Seitenelemente gefüllt und die Funktion des HTML-Lesens der Datenbank realisiert.

Umgang mit Datenbankverbindungsfehlern in PHP Umgang mit Datenbankverbindungsfehlern in PHP Jun 05, 2024 pm 02:16 PM

Um Datenbankverbindungsfehler in PHP zu behandeln, können Sie die folgenden Schritte ausführen: Verwenden Sie mysqli_connect_errno(), um den Fehlercode abzurufen. Verwenden Sie mysqli_connect_error(), um die Fehlermeldung abzurufen. Durch die Erfassung und Protokollierung dieser Fehlermeldungen können Datenbankverbindungsprobleme leicht identifiziert und behoben werden, wodurch der reibungslose Betrieb Ihrer Anwendung gewährleistet wird.

Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Ausführliches Tutorial zum Herstellen einer Datenbankverbindung mit MySQLi in PHP Jun 04, 2024 pm 01:42 PM

So verwenden Sie MySQLi zum Herstellen einer Datenbankverbindung in PHP: MySQLi-Erweiterung einbinden (require_once) Verbindungsfunktion erstellen (functionconnect_to_db) Verbindungsfunktion aufrufen ($conn=connect_to_db()) Abfrage ausführen ($result=$conn->query()) Schließen Verbindung ( $conn->close())

Vollständige Analyse des Umbenennungsvorgangs der Go-Sprachdatei Vollständige Analyse des Umbenennungsvorgangs der Go-Sprachdatei Apr 08, 2024 pm 03:30 PM

Die Funktion os.Rename wird in der Go-Sprache zum Umbenennen von Dateien verwendet. Die Syntax lautet: funcRename(oldpath,newpathstring)error. Diese Funktion benennt die durch oldpath angegebene Datei in die durch newpath angegebene Datei um. Beispiele hierfür sind einfaches Umbenennen, das Verschieben von Dateien in andere Verzeichnisse und das Ignorieren der Fehlerbehandlung. Die Umbenennungsfunktion führt einen atomaren Vorgang aus und aktualisiert möglicherweise Verzeichniseinträge nur, wenn sich die beiden Dateien im selben Verzeichnis befinden. Umbenennungen können auf allen Volumes fehlschlagen oder während eine Datei verwendet wird.

Tipps und Praktiken zum Umgang mit verstümmelten chinesischen Zeichen in Datenbanken mit PHP Tipps und Praktiken zum Umgang mit verstümmelten chinesischen Zeichen in Datenbanken mit PHP Mar 27, 2024 pm 05:21 PM

PHP ist eine Back-End-Programmiersprache, die in der Website-Entwicklung weit verbreitet ist. Sie verfügt über leistungsstarke Datenbankbetriebsfunktionen und wird häufig zur Interaktion mit Datenbanken wie MySQL verwendet. Aufgrund der Komplexität der Kodierung chinesischer Zeichen treten jedoch häufig Probleme beim Umgang mit verstümmelten chinesischen Zeichen in der Datenbank auf. In diesem Artikel werden die Fähigkeiten und Praktiken von PHP beim Umgang mit chinesischen verstümmelten Zeichen in Datenbanken vorgestellt, einschließlich häufiger Ursachen für verstümmelte Zeichen, Lösungen und spezifischer Codebeispiele. Häufige Gründe für verstümmelte Zeichen sind falsche Einstellungen für den Datenbank-Zeichensatz: Beim Erstellen der Datenbank muss der richtige Zeichensatz ausgewählt werden, z. B. utf8 oder u

See all articles