Oracle DBA Forum

Oracle DBA Forum (https://odba.ru/index.php)
-   Администрирование (https://odba.ru/forumdisplay.php?f=7)
-   -   Восстановление файлов данных SYSTEM.DBF, UNDO.DBF, SYSAUX.DBF, USERS.DBF (https://odba.ru/showthread.php?t=3)

Marley 20.09.2009 01:29

Восстановление файлов данных SYSTEM.DBF, UNDO.DBF, SYSAUX.DBF, USERS.DBF
 
Файл базы данных в состоянии Recover


Restore выполняется копирование файлов из резервной копии. Поврежденные файлы заменяются на рабочие.

Recovery - процесс применения журналов к базе данных для наката ее вперед до определенного времени.


=================================================


Нумерация файлов в системе и их состояние:

Простой запрос:

Код:

select name, status from v$datafile;
=================================================

Запрос посложнее:

Код:

select to_char(file#, '9') as " №",
          (case file# when 1 then substr(name, -10)
                    when 2 then substr(name, -8)
                    when 3 then substr(name, -10)
                    when 4 then substr(name, -9)
          end) "Имя Файла",
STATUS "Статус" from V$DATAFILE;


Должно быть что-то похожее:

PHP код:


 № Имя Файла  Статус
-- ---------- -------
 
1 SYSTEM.DBF SYSTEM
 2 UNDO
.DBF   ONLINE
 3 SYSAUX
.DBF ONLINE
 4 USERS
.DBF  ONLINE 


Если файл БД в состоянии recover, необходимо его восстановить из резервной копии (если нет резервной копии, вините сами себя) и (при необходимости) применить журнальные файлы, если база данных работает в режиме archivelog.


Возможный вариант восстановления:

PHP код:


CMD
rman target /

RMANstartup mount;
RMAN> list backup;

RMANrun{
# проверяем возможность восстановления файлов базы данных из резервной копии
restore database preview;
# проверка файлов
restore database validate;
# восстановление файла 3 из резервной копии
restore datafile 3;
# применения журнальных файлов к файлу 3 
recover datafile 3;
# установить статус файла 3 online
sql 'alter database datafile 3 online';} 


Marley 20.09.2009 01:29

Если следующий запрос выводит какие-либо данные, необходимо произвести действия по восстановлению файлов базы данных.

select name, error
FROM v$datafile
JOIN v$recover_file
USING (file#);



=================================================


select file# as " №", SUBSTR(name, INSTR(((name)), '\', -1, 1)+1) as "Имя Файла", STATUS "Статус" 
from V$DATAFILE;


https://img.oracledba.net/etc/filestatus.png


Текущее время: 20:34. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd. Перевод: zCarot