RHELサーバー上にOracle 11gがあります。/oradataボリュームのディスク使用率が95%に達した場合:
[ora11g@bocc7-1-qrec-01 ~]$ df -h
/dev/sdb1 689G 571G 84G 95% /oradata
フラッシュリカバリ領域(FRA)は、より大きなフォルダです。
[ora11g@bocc7-1-qrec-01 ~]$ du -skh /oradata/* | sort -h
50G /oradata/qtest
175G /oradata/qrec
346G /oradata/flash_recovery_area
FRAの内部では、アーカイブログに約230 GBかかることがわかります。
[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
v$recovery_file_dest
テーブルと私のSPACE_LIMIT
は20Gbで、私のSPACE_USED
はわずか10Mbです!
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
だから、私はそれがこの表とは何の関係もないと推定しました。
今、私は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
1番目の質問は次のとおりです。RMANがなぜ2752 ARCファイルをここに表示しないのですか?
[ora11g@bocc7-1-qrec-01 ~]$ ls -1 /oradata/flash_recovery_area/qrec/archivelog | wc -l
2752
2番目の質問は、古いアーカイブログファイルを削除してディスク領域を解放するにはどうすればよいですか? (古いものは1歳以上です!!):
[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
) FRAが構成されていますが、これはアーカイブログの宛先ではありません。
log_archive_dest_N
をFRAディレクトリに設定することは、実際にFRAをアーカイブログの宛先として設定することと同じではありません。
最も可能性の高い構成は次のとおりです。
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
適切な構成は次のとおりです。
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
FRAのアーカイブログはOMF形式を使用しており、実際には毎日別のディレクトリ(日付に基づいて名前が付けられます)に配置されるため、アーカイブログファイルの名前もこれを確認します。
これの代わりに:
/oradata/flash_recovery_area/qrec/archivelog/log_1_1056_965658004.arc
アーカイブログファイルの名前は次のようになります。
/oradata/flash_recovery_area/qrec/archivelog/2018_02_22/o1_mf_....arc
1)これは通常、control_file_record_keep_time
パラメータの不適切な設定とバックアップ方法の不足が原因で発生します。デフォルト値の7は、(アーカイブログまたはバックアップの)レコードが7日間保持され、その後は再利用できることを意味します。アーカイブログを7日間バックアップまたは削除しない場合、データベースはそれらを指す制御ファイルレコードを再利用する可能性があります。基本的に、データベースはこれらのエントリを「忘れて」、ファイルシステムに残します。
定期的にバックアップしてアーカイブログを削除し、バックアップ戦略に基づいてcontrol_file_record_keep_time
を適切に設定する必要があります。
RMANの代わりにユーザー管理のバックアップを使用する場合は、これらのログを手動で削除する必要があります。 RMANは、これらのファイルを単一のコマンドでバックアップおよび削除できます。
2)バックアップ要件によって異なります。
ユーザー管理のバックアップを使用する場合は、これらのファイルのバックアップがあることを確認してから、削除してください。
RMANを使用する場合は、catalog start with '/oradata/flash_recovery_area/qrec/archivelog/';
を使用してから、RMANを使用してそれらをバックアップおよび削除できます。
これらのファイルのバックアップが不要な場合は、単に削除してください。