J'ai un oracle 11g sur Rhel Server. My/Oradata Volume Atteignez 95% d'utilisation du disque:
[ora11g@bocc7-1-qrec-01 ~]$ df -h
/dev/sdb1 689G 571G 84G 95% /oradata
La zone de récupération flash (FRA) est le plus grand dossier:
[ora11g@bocc7-1-qrec-01 ~]$ du -skh /oradata/* | sort -h
50G /oradata/qtest
175G /oradata/qrec
346G /oradata/flash_recovery_area
À l'intérieur du FRA, je peux voir que les journaux d'archives prennent environ 230 Go:
[ora11g@bocc7-1-qrec-01 ~]$ du -skh /oradata/flash_recovery_area/qrec/*
232G /oradata/flash_recovery_area/qrec/archivelog
7.9G /oradata/flash_recovery_area/qrec/onlinelog
J'ai vérifié le v$recovery_file_dest
table et mon SPACE_LIMIT
est 20 Go et mon SPACE_USED
est seulement 10 Mo!
Connected to:
Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
qrec> SELECT * FROM V$RECOVERY_FILE_DEST;
NAME
--------------------------------------------------------------------------------
SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
----------- ---------- ----------------- ---------------
/oradata/flash_recovery_area
2.1475E+10 10984448 0 1
Donc, j'ai déduit que cela n'avait rien à voir avec cette table.
Maintenant, je vérifie avec Rman:
RMAN> crosscheck archivelog all;
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=259 device type=DISK
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1056_965658004.arc RECID=1057 STAMP=969146207
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1057_965658004.arc RECID=1058 STAMP=969149808
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1058_965658004.arc RECID=1059 STAMP=969153409
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1059_965658004.arc RECID=1060 STAMP=969157010
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1060_965658004.arc RECID=1061 STAMP=969160610
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1061_965658004.arc RECID=1062 STAMP=969164210
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1062_965658004.arc RECID=1063 STAMP=969167813
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1063_965658004.arc RECID=1064 STAMP=969171413
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1064_965658004.arc RECID=1065 STAMP=969175014
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1065_965658004.arc RECID=1066 STAMP=969178614
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1066_965658004.arc RECID=1067 STAMP=969182214
validation succeeded for archived log
archived log file name=/oradata/flash_recovery_area/qrec/archivelog/log_1_1067_965658004.arc RECID=1068 STAMP=969185814
Crosschecked 12 objects
RMAN> delete noprompt expired archivelog all;
released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=259 device type=DISK
specification does not match any archived log in the repository
Donc, la 1ère question est: pourquoi Rman ne voit pas mes fichiers d'arc 2752 ici:
[ora11g@bocc7-1-qrec-01 ~]$ ls -1 /oradata/flash_recovery_area/qrec/archivelog | wc -l
2752
Et la 2e question est: Que dois-je faire pour libérer un espace disque en supprimant les fichiers anciens archivalogog? (Les plus âgés sont âgés de plus d'un an !!):
[ora11g@bocc7-1-qrec-01 archivelog]$ find -type f -printf '%T+ %p\n' | sort | head -n 1
2017-02-22+16:54:41.0000000000 ./log_2_1_936636608.arc
) Vous avez FRA configuré, mais ce n'est pas votre destination Archivelog.
Réglage log_archive_dest_N
au répertoire FRA n'est pas la même chose que de définir la FRA comme une destination d'archivalogog.
La configuration que vous avez probablement:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oradata/flash_recovery_area
db_recovery_file_dest_size big integer 20G
log_archive_dest_1 string location=/oradata/flash_recovery_area/qrec/archivelog
La configuration appropriée serait:
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string /oradata/flash_recovery_area
db_recovery_file_dest_size big integer 20G
log_archive_dest_1 string location=use_db_recovery_file_dest
La nommée des fichiers Archivelog confirme également cela, car les archivages de la FRA utilisent le format OMF et sont réellement placés dans des répertoires séparés (nommés en fonction de la date) chaque jour.
Donc, au lieu de cela:
/oradata/flash_recovery_area/qrec/archivelog/log_1_1056_965658004.arc
Le nom de votre fichier archivalog serait:
/oradata/flash_recovery_area/qrec/archivelog/2018_02_22/o1_mf_....arc
1) Ceci est généralement causé par une configuration inappropriée du control_file_record_keep_time
Paramètre combiné à une méthode de sauvegarde manquante. La valeur par défaut 7 signifie que les enregistrements (d'archivalogs ou de sauvegardes) sont conservés pendant 7 jours, après cela, ils peuvent être réutilisés. Si vous ne sauvegardez pas/supprimer votre Archivelogs pendant 7 jours, la base de données peut réutiliser les enregistrements Controlfile en pointant, fondamentalement, la base de données "oublie" ces entrées et les laisse dans le système de fichiers.
Vous devez sauvegarder et supprimer votre archivalogs et définir control_file_record_keep_time
de manière appropriée sur la base de votre stratégie de sauvegarde.
Si vous utilisez des sauvegardes gérées par l'utilisateur au lieu de RMAN, vous devez vous occuper de la suppression manuelle de ces journaux. Rman peut sauvegarder ces fichiers dans une seule commande.
2) dépend de vos exigences de sauvegarde.
Si vous utilisez des sauvegardes gérées par l'utilisateur, assurez-vous de disposer de sauvegardes de ces fichiers, puis de les supprimer.
Si vous utilisez RMAN, vous pouvez utiliser catalog start with '/oradata/flash_recovery_area/qrec/archivelog/';
, utilisez ensuite Rman pour sauvegarder et les supprimer.
Si vous n'avez besoin d'aucune sauvegarde de ces fichiers, supprimez-les simplement.