oracle 9i -RMAN-20201 datafile not found in the recovery catalog:

oracle, oracle error, oracle blog
Certo dia tivemos um problema com uma tablespace de dados que nao estava mais no catalogo do RMAN, ao verificarmos a mesma  tinha sido deletada e  ao tentar  restaurar apenas o backup full:
#restaurando o backup full
shutdown immediate;

startup nomount;

alter database mount;

run{
set newname for datafile 1 to 'D:\oracle_novo\ora90\oradata\brasil\system01.dbf';
 set newname for datafile 2 to 'D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf';
 set newname for datafile 3 to 'D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf';
 set newname for datafile 4 to 'D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf';
 set newname for datafile 5 to 'D:\oracle_novo\ora90\oradata\brasil\example01.dbf';
 set newname for datafile 6 to 'D:\oracle_novo\ora90\oradata\brasil\indx01.dbf';
 set newname for datafile 7 to 'D:\oracle_novo\ora90\oradata\brasil\tools01.dbf';
 set newname for datafile 8 to 'D:\oracle_novo\ora90\oradata\brasil\users01.dbf';
set newname for datafile 9 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_01.dbf';
set newname for datafile 10 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf';

 SET UNTIL SCN 268118;
 RESTORE DATABASE;
 SWITCH DATAFILE ALL;
 RECOVER DATABASE;
 }

Apareceu a mensagem de erro:
RMAN-20201 datafile not found in the recovery catalog.
RMAN-06010 error while looking up datafile 9

Ao fazer a busca pelo backups verificamos que a tablespace deletada estava sendo encontrada:

alter database open;

RMAN> list backup;

irá apresentar a saida abaixo:


List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
32 Full 525.67M DISK 00:01:31 06-MAY-08
BP Key: 33 Status: AVAILABLE Compressed: NO Tag: TAG20080506T150716
Piece Name: /oradata2/o1_mf_nnndf_TAG20080506T150716_421c355f_.bkp
List of Datafiles in backup set 32
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\system01.dbf'
2 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf
3 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf
4 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf
5 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\example01.dbf
6 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\indx01.dbf
7 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tools01.dbf
8 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\users01.dbf
9 Full 268118 27-08-10
10 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf


Para resolver esse problema foi necessário primeiro restaurar o controlfile do ultimo bkp full.

shutdown immediate;

startup nomount;

restore controlfile from 'd:\oracle_novo\backup\testebkpfullcomnfe_300810.bkp';

shutdown immediate;


startup nomount;


alter database mount;

alter database open resetlogs;

RMAN> list backup;

irá apresentar a saida abaixo:


List of Backup Sets
===================

BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
32 Full 525.67M DISK 00:01:31 06-MAY-08
BP Key: 33 Status: AVAILABLE Compressed: NO Tag: TAG20080506T150716
Piece Name: /oradata2/o1_mf_nnndf_TAG20080506T150716_421c355f_.bkp
List of Datafiles in backup set 32
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- --------- ----
1 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\system01.dbf'
2 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf
3 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf
4 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf
5 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\example01.dbf
6 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\indx01.dbf
7 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tools01.dbf
8 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\users01.dbf
9 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tbs_dados_01.dbf
10 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf

shutdown immediate;

startup nomount;

alter database mount;

run{
set newname for datafile 1 to 'D:\oracle_novo\ora90\oradata\brasil\system01.dbf';
 set newname for datafile 2 to 'D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf';
 set newname for datafile 3 to 'D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf';
 set newname for datafile 4 to 'D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf';
 set newname for datafile 5 to 'D:\oracle_novo\ora90\oradata\brasil\example01.dbf';
 set newname for datafile 6 to 'D:\oracle_novo\ora90\oradata\brasil\indx01.dbf';
 set newname for datafile 7 to 'D:\oracle_novo\ora90\oradata\brasil\tools01.dbf';
 set newname for datafile 8 to 'D:\oracle_novo\ora90\oradata\brasil\users01.dbf';
set newname for datafile 9 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_01.dbf';
set newname for datafile 10 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf';

 SET UNTIL SCN 268118;
 RESTORE DATABASE;
 SWITCH DATAFILE ALL;
 RECOVER DATABASE;
 }

alter database open resetlogs;

Oracle Error :: RMAN-20208- erro ao restaurar backup full.

oracle, oracle error, oracle blog

Ao tentar restaurar um backup full no oracle 9i, me deparei com o seguinte erro:

Oracle Error :: RMAN-20208-  UNTIL CHANGE is before RESETLOGS change
Que foi resolvido apos fazer um restore apenas do controlfile e após isso fazer um restore full do banco que já foi mostrado anteriormente no  blog, clique nos links acima para acessar os textos.

Oracle 9i - Restaurando o controlfile de um backup full

oracle, oracle error, oracle blog
Oracle 9i - Restaurando o controlfile de um backup full
rman

connect target /

shutdown immediate;

startup nomount;

restore controlfile from 'd:\oracle_novo\backup\testebkpfullcomnfe_300810.bkp';

shutdown immediate;

startup nomount;


alter database mount;

alter database open resetlogs;

Oracle 9i- dica do erro ORA-01031 insufficient privileges

oracle, oracle error, oracle blog

Hoje precisei fazer o login em um banco oracle que nao lembra a senha:

sql> connect /as sysdba
ERROR:
ORA-01031: insufficient privileges.

No meu caso fui consultar a documentação do  oracle 9i o erro estava no arquivo sqlnet.ora, onde foi necessário trocar de SQLNET.AUTHENTICATION_SERVICES = (none) para SQLNET.AUTHENTICATION_SERVICES = (NTS).

Oracle 9i-Fazendo um restore de um backup full com rman

oracle, oracle error, oracle blog

Iniciando o restore:

Para iniciarmos o restore é necessário informar qual o backup precisamos restaurar;

Abrir o prompt de comando e chamar o rman(recovery manager):

rman

Conectar ao banco:

connect target sys/oracle@brasil

list os backups na maquina com o comando abaixo:

RMAN> list backup;

irá apresentar a saida abaixo: caso exista masi de um irá mostra todos dividos por data e a identificação scn de cada backup que será usada no script mais a frente;


List of Backup Sets
=

BS Key Type LV Size Device Type Elapsed Time Completion Time
- - ---
9 Full 700.00M DISK 00:01:31 27-08-10
BP Key: 33 Status: AVAILABLE Compressed: NO Tag:
Piece Name: d:\oracle_novo\backup\testebkpfullcomnfe.bkp
arquivo de controle incluido: SCN de Verif.: 268118 tempo de verif.:27/08/10
List of Datafiles in backup set 9
File LV Type Ckp SCN Ckp Time Name
-
1 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\system01.dbf'
2 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf
3 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf
4 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf
5 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\example01.dbf
6 Full 26811827-08-10 D:\oracle_novo\ora90\oradata\brasil\indx01.dbf
7 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tools01.dbf
8 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\users01.dbf
9 Full 26811827-08-10 D:\oracle_novo\ora90\oradata\brasil\tbs_dados_01.dbf
10 Full 268118 27-08-10 D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf

No resultado acima ele mostra os backups assim como os data files que estao no backup iremos colocar o caminho completo abaixo informando todos os datafiles a serem restaurados.

1.
1. descricao de cada linha do restore#############


run{ #informa ao rman que irá ser rodado um comando:

1. informamos cada arquivo a ser restaurado igual a saida do comando list backup:


set newname for datafile 1 to 'D:\oracle_novo\ora90\oradata\brasil\system01.dbf';
set newname for datafile 2 to 'D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf';
set newname for datafile 3 to 'D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf';
set newname for datafile 4 to 'D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf';
set newname for datafile 5 to 'D:\oracle_novo\ora90\oradata\brasil\example01.dbf';
set newname for datafile 6 to 'D:\oracle_novo\ora90\oradata\brasil\indx01.dbf';
set newname for datafile 7 to 'D:\oracle_novo\ora90\oradata\brasil\tools01.dbf';
set newname for datafile 8 to 'D:\oracle_novo\ora90\oradata\brasil\users01.dbf';
set newname for datafile 9 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_01.dbf';
set newname for datafile 10 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf';

SET UNTIL SCN 268118;#setando o scn do backup a ser restaurado
RESTORE DATABASE; #restaurando os arquivos;
SWITCH DATAFILE ALL;
RECOVER DATABASE; #recuperando os arquivos;
}

Iniciando o restore:

shutdown immediate; derruba o banco novamente

startup nomount; inicializa sem montat



alter database mount; altera o status para montado

e inicia o backup:

run{
set newname for datafile 1 to 'D:\oracle_novo\ora90\oradata\brasil\system01.dbf';
set newname for datafile 2 to 'D:\oracle_novo\ora90\oradata\brasil\undotbs01.dbf';
set newname for datafile 3 to 'D:\oracle_novo\ora90\oradata\brasil\cwmlite01.dbf';
set newname for datafile 4 to 'D:\oracle_novo\ora90\oradata\brasil\drsys01.dbf';
set newname for datafile 5 to 'D:\oracle_novo\ora90\oradata\brasil\example01.dbf';
set newname for datafile 6 to 'D:\oracle_novo\ora90\oradata\brasil\indx01.dbf';
set newname for datafile 7 to 'D:\oracle_novo\ora90\oradata\brasil\tools01.dbf';
set newname for datafile 8 to 'D:\oracle_novo\ora90\oradata\brasil\users01.dbf';
set newname for datafile 9 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_01.dbf';
set newname for datafile 10 to 'D:\oracle_novo\ora90\oradata\brasil\tbs_dados_02.dbf';

SET UNTIL SCN 268118;
RESTORE DATABASE;
SWITCH DATAFILE ALL;
RECOVER DATABASE;
}
Apos terminar
shutdown immediate; derruba o banco novamente

startup nomount; inicia sem montar


alter database mount; altera para montado

abrir o banco de dados para que os usuários possam utiliza-lo.

alter database open resetlogs;

o mesmo ja estará pronto para uso:

Oracle 9i-Fazendo um backup full com rman

oracle, oracle error, oracle blog

Abrir o prompt de comando e chamar o rman(recovery manager):

rman

Conectar ao banco:

connect target sys/oracle@brasil

Baixar o banco:

shutdown immediate;

Iniciar sem montar:

startup nomount;

Alterar a base para status montado:

alter database mount;


executar o comando abaixo para fazer um backup full inclusive com o controlfile (database include current controlfile):

run {
allocate channel t1 type disk format 'd:\oracle_novo\backup\testebkpfullcomnfe.bkp';
backup full (database include current controlfile);
release channel t1;
}

1. descricao de cada linha##################################

run { #informa ao rman que irá ser rodado um comando:
allocate channel t1 type disk format 'd:\oracle_novo\backup\testebkpfullcomnfe_300810.bkp';

1. informa o canal a ser usado, o tipo de midia e o local onde estar o backup full;


backup full (database include current controlfile);

1. comando de backup


release channel t1;

libera o canal t1;

1. fim da descricao##############################


Após o fim do backup temos que deixar o banco operacional novamente:

shutdown immediate; #derrubamos o banco novamente

startup nomount; #inicializamos como nao montado



alter database mount; #alteramos para montado

ALTER DATABASE OPEN; E abrimos o banco para que os usuários possam se connectar e utilizarem normalmente todas as tables space do banco;