Recuperao de datafiles e tablespaces – Oracle

Para que possamos implementar uma recuperao de datafile ou tablespace gerenciado pelo usurio, temos, claro, que ter um backup do banco de dados, seja ele COLD (banco fora) ou HOT (banco no ar e utilizando archives).

Como iremos simular a recuperao de apenas uma tablespace ou datafile, faremos um backup apenas da tablespace USERS.

Uma das formas para se fazer esse backup utilizando as tcnicas mostradas no artigo anterior, ou seja, BEGIN BACKUP e END BACKUP. Ento, vamos l!

01. Coloque a tablespace no modo BEGIN BACKUP
ALTER TABLESPACE USERS BEGIN BACKUP;

02. Copie o datafile da tablespace USERS utilizando os comandos do sistema operacional (COPY do WINDOWS, ou cp do Linux…)
COPY D:\Oracle\Oradata\USERS01.DBF E:\Backup\Oracle\USERS01.DBF

1 arquivo(s) copiado(s).

03. Coloque a tablespace no modo END BACKUP
ALTER TABLESPACE USERS END BACKUP;

De forma a confirmar os dados que existem nas tabelas dessa tablespace, vamos fazer um select de forma a visualizar alguns dados.

SQL> select * from scott.emp;
truncando (conforme solicitado) antes da coluna DEPTNO

EMPNO
ENAME
JOB
MGR
HIREDATE
SAL
COMM
7369
SMITH
CLERK
7902
17/12/80
800
7499
ALLEN
SALESMAN
7698
20/02/81
1600
300
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7902
FORD
ANALYST
7566
03/12/81
3000
7934
MILLER
CLERK
7782
23/01/82
1300

14 linhas selecionadas.

SQL> select to_char(sysdate,’dd/mm/yyyy hh:mi:ss’) from dual;

TO_CHAR(SYSDATE,’DD
——————-
25/05/2006 09:50:44

Perceba que s 09:50:44 do dia 25/05/2006, tabela EMP do usurio SCOTT possuia 14 linhas.

SQL> select tablespace_name, status
2 from dba_tablespaces;

TABLESPACE_NAME STATUS
—————————— ———
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE

6 linhas selecionadas.

Perceba que a tablespace USERS est online e, portanto, as tabelas podem ser acessadas.

Alguns minutos depois, o disco onde a tablespace estava armazenada apresentou um problema e voc vai precisar fazer a recuperao novamente.

ERRO na linha 1:
ORA-01157: no possvel identificar/bloquear arquivo de dados 4 – consulte
arquivo de anlise DBWR
ORA-01110: 4 do arquivo de dados:
‘D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF’

SQL> select tablespace_name, status
2 from dba_tablespaces;

TABLESPACE_NAME STATUS
—————————— ———
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS OFFLINE
EXAMPLE ONLINE

6 linhas selecionadas.

A tablespace agora se encontra offline, e os dados contidos nela no podem ser acessados.

E agora, o que fazer?

Aps reconstruir o file system, seja ele Windows ou Linux, voc vai restaurar o datafile que sofreu o crash a partir de um backup(USERS01.DBF), e executar o comando de RECOVER TABLESPACE.

Execute a recuperao da tablespace que apresentou problema:

SQL> RECOVER TABLESPACE USERS;
Recuperao De Mdia Concluda.

Depois, coloque a tablespace em modo ONLINE

SQL> ALTER TABLESPACE USERS ONLINE;
Tablespace alterado.

Consultando DBA_TABLESPACES, voc poder verificar que a tablespace est novamente disponvel para uso.

SQL> SELECT TABLESPACE_NAME, STATUS
2 FROM DBA_TABLESPACES;

TABLESPACE_NAME STATUS
—————————— ———
SYSTEM ONLINE
UNDOTBS1 ONLINE
SYSAUX ONLINE
TEMP ONLINE
USERS ONLINE
EXAMPLE ONLINE

6 linhas selecionadas.

Fizemos um exemplo recuperando uma tablespace. Agora, imagine que essa tablespace fosse formada de dois datafiles, um datafile na unidade D e outro na unidade E. Da mesma forma com que voc recuperou a tablespace, possvel tambm recuperar o datafile.

Imagine que o datafile existente na unidade D apresentou problemas de leitura no disco, e est corrompido.

Para isso, aps corrigir o problema fsico do disco, restaure o ultimo backup vlido disponvel no path determinado pela consulta:

SQL> SELECT FILE_ID, FILE_NAME
2 FROM DBA_DATA_FILES;

FILE_ID FILE_NAME
———- —————————————————
4 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\USERS01.DBF
3 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSAUX01.DBF
2 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\UNDOTBS01.DBF
1 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\SYSTEM01.DBF
5 D:\ORACLE\PRODUCT\10.1.0\ORADATA\ORCL\EXAMPLE01.DBF

Perceba o nmero de identificao do datafile USERS01.DBF(4), aps identificar o nmero do arquivo, execute o seguinte comando

SQL> RECOVER DATAFILE 4;
RECUPERAO DE MDIA CONCLUDA.

Compartilhe no Orkut!
Esta entrada foi publicada em Sem categoria e marcada com a tag , . Adicione o link permanente aos seus favoritos.

Deixe uma resposta