25 stycznia, 2022

Jak sprawdzić rozmiar dziennika Archiwum

w tym poście omówię następujące 3 tematy.

  1. jak zdefiniować rozmiar dziennika Archiwum?
  2. czy wszystkie dzienniki archiwów mają ten sam rozmiar?
  3. Jak sprawdzić rozmiar dziennika Archiwum?

A. Jak zdefiniować rozmiar dziennika Archiwum?

przed określeniem rozmiaru zarchiwizowanego dziennika musisz wiedzieć, że zarchiwizowane dzienniki pochodzą z przełączania dzienników ponowienia online. Co oznacza, zarchiwizowane dzienniki są wycofywane i kopiowane online powtórz dzienniki. Innymi słowy, nie określasz rozmiaru zarchiwizowanego dziennika, w rzeczywistości określasz rozmiar dziennika ponowienia online.

Zdefiniuj średni czas odzyskiwania (MTTR)

ale teraz pojawia się pytanie: Jak ustawić odpowiedni i optymalny rozmiar dzienników redo online? Jest dla nas prosta odpowiedź. Jeśli twoja baza danych jest Oracle 10g dalej, możesz uzyskać optymalną wartość z bieżącej konfiguracji instancji.

najpierw musisz się upewnić, że FAST_START_MTTR_TARGET został ustawiony na wartość inną niż zero.

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

Sprawdź optymalny rozmiar dziennika ponowienia

, jeśli Ustawiłeś FAST_START_MTTR_TARGET, tj. 1800 sekund w tym przypadku można uzyskać wartość doradczą dla optymalizacji rozmiaru pliku dziennika za pomocą tego zapytania.

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

jak widzisz, Trzecia kolumna OPTIMAL_LOGFILE_SIZE jest odpowiedzią. Oracle zaleca ustawienie rozmiaru dziennika ponowienia na 1469 MB.

następnie możemy potrzebować zmienić rozmiar dzienników ponowienia, aby dostosować je do zalecanego rozmiaru.

B. czy wszystkie logi archiwalne mają ten sam rozmiar?

najczęściej archiwizowane dzienniki mają ten sam rozmiar, ale mogą mieć na nie wpływ następujące czynniki.

czy wszystkie dzienniki ponawiania zdefiniowane jako ten sam rozmiar?

chociaż powinniśmy zdefiniować wszystkie grupy i członków dziennika ponowienia jako ten sam rozmiar, możesz zobaczyć różne rozmiary między dziennikami ponowienia są zdefiniowane w kilku bazach danych. Zwykle większe dzienniki ponowienia są dodawane po utworzeniu bazy danych. Dlatego widzieliśmy zarchiwizowane dzienniki o różnych rozmiarach.

czy kiedykolwiek Ustawiłeś interwał przełącznika dziennika?

przełączanie logów można wykonać w ustalonym odstępie czasu, ustawiając parametr inicjalizacji ARCHIVE_LAG_TARGET, aby pomóc Ci kontrolować częstotliwość archiwizacji.

jeśli parametr jest ustawiony inaczej niż wartość domyślna (0, wyłączone), nastąpi przełączanie logów przed wypełnieniem dzienników ponowienia. Takie przedwczesne dzienniki powtórzeń tworzą zarchiwizowane dzienniki o różnych rozmiarach.

RMAN Backup

oprócz ustawienia interwału przełączania dziennika, zrobienie kopii zapasowej bazy danych z zarchiwizowanymi dziennikami przez RMAN spowoduje przełączanie dziennika. Na przykład chcielibyśmy mieć samodzielną pełną kopię zapasową, taką jak ta:

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

jak widać, 2 dzienniki ponowienia zostały zarchiwizowane przez RMAN, przed i po pełnej kopii zapasowej. Są mniejsze niż określony rozmiar.

C. Jak sprawdzić rozmiar dziennika Archiwum?

teraz wróćmy do naszego głównego tematu, jak sprawdzić rozmiar dziennika archiwum w bazie danych?

rozmiar każdego zarchiwizowanego dziennika

aby zobaczyć rozmiar każdego zarchiwizowanego dziennika, pytamy V$ARCHIVED_LOG:

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
...

rozmiar każdego dziennika archiwum można obliczyć na podstawie mnożenia bloków przez kolumnę BLOCK_SIZE. Ponadto obliczyliśmy tylko zarchiwizowane logi, które są uzupełniane w ciągu 24 godzin i dostępne w podstawowej bazie danych.

jak widać, nie wszystkie dzienniki archiwalne są w tym samym rozmiarze, większość archiwalnych dzienników jest w 1024MB (czyli 1GB).

rozmiar wszystkich zarchiwizowanych logów

wszystkie dostępne

aby zobaczyć ogólny rozmiar dostępnych zarchiwizowanych logów na głównym serwerze bazy danych, możemy to zrobić:

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

jak widać, mamy ponad 400GB zarchiwizowanych logów, powinniśmy je od teraz bardziej agresywnie usuwać.

Ostatnie 24 godziny

aby podsumować wszystkie dostępne wielkości archiwalnych logów w ciągu ostatnich 24 godzin na głównym serwerze bazy danych, możemy to zrobić:

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

dodaliśmy filtr, aby ograniczyć zakres czasowy zarchiwizowanych dzienników.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.