Уточнение
Я предполагаю, что вы потеряли только табличное пространство APEX, но ваша база данных в настоящее время функционирует.Если это так и предполагается, что ваше табличное пространство APEX не охватывает несколько файлов данных, вы можете попытаться заменить файл данных.Прежде чем пытаться что-либо сделать, создайте резервную копию в rman.
Здесь есть несколько вариантов.Все, что вам действительно нужно, это
- Файл данных
- Контрольный файл
- Архив / редологи (если вы хотите двигаться вперед или назад во времени)
Я собираюсь наметить два варианта, потому что у меня нет всей необходимой информации.Первый вариант пытается на самом деле восстановить файлы данных через rman, второй просто заменяет его.Первый явно предпочтительный, но не достижимый.
Восстановление RMAN
Сначала установите следующий параметр в файле init.ora
_allow_resetlogs_corruption=TRUE
Переместите весь oradata
резервная копия каталога /tmp/oradata
.Затем найдите местоположение ваших файлов dbf
и ctl
в этом каталоге.
Затем запустите rman target /
из терминала bash.В rman запустите следующее.
RESTORE CONTROLFILE FROM '/tmp/oradata/your_ctrl_file_dir'
ALTER TABLESPACE apex OFFLINE IMMEDIATE';
SET NEWNAME FOR DATAFILE '/tmp/oradata/apex01.dbf' TO
RESTORE TABLESPACE apex;
SWITCH DATAFILE ALL;
RECOVER TABLESPACE apex;
Поменять файл данных
Сначала найдите местоположение ваших файлов данных.Вы можете найти их, запустив следующую команду в sqlplus / as sysdba
или в любом используемом вами клиенте
spool '/tmp/spool.out'
select value from v$parameter where name = 'db_create_file_dest';
select tablespace name from dba_data_files;
Просмотрите файл spool.out и
- Проверьте расположение ваших файлов данных
- Проверьте, связан ли файл данных с этим табличным пространством.
Если табличное пространство все еще там, запустите
select file_name, status from dba_data_files WHERE tablespace name = < name >
Вы хотите, чтобы ваш файл данных был доступен.Затем вы хотите настроить табличное пространство только для чтения и перевести его в автономный режим
alter tablespace < name > read only;
alter tablespace < name > offline;
Теперь скопируйте в файл dbf
каталог, возвращаемый из запроса значения db_create_file_dest
.Не перезаписывайте старый, затем запустите.
alter tablespace < name > rename datafile '/u03/waterver/oradata/yourold.dbf' to '/u03/waterver/oradata/yournew.dbf'
Это обновит ваш контрольный файл, чтобы он указывал на новый файл данных.
Затем вы можете вернуть табличное пространство обратно в режим чтения и записи.Вы также можете проверить состояние статуса табличного пространства, имя файла данных, связанного с этим табличным пространством, и т. Д.