janvier 25, 2022

Comment Vérifier la Taille du journal d’archive

Dans cet article, je parlerai des 3 sujets suivants.

  1. Comment définir la taille du journal d’archive?
  2. Tous les journaux d’archives ont-ils la même taille ?
  3. Comment vérifier la taille du journal d’archive?

A. Comment définir la taille du journal d’archive?

Avant de déterminer la taille des journaux archivés, vous devez savoir que les journaux archivés sont dérivés de la commutation des journaux de reprise en ligne. Ce qui signifie que les journaux archivés sont retirés et copiés en ligne. En d’autres termes, vous ne déterminez pas la taille du journal archivé, en fait vous déterminez la taille du journal de restauration en ligne.

Définir le temps moyen de récupération (MTTR)

Mais maintenant la question est: Comment définir une taille appropriée et optimale pour les journaux de restauration en ligne? Il y a une réponse simple pour nous. Si votre base de données est Oracle 10g, vous pouvez obtenir une valeur optimale à partir de la configuration actuelle de l’instance.

Tout d’abord, vous devez vous assurer que FAST_START_MTTR_TARGET a été défini sur une valeur autre que zéro.

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

Vérifiez La Taille optimale du journal de restauration

Si vous avez défini FAST_START_MTTR_TARGET, c’est-à-dire 1800 secondes dans ce cas, vous pouvez obtenir une valeur consultative pour optimiser la taille du fichier journal par cette requête.

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

Comme vous pouvez le voir, la troisième colonne OPTIMAL_LOGFILE_SIZE est la réponse. Oracle vous recommande de définir la taille du journal de restauration sur 1469 Mo.

Ensuite, nous devrons peut-être redimensionner les journaux redo afin de nous conformer à la taille recommandée.

B. Tous les journaux d’archives ont-ils la même taille ?

La plupart du temps, les journaux archivés ont la même taille, mais ils pourraient être affectés par les facteurs suivants.

Tous les journaux de restauration sont-ils définis comme ayant la même taille ?

Bien que nous devrions définir tous les groupes et membres de journaux de restauration comme ayant la même taille, vous pouvez voir différentes tailles parmi les journaux de restauration sont définies dans quelques bases de données. Habituellement, les journaux de restauration plus volumineux sont ajoutés après la création de la base de données. C’est pourquoi nous avons vu des journaux archivés de différentes tailles.

Avez-vous déjà défini l’intervalle de commutation du journal?

La commutation de journal peut être effectuée à un intervalle fixe en définissant le paramètre d’initialisation ARCHIVE_LAG_TARGET pour vous aider à contrôler la fréquence d’archivage.

Si le paramètre est défini autre que la valeur par défaut (0, désactivé), une commutation de journal se produira avant que les journaux de restauration ne soient remplis. Ces journaux de reprise prématurés font des journaux archivés de tailles différentes.

Sauvegarde RMAN

En plus de définir l’intervalle de commutation des journaux, la sauvegarde d’une base de données avec des journaux archivés par RMAN déclenchera la commutation des journaux. Par exemple, nous aimerions avoir une sauvegarde complète autonome comme celle-ci:

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

Comme vous pouvez le voir, 2 journaux de restauration ont été archivés par RMAN, avant et après la sauvegarde complète. Ils sont plus petits que la taille définie.

C. Comment vérifier la Taille du journal d’archive?

Revenons maintenant à notre sujet principal, comment vérifier la taille du journal d’archive dans la base de données?

Taille de Chaque journal archivé

Pour voir la taille de chaque journal archivé, nous interrogeons V VARCHIVED_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
...

La taille de chaque journal d’archive peut être calculée en multipliant les BLOCS par la colonne BLOCK_SIZE. De plus, nous avons calculé uniquement les journaux archivés qui sont complétés en 24 heures et disponibles dans la base de données principale.

Comme vous pouvez le voir, tous les journaux d’archives ne sont PAS de la même taille, la plupart des journaux archivés sont en 1024 Mo (c’est-à-dire 1 Go).

Taille de Tous les journaux archivés

Tous disponibles

Pour voir la taille globale des journaux archivés disponibles dans le serveur de base de données principal, nous pouvons le faire:

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

Comme nous pouvons le voir, nous avons plus de 400 Go de journaux archivés, nous devrions les supprimer de manière plus agressive à partir de maintenant.

Dernières 24 heures

Pour résumer toute la taille de journal archivée disponible au cours des dernières 24 heures sur le serveur de base de données principal, nous pouvons le faire:

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

Nous avons ajouté un filtre pour limiter la portée temporelle des journaux archivés.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.