25 ledna, 2022

jak zkontrolovat velikost protokolu archivu

v tomto příspěvku budu hovořit o následujících tématech 3.

  1. jak definovat velikost protokolu archivu?
  2. jsou všechny archivní protokoly stejné velikosti?
  3. jak zkontrolovat velikost protokolu archivu?

a. jak definovat velikost protokolu archivu?

před určením velikosti archivovaného protokolu musíte vědět, že archivované protokoly jsou odvozeny z přepínání online protokolů. Což znamená, že archivované protokoly jsou v důchodu a zkopírovány online znovu protokoly. Jinými slovy, neurčujete velikost archivovaného protokolu, ve skutečnosti určujete velikost protokolu online redo.

Definujte střední čas pro obnovení (MTTR)

ale nyní je otázkou: Jak nastavit správnou a optimální velikost pro online protokoly opakování? Na to máme jednoduchou odpověď. Pokud je vaše databáze Oracle 10g kupředu, pak můžete získat optimální hodnotu z aktuální konfigurace instance.

nejprve se musíte ujistit, že FAST_START_MTTR_TARGET byl nastaven na jinou hodnotu než nulu.

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

zkontrolujte optimální velikost protokolu opakování

pokud jste nastavili FAST_START_MTTR_TARGET, tj. 1800 sekund v tomto případě, pak můžete získat poradní hodnotu pro optimalizaci velikosti logfile tímto dotazem.

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

jak můžete vidět, třetí sloupec OPTIMAL_LOGFILE_SIZE je odpověď. Oracle doporučuje nastavit velikost protokolu redo na 1469MB.

dále možná budeme muset změnit velikost znovu protokoly, aby odpovídaly doporučené velikosti.

B. jsou všechny archivní protokoly stejné velikosti?

archivované protokoly mají většinou stejnou velikost, ale mohou být ovlivněny následujícími faktory.

dělají všechny protokoly redo definované jako stejné velikosti?

ačkoli bychom měli definovat všechny skupiny a členy protokolu redo jako stejnou velikost, můžete vidět různé velikosti mezi protokoly redo jsou definovány v několika databázích. Obvykle jsou větší protokoly redo přidány po vytvoření databáze. Proto jsme viděli archivované protokoly různých velikostí.

nastavili jste někdy interval přepínání protokolu?

přepínání protokolu lze provést v pevném intervalu nastavením parametru inicializace ARCHIVE_LAG_TARGET, který vám pomůže řídit frekvenci archivace.

pokud je parametr nastaven jinak než výchozí hodnota (0, zakázáno), dojde k určitému přepínání protokolu před vyplněním protokolů redo. Takové předčasné opakování protokoly, aby různé velikosti archivované protokoly.

RMAN Backup

Kromě nastavení intervalu přepínání protokolu provede zálohování databáze s archivovanými protokoly RMANEM přepínání protokolu. Například bychom chtěli mít samostatnou úplnou zálohu, jako je tato:

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

jak vidíte, RMAN archivoval protokoly 2 redo před a po úplné záloze. Jsou menší než definovaná velikost.

C. Jak zkontrolovat velikost protokolu archivu?

nyní se vraťme k našemu hlavnímu tématu, jak zkontrolovat Velikost archivu v databázi?

velikost každého archivovaného protokolu

Chcete-li zobrazit velikost každého archivovaného protokolu, dotazujeme se 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
...

velikost každého jednotlivého archivního protokolu lze vypočítat z násobení bloků sloupcem BLOCK_SIZE. Dále jsme vypočítali pouze archivované protokoly, které jsou dokončeny za 24 hodin a jsou k dispozici v primární databázi.

jak vidíte, ne všechny archivní protokoly jsou ve stejné velikosti, většina archivovaných protokolů je v 1024MB (tj.

velikost všech archivovaných protokolů

všechny dostupné

Chcete-li zobrazit celkovou velikost dostupných archivovaných protokolů v primárním databázovém serveru, můžeme to udělat:

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 vidíme, máme více než 400 GB archivovaných protokolů, měli bychom je od nynějška agresivněji mazat.

Posledních 24 hodin

abychom shrnuli všechny dostupné velikosti archivovaného protokolu za posledních 24 hodin na primárním databázovém serveru, můžeme to udělat:

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

přidali jsme filtr omezit časový rozsah archivovaných protokolů.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.