web-dev-qa-db-ja.com

クリーンフラッシュリカバリ領域のアーカイブログ

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
1
Rachid B.

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を使用してそれらをバックアップおよび削除できます。

これらのファイルのバックアップが不要な場合は、単に削除してください。

2
Balazs Papp