Некоторые файлы Oracle DBF удалены по ошибке - как я могу сказать Oracle XE забыть о них? - PullRequest
4 голосов
/ 02 февраля 2010

Поэтому я случайно удалил некоторые файлы DBF (только те, которые относятся к моим табличным пространствам), к счастью, я только собирался начать загрузку данных, поэтому ничего не потерял, за исключением того, что теперь не могу воссоздать табличные пространства.

Если я бегу:

select name from v$datafile;

Результаты включают файлы DBF, которые я удалил.

Я попытался запустить команду, найденную в Интернете, чтобы удалить файлы DBF, которые, по мнению Oracle, актуальны:

alter database datafile '<A_DBF_file_that_no_longer_exists>' offline drop;

И результат:

alter database datafile succeeded

Однако удаленный файл данных по-прежнему возвращается, когда я запускаю оператор выбора. Когда я пытаюсь просто создать новые табличные пространства, я получаю сообщение об ошибке:

SQL Error: ORA-01543: tablespace 'my_tablespace_name' already exists
01543. 00000 -  "tablespace '%s' already exists"
*Cause:    Tried to create a tablespace which already exists
*Action:   Use a different name for the new tablespace

Ответы [ 2 ]

4 голосов
/ 02 февраля 2010

Отбросьте затронутую табличную область тоже. Удаление файла данных не приведет к автоматическому удалению табличного пространства.

DROP TABLESPACE mytablespace 
   INCLUDING CONTENTS AND DATAFILES CASCADE CONSTRAINTS;
2 голосов
/ 02 февраля 2010

Попробуйте

DROP TABLESPACE <tablespace name> INCLUDING CONTENTS;

Как удалить файл данных из табличного пространства может быть интересно для получения дополнительной информации:

ПРИМЕЧАНИЕ: Команда ALTER DATABASE DATAFILE <datafile name> OFFLINE DROP не предназначена для удаления файла данных. Что на самом деле означает команда, так это то, что вы отключаете файл данных с намерением отбросить табличное пространство.

...