У нас есть экземпляр AWS Oracle RDS, который недавно исчерпал пространство с ORA-01653 и ORA-01654 (Невозможно расширить индекс X на 8 в табличном пространстве X ... ) ошибки.
При расследовании с помощью запроса:
select nvl(sum(BLOCKS * BLOCK_SIZE),0)/1024/1024/1024 GB from V$ARCHIVED_LOG where DEST_ID=1 and ARCHIVED='YES' and DELETED='NO';
Это показывает вывод:
GB
----------
26.3267608
Это наводит меня на мысль, что у нас есть 26 ГБ архивных журналов.
Выполнение следующего запроса для получения некоторой информации о файлах архива:
select * from V$ARCHIVED_LOG where DEST_ID=1 and ARCHIVED='YES' and DELETED='NO';
У нас около 5000 строк результатов. Некоторые примеры строк:
RECID STAMP NAME DEST_ID THREAD# SEQUENCE# RESETLOGS_CHANGE# RESETLOGS RESETLOGS_ID FIRST_CHANGE# FIRST_TIM NEXT_CHANGE# NEXT_TIME BLOCKS BLOCK_SIZE CREATOR REGISTR STA ARC APPLIED DEL S COMPLETIO DIC DIC END BACKUP_COUNT ARCHIVAL_THREAD# ACTIVATION# IS_ COM FAL END_OF_RED BAC
------ ---------- ------------------------------------------------------------ --------- ---------- ---------- ----------------- --------- ------------ ------------- --------- ------------ --------- ---------- ---------- ------- ------- --- --- --------- --- - --------- --- --- --- ------------ ---------------- ----------- --- --- --- ---------- ---
56851 1021006860 /rdsdbdata/db/DRGNFLY_A/arch/redolog-56852-1-1002024260.arc 1 1 56852 222206 04-MAR-19 1002024260 108023802 07-OCT-19 108025497 07-OCT-19 1721 512 ARCH ARCH NO YES NO NO A 07-OCT-19 NO NO NO 0 1 1073401855 NO NO NO NO
56852 1021007166 /rdsdbdata/db/DRGNFLY_A/arch/redolog-56853-1-1002024260.arc 1 1 56853 222206 04-MAR-19 1002024260 108025497 07-OCT-19 108026500 07-OCT-19 626 512 ARCH ARCH NO YES NO NO A 07-OCT-19 NO NO NO 0 1 1073401855 NO NO NO NO
Расположение этого файла архива: / rdsdbdata / db / DRGNFLY_A / arch / redolog-56849-1-1002024260.arc Другие строки такжев этом каталоге: / rdsdbdata / db / DRGNFLY_A / arch
Из документов AWS Oracle Common DBA Tasks , мы запустили сохраненный процесс:
exec rdsadmin.rdsadmin_master_util.drop_archivelog_dir;
exec rdsadmin.rdsadmin_master_util.drop_onlinelog_dir;
Эта команда выполнена успешно, но при повторном выполнении запроса выше все равно отображаются 26 ГБ файлов архивных журналов.
Чтобы просмотреть конфигурацию хранения архивных журналов, я запустил:
set serveroutput on
exec rdsadmin.rdsadmin_util.show_configuration;
Это приводит к выводу:
NAME:archivelog retention hours
VALUE:0
DESCRIPTION:ArchiveLog expiration specifies the duration in hours before archive/redo log files are automatically deleted.
NAME:tracefile retention
VALUE:1440
DESCRIPTION:tracefile expiration specifies the duration in minutes before tracefiles in bdump are automatically deleted.
Это заставит меня поверить, что, поскольку часов хранения архива имеет значение 0 , эти файлы должны быть автоматически удалены?
Мои вопросы:
- Является ли какой-либо из моих приведенных выше анализов / запросов некорректным, и эти архивные журналы на самом деле не способствуют ошибкам моего табличного пространства?
- Какудалите эти архивные файлы журнала и освободите место, чтобы оно могло бытьиспользуется для обычного хранения БД и т. д. Насколько я знаю, AWS-RDS не предоставляет прямой доступ для удаления этих файлов, поэтому я попытался использовать
rdsadmin.rdsadmin_master_util.drop_archivelog_dir
хранимый процесс. - Также как убедиться,файлы журнала не создаются или очищаются с соответствующим периодом хранения.