23.09.2018 23:26
OlegON
 
Столкнулся с ошибкой

Message : SQL dictionary health check: file$ pk 42 on object FILE$ failed

Message : Damaged rowid is AAAAARAABAAAADpAAL - description: No further damage description available

SQL код:
select file#,status$,ts# from file$ where rowid='AAAAARAABAAAADpAAL';

FILE# STATUS TS#
===== ======= ====
29 1 
эта rowid соответствует file#=29

SQL код:
select from v$datafile where file#=29; 
no rows selected

file#=29 являлся частью дропнутого табличного пространства.

После удаления табличного пространства, Oracle хранит информацию о нем и его файлах в ts$, online$=3 и в file$ , status$=1.

SQL код:
select ts#,name,online$ from ts$; 
Должно вернуть табличное пространство с online$=3

А в целом - это баг, поправленный в 12.2
Цитата:
Bug 19543595 Incorrect healthcheck errors from DBMS_HM - false errors on TS$ , FILE$ or USER$
Теоретически можно попробовать
SQL код:
delete from filewhere status$=1
но это опасная и нерекомендуемая штука...

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.