drno-reg
@drno-reg
см не кратко

Как удалить data файлы без table space?

Необходимо было пересоздать table space через DROP.

Oracle Database 12c - 12.2.0.1.0, Microsoft Windows [Version 10.0.10240]

По наивности думал, что при удалении table space через интерфейс PL-SQL developer 12
автоматически удалятся data файлы, которые в нем.
НО они остались.
Теперь пытаюсь найти способ удаления tada файлов без table space.

Существует ли такой?

Корректно ли все будет дальше с инстансом Oracle, если их просто удалить на уровне ОС?
если выполнить этот select от SYS
SELECT TABLESPACE_NAME, FILE_NAME, FILE_ID
FROM DBA_DATA_FILES

он их не находит.
  • Вопрос задан
  • 3280 просмотров
Пригласить эксперта
Ответы на вопрос 2
idShura
@idShura
Проверь что датафайле ничего нет:
SELECT owner, segment_name, segment_type, block_id 
  FROM dba_extents 
       WHERE FILE_ID = <id datafile>
  ORDER BY block_id DESC;


Затем удали датафайл:
ALTER TABLESPACE <MyTablespace> DROP DATAFILE 'C:\ORADATA\MYFILE.DBF';


Если БД работает под ОС windows, то скорее всего датафайл удалиться из БД, но останется в файловой системе. При попытке удалить его средствами ОС получишь ошибку, что файл используется. Удалить его получиться только после перезагрузки БД.

Если перезапускать БД нельзя, то можно просто уменьшить размер датафайла и удалить его как-нибудь потом.
alter database datafile 'C:\ORADATA\MYFILE.DBF' resize 2m;


Если база тестовая, то можно воспользоваться например утилитой unlocker для разблокировки файла и последующего удаления. На рабочей базе этого делать не советую.
Ответ написан
@roman_green
По сути если TS удален, то и дата файл ничейный. Он вам чем то мешает?
Этот дата файл есть в v$datafiles ?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы