Januar 25, 2022

So überprüfen Sie die Größe des Archivprotokolls

In diesem Beitrag werde ich über die folgenden 3 Themen sprechen.

  1. Wie definiere ich die Größe des Archivprotokolls?
  2. Haben alle Archivprotokolle die gleiche Größe?
  3. Wie überprüfe ich die Größe des Archivprotokolls?

A. Wie definiere ich die Größe des Archivprotokolls?

Bevor Sie die Größe des archivierten Protokolls bestimmen, müssen Sie wissen, dass archivierte Protokolle von Online-Wiederherstellungsprotokollen abgeleitet werden. Dies bedeutet, dass archivierte Protokolle zurückgezogen und Online-Wiederherstellungsprotokolle kopiert werden. Mit anderen Worten, Sie bestimmen nicht die Größe des archivierten Protokolls, sondern die Größe des Online-Wiederherstellungsprotokolls.

Define Mean Time To Recover (MTTR)

Aber jetzt ist die Frage: Wie stelle ich eine richtige und optimale Größe für Online-Wiederherstellungsprotokolle ein? Es gibt eine einfache Antwort für uns. Wenn Ihre Datenbank Oracle 10g oder höher ist, können Sie einen optimalen Wert aus der aktuellen Instanzkonfiguration abrufen.

Zuerst müssen Sie sicherstellen, dass FAST_START_MTTR_TARGET auf einen anderen Wert als Null gesetzt wurde.

SQL> show parameter fast_start_mttr_target;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
fast_start_mttr_target integer 1800

Überprüfen Sie die optimale Redo-Protokollgröße

Wenn Sie FAST_START_MTTR_TARGET gesetzt haben, z. 1800 Sekunden in diesem Fall, dann können Sie einen beratenden Wert für die Optimierung der Logfile-Größe durch diese Abfrage erhalten.

SQL> select target_mttr, estimated_mttr, optimal_logfile_size from v$instance_recovery;
TARGET_MTTR ESTIMATED_MTTR OPTIMAL_LOGFILE_SIZE
----------- -------------- --------------------
146 21 1469

Wie Sie sehen können, ist die dritte Spalte OPTIMAL_LOGFILE_SIZE die Antwort. Oracle empfiehlt, die Größe des Wiederherstellungsprotokolls auf 1469 MB festzulegen.

Als nächstes müssen wir möglicherweise die Größe von Redo-Protokollen ändern, um der empfohlenen Größe zu entsprechen.

B. Haben alle Archivprotokolle die gleiche Größe?

Archivierte Protokolle haben meistens die gleiche Größe, können jedoch von den folgenden Faktoren beeinflusst werden.

Haben alle Redo-Protokolle die gleiche Größe?

Obwohl wir alle Redo-Log-Gruppen und -Mitglieder als gleich groß definieren sollten, können in einigen Datenbanken unterschiedliche Größen unter den Redo-Logs definiert werden. Normalerweise werden die größeren Redo-Protokolle nach der Datenbankerstellung hinzugefügt. Deshalb haben wir archivierte Protokolle unterschiedlicher Größe gesehen.

Haben Sie jemals ein Protokollwechselintervall festgelegt?

Die Protokollumschaltung kann in einem festen Intervall erfolgen, indem Sie den Initialisierungsparameter ARCHIVE_LAG_TARGET festlegen, um die Archivierungshäufigkeit zu steuern.

Wenn der Parameter anders als der Standardwert (0, deaktiviert) eingestellt ist, werden einige Protokollwechsel durchgeführt, bevor Redo-Protokolle gefüllt werden. Solche vorzeitigen Wiederherstellungsprotokolle erzeugen archivierte Protokolle unterschiedlicher Größe.

RMAN-Sicherung

Neben der Einstellung des Protokollumschaltintervalls löst die Erstellung einer Datenbanksicherung mit archivierten Protokollen durch RMAN die Protokollumschaltung aus. Zum Beispiel möchten wir ein in sich geschlossenes vollständiges Backup wie dieses haben:

RMAN> backup database plus archivelog;
Starting backup at 27-JUN-16
current log archived
...
Starting backup at 27-JUN-16
current log archived
...

Wie Sie sehen, wurden 2 Redo-Protokolle von RMAN vor und nach der vollständigen Sicherung archiviert. Sie sind kleiner als definierte Größe.

C. Wie überprüfe ich die Größe des Archivprotokolls?

Kehren wir nun zu unserem Hauptthema zurück: Wie überprüfe ich die Größe des Archivprotokolls in der Datenbank?

Größe jedes archivierten Protokolls

Um die Größe jedes archivierten Protokolls anzuzeigen, fragen wir V$ARCHIVED_LOG ab:

SQL> column name format a50;
SQL> column "Size (MB)" format 9999.999;
SQL> select sequence#, name, blocks*block_size/1024/1024 "Size (MB)" from v$archived_log where status = 'A' and standby_dest = 'NO' and completion_time > sysdate-1;
SEQUENCE# NAME Size (MB)
---------- -------------------------------------------------- ---------
175398 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175398.arc 1023.999
175399 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175399.arc 1023.999
175400 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175400.arc 749.232
175401 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175401.arc 43.875
175402 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175402.arc 727.369
175403 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175403.arc 6.957
175404 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175404.arc 1023.993
175405 /oradata/FRA/ORCL/ARCH/ERPAPP1_1_175405.arc 1023.999
...

Die Größe jedes einzelnen Archivprotokolls kann aus der Multiplikation von BLÖCKEN mit der Spalte BLOCK_SIZE berechnet werden. Darüber hinaus berechnen wir nur archivierte Protokolle, die innerhalb von 24 Stunden abgeschlossen und in der primären Datenbank verfügbar sind.

Wie Sie sehen, haben NICHT alle Archivprotokolle die gleiche Größe, die meisten Archivprotokolle haben 1024 MB (dh 1 GB).

Größe aller archivierten Protokolle

Alle verfügbaren Protokolle

Um die Gesamtgröße der verfügbaren archivierten Protokolle auf dem primären Datenbankserver anzuzeigen, können Sie Folgendes tun:

SQL> sselect sum(blocks*block_size)/1024/1024/1024 "Total Size (GB)" from v$archived_log where status = 'A' and standby_dest = 'NO';
Total Size (GB)
---------------
436.632

Wie wir sehen können, haben wir über 400 GB archivierte Protokolle, wir sollten sie von nun an aggressiver löschen.

Letzte 24 Stunden

Um alle verfügbaren archivierten Protokollgrößen der letzten 24 Stunden auf dem primären Datenbankserver zusammenzufassen, können wir Folgendes tun:

SQL> column "Total Size (GB)" format 9999.999;
SQL> select sum(blocks*block_size)/1024/1024/1024 "Total Size (GB)" from v$archived_log where status = 'A' and standby_dest = 'NO' and completion_time > sysdate-1;
Total Size (GB)
---------------
101.828

Wir haben einen Filter hinzugefügt, um den zeitlichen Umfang archivierter Protokolle einzuschränken.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht.