Recuperando os dados do banco

Backup, Recover, Import, Export, Datapump, etc
Responder
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

Informações do Ambiente:
* Versão do Oracle: 9.2.0.4
* Sistema Operacional: CentOS 4

Bom dia, sou novo por aqui, portanto me desculpem se estou postando no local errado.

Pois bem, vou explicar a situação primeiro para que vocês possam entender e talvez me ajudar (tomara q sim :D) :

Eu trabalho em uma instituição, que possuía um banco de dados Oracle versão 9.2.0.4 instalado em uma versão anterior do CentOS (3 se não me engano). Por algum motivo que eu desconheço, pois foi antes de eu começar a trabalhar nesta instituição, o hd onde o sistema operacional estava instalado foi danificado, sendo o dano irreparável. O banco de dados estava em outro hd, que permaneceu intacto.

Agora nós precisamos das informações deste banco de dados, só que eu desconheço como recuperar estas informações. Eu só tenho os backups do banco em arquivos .tar, e dentro deles arquivos .dmp e meu conhecimento sobre Oracle é muito reduzido.

Desde já agradeço e aguardo resposta o mais breve possível.
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

fabiojr,

Adiantando.. você vai precisar reinstalar o oracle.. antes renomeie a pasta do oracle antigo(backup). porque você vai usar essa copia fria para recuperar esses dados isso se não corrompeu nada..


Tem backup logico??.. Archive?
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

Sim, a instalação eu já fiz, eu preciso de uma ajuda na parte de reconstrução do banco, eu tenho os arquivos .dmp
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

cara vou tentar te ajudar enquanto não aparece alguém com mais experiencia.você ainda tem o backup fisico "a pasta ORACLE antiga com os sseu arquivos administrativos(ADMIN),dados do oracle(ORADATA),BASE(DB_N)"?? ou quando você instalo denovo a pasta oracle foi subistituida??
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

beleza, toda ajuda é bem-vinda.

Foi tudo apagado, eu só tenho o backup das informações que estavam no banco de dados.
O hd onde o oracle estava instalado não funciona mais. eu tenho o hd onde estão os backups. O oracle foi instalado novamente.
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

beleza... o que você tem são os dumps.
você já Criou a instancia?? se resposta positiva você tera que criar as tablespaces e os usuarios.. e ai sim importar os dados para os seus usuarios.

ex:

Selecionar tudo

--CRIA TABLESPACE PRODUCAO

CREATE TABLESPACE PROD
 LOGGING
 DATAFILE '/opt/app/oracle/oradata/orcl/PROD_01.DBF' SIZE 10M AUTOEXTEND ON NEXT 50M MAXSIZE 1500M,
 '/opt/app/oracle/oradata/orcl/PROD_02.DBF' SIZE 10M AUTOEXTEND ON NEXT 50M  MAXSIZE 1500M,
 '/opt/app/oracle/oradata/orcl/PROD_03.DBF' SIZE 10M AUTOEXTEND ON NEXT 50M MAXSIZE 1500M
 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;



--CRIA TABLESPACE DE INDICE PRODUCAO

CREATE TABLESPACE IDXPROD
 LOGGING
 DATAFILE '/opt/app/oracle/oradata/orcl/IDXPROD_01.DBF' SIZE 10M AUTOEXTEND ON NEXT 50M MAXSIZE 1500M,
 '/opt/app/oracle/oradata/orcl/IDXPROD_02.DBF' SIZE 10M AUTOEXTEND ON NEXT 50M  MAXSIZE 1500M,
 '/opt/app/oracle/oradata/orcl/IDXPROD_03.DBF' SIZE 10M AUTOEXTEND ON NEXT 50M MAXSIZE 1500M
 EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO;



--CRIA USUARIO PRODUCAO

CREATE USER PRODUCAO
 IDENTIFIED BY senha DEFAULT TABLESPACE PROD
 TEMPORARY TABLESPACE TEMP
 QUOTA UNLIMITED
 ON PROD
 QUOTA UNLIMITED
 ON IDXPROD
ACCOUNT UNLOCK;

--GRANT PARA PODER CONECTAR NO USUARIO
GRANT CREATE SESSION TO PRODUCAO;



--importar os objetos do owner antigo para o outro 
imp system/senha@alias file=c:\backup.dmp fromuser=nomedoownerperdido touser=nomedoownercriado log=c:\informacoesimportacao.log grants=n statistics=none buffer=50000000
Sei que tera outras pessoas com outras ideias porem essa sera mais viavel para você.

depois vai ter que validar seus objetos e correr pro abraço...Se tiver duvida ou estiver fora da realidade.. posta aí..
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

beleza.. era bem isso que eu precisava, so estou com dificuldade em uma coisa, la embaixo, na hora de importar, na sitaxe, tem depois do usuario e senha, um "@alias". O que seria esse alias? :?

O resto está ótimo, acertou em cheio no que eu precisava, muito obrigado mesmo.

Obg.
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

TEM UM ARQUIVO CHAMADO TNSNAMES.ORA
EX:

Selecionar tudo

# tnsnames.ora Network Configuration File: C:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.


PRODUCAO =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.5.38)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)
    )
  )
OBS: NESTE CASO O ALIAS ES PRODUCAO..DESCULPE PELO RESUMO SE não INTENDER POSTA aí.. QUE já já RESPONDO
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

Ótimo, já encontrei.

Agora estou com outro problema: (ta dificil de terminar...:P)

Eu não tenho o nome do owner antigo, e a empresa também não tem, mas soube que talvez esse owner seja o sysdba. Não testei ainda, mas se não for ele, tem alguma forma de importar sem utilizar essa informação?

Obg.
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

PUTS.. O DUMP está SEM ARQUIVO DE LOG??!!

AI FICA DIFICIL...PROCURA SABER... OU FICA TESTANDO NOMES SUJESTIVOS.. não SEI COMO FAZER.. PRECISAMOS DE alguém QUE já TENHA PASSADO POR ISSO. VIRA E MECHE EU PEGO ALGUM DUMP SEM LOG.. O QUE não é LEGAL. POREM SEMPRE TEM UM QUE SABE. ESPERO QUE alguém SAIBA.. =/
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

beleza, mas com isso eu me viro.

Estou fazendo todos os procedimentos pelo sqlplus, mas quando eu vou importar, da um erro dizendo:

Selecionar tudo

SP2-0734: início de comando desconhecido "import sys..." - restante da linha ignorado.
Há outra maneira de passar instruções ao banco sem ser pelo sqlplus?
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

ops desculpe...

o import não é feito pelo sqlplus... e sim pelo prompt do DOS ...


esqueci de falar esse detalhe...
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

Postei a mensagem errada ali em cima.

Selecionar tudo

SP2-0734: início de comando desconhecido "imp system..." - restante da linha ignorado.
Tentei mudar a sintaxe para "import" pra testar, mas também não deu, e acabei postando a msg errada.
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

A está, pelo prompt.

E como que eu conecto no banco pelo prompt?
Nunca usei por ali, so usei o sqlplus.
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Amigo, olha o topico que eu pus aqui no site..

http://glufke.net/oracle/viewtopic.php?p=9784#9784

acho que vai te ajudar.
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

cara,

você ira abri o prompt do dos e ai sim...

Selecionar tudo

imp system/senha@alias file=c:\backup.dmp fromuser=nomedoownerperdido touser=nomedoownercriado log=c:\informacoesimportacao.log grants=n statistics=none buffer=50000000 


se você repara ele ta conectando no banco.. com usuario system/senha@instancia

não tem misterio...
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

importei e acho que funcionou.

Selecionar tudo

Conectado a: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

Arquivo de exportação criado por EXPORT:V09.02.00 via caminho convencional
importação realizada nos conjuntos de caracteres WE8MSWIN1252 e NCHAR AL16UTF16
o cliente de exportação usa o conjunto de caracteres WE8ISO8859P1 (conversão de charset possível)
Importação encerrada com sucesso, sem advertências.
essa foi a saida do imp no arquivo de log.

Como que eu faço pra saber se funcionou? Tem como eu consultar algo no banco pra saber se funcionou?
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

so isso no log??
roda essas querys aí para verificaros usuarios e os owners e a quantidade de objetos....

Selecionar tudo

spool c:\query.log

select username from all_users;

select owner, count(*) from all_objects group by owner;

spool off
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

Segue a saida dos comandos:

Selecionar tudo

SQL> spool c:\query.log
SQL> select username from all_users;

USERNAME
------------------------------
FÁBIO
BI
PM
SH
IX
OE
HR
SCOTT
MGMT_VIEW
MDDATA
SYSMAN

USERNAME
------------------------------
MDSYS
SI_INFORMTN_SCHEMA
ORDPLUGINS
ORDSYS
OLAPSYS
PRODUCAO
ANONYMOUS
XDB
CTXSYS
EXFSYS
WMSYS

USERNAME
------------------------------
DBSNMP
TSMSYS
DMSYS
DIP
OUTLN
SYSTEM
SYS

29 linhas selecionadas.

SQL> select owner, count(*) from all_objects group by owner;

OWNER                            COUNT(*)
------------------------------ ----------
MDSYS                                 859
TSMSYS                                  2
DMSYS                                 189
PUBLIC                              19987
OUTLN                                   7
CTXSYS                                338
OLAPSYS                               718
HR                                     34
SYSTEM                                425
EXFSYS                                279
SCOTT                                   6

OWNER                            COUNT(*)
------------------------------ ----------
SH                                    299
OE                                    112
DBSNMP                                 46
ORDSYS                               1669
ORDPLUGINS                             10
SYSMAN                               1291
PM                                      9
XDB                                   347
IX                                     46
BI                                      8
SYS                                 23060

OWNER                            COUNT(*)
------------------------------ ----------
WMSYS                                 232
SI_INFORMTN_SCHEMA                      8

24 linhas selecionadas.

SQL> spool off
diegoleite
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 115
Registrado em: Sáb, 10 Nov 2007 2:54 pm
Localização: rio de janeiro
Att,


Diego Leite
DBA ORACLE

Como você pode ver o usuario PRODUCAO esta na lista de Usuarios porem não esta na lista de 'owner's' são usuarios com objetos...tabelas e etc... você não importou nada. porque você não sabe o nome do owner antigo..


=(
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

É, realmente ele não é o owner. Isso é um problema, porque eu realmente não tenho os owners antigos, e são 10 arquivos que eu preciso importar. Vou tentar novamente conseguir o nome dos owners.

Não existe outra forma de importar sem utilizar o owner antigo?

Desde já agradeço ao suporte q tem sido dado a mim. Muito obrigado mesmo.

[]s.
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

amigo
usa o import com opções

Selecionar tudo

full=y row=no log=arquivodelog.log ignore=y
depois abre o arquivo de log que vai ver o nome dos owners antigos.
fabiojr
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 15
Registrado em: Sex, 29 Fev 2008 8:32 am
Localização: Balneário Camboriú - SC

Olá pessoal.

Bom, primeiro preciso me desculpar pela demora na resposta. É que surgiram outros contratempos que tive que resolver, mas continuo na tentativa de reerguer este BD do oracle.

Tenho até boas notícias. Vasculhando os HDs encontrei o conteúdo completo do banco, mais precisamente o hd onde as informações eram armazenadas.

Sendo assim, gostaria de saber se continuo com o mesmo procedimento ou há uma outra forma de recuperá-lo?

Não posso esquecer de agradecer a todo mundo que tem me dado dicas aqui. Obrigado mesmo..


Aguardo a resposta,

[]s
ruevers
Rank: DBA Sênior
Rank: DBA Sênior
Mensagens: 324
Registrado em: Sex, 02 Jun 2006 1:48 pm
Localização: sp
Contato:

Continua no import, mais fácil...no estado em que se encontra....
fez o full=y......esse vai dar certo.
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 8 visitantes