ORA-27101: shared memory realm does not exist

Scripts Diversos para o Oracle SQL*Plus. (Relacionado a ferramenta Oracle SQL*Plus, para questões de SQL, usar o forum SQL)
Responder
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Intalei o Oracle 10g XE no Windows & 64 bits. A instalação ocorreu normalmente, mas não consigo entrar em http://127.0.0.1:8080/apex.
E quando tento entrar pelo sqlplus com o usuário system aparece:

ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist

se tento entrar com 'sqlplus / as sysdba' aparece:

ERROR:
ORA-01031: insufficient privileges.

Alguém sabe como resolver isso?
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Vinicius,

O Oracle XE foi desenvolvido para plataforma de 32 bits, mas mesmo assim parece ser possível executar ele em 64 bits.

Sua instância XE parace estas baixada.

Veja se consegue inicializar manualmente a instância do XE.

01) Abrir uma janela do MS-DOS;
02) Chamar o SQL*Plus: sqlplus <enter>
03) Na sessão SQL*Plus, executar o comando abaixo:
SQL> / as sysdba <enter>
04) Ao executar o comando acima, deveria aparecer a mensagem:
"Connected to an idle instance".
05) Caso positivo, execute o comando abaixo:
SQL> startup <enter>
06) A instância deveria ser iniciada sem problemas, como no exemplo abaixo:

Selecionar tudo

ORACLE instance started.
Total System Global Area 1553305600 bytes
Fixed Size	 2213656 bytes
Variable Size	 1241516264 bytes
Database Buffers	 301989888 bytes
Redo Buffers	 7585792 bytes
Database mounted.
Database opened.
07) Se a inicialização ocorrer sem problemas, saia do SQL*PLus com o comando abaixo:
SQL> exit <enter>
08) Veja se o listener está no ar. Na sessão do MS-DOS, execute o comando:
lsnrctl status <enter>
09) O comando acima deve retornar algo assim:

Selecionar tudo

LSNRCTL for 32-bit Windows: Version 10.2.0.1.0 - Production on 22-AGO-2011 18:29:41
Copyright (c) 1991, 2005, Oracle.  All rights reserved.
Estabelecendo conexÒo com (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC_FOR_XE)))
STATUS do LISTENER
------------------------
Apelido                   LISTENER
VersÒo                    TNSLSNR for 32-bit Windows: Version 10.2.0.1.0 - Production
Data Inicial              10-AGO-2011 18:50:55
Funcionamento         11 dias 23 hr. 38 min. 55 seg
NÝvel de Anßlise     off
Seguranþa              ON: Local OS Authentication
SNMP                      OFF
Serviþo Default           XE
Arq. ParÔm. Listn.    d:\oracle\xe\app\oracle\product\10.2.0\server\network\admin\listener.ora
Arq. Log Listener    d:\oracle\xe\app\oracle\product\10.2.0\server\network\log\listener.log
Resumo de Atendimento...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC_FOR_XEipc)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=WTLSABR03649520.telefonica.br)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=8080))(Presentation=HTTP)(Session=RAW))
Resumo de Serviþos...
O serviþo "CLRExtProc" tem 1 instÔncia(s).
  InstÔncia "CLRExtProc", status UNKNOWN, tem 1 handler(s) para este serviþo...
O serviþo "PLSExtProc" tem 1 instÔncia(s).
  InstÔncia "PLSExtProc", status UNKNOWN, tem 1 handler(s) para este serviþo...
O serviþo "XEXDB" tem 1 instÔncia(s).
  InstÔncia "xe", status READY, tem 1 handler(s) para este serviþo...
O serviþo "XE_XPT" tem 1 instÔncia(s).
  InstÔncia "xe", status READY, tem 1 handler(s) para este serviþo...
O serviþo "xe" tem 1 instÔncia(s).
  InstÔncia "xe", status READY, tem 1 handler(s) para este serviþo...
O comando foi executado com Ûxito
10) Se por acaso retornar algo como "TNS-12541: TNS:não há listener", executar o comando abaixo:
lsnrctl start <enter>
11) Você pode conferir se a inicialização do listener está ok, digitando novamente o comando:
lsnrctl start <enter>
12) Com o banco no ar e o listener OK, tente novamente acessar a página do Oracle XE.

Me informe depois dos resultados deste plano de ação.

Abraços,

Sergio Coutinho
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Vinicius,

Eu havia me esquecido de seus comentários sobre os problemas de privilégio com o SYSDBA.

Se no plano de ação anterior este problema de privilégios ocorrer, faça o seguinte:

01) Procure o arquivo SQLNET.ORA, situado geralmente no
$ORACLE_HOME/network/admin;
02) Abra o arquivo SQLNET.ORA e veja se existe esta linha:
#SQLNET.AUTHENTICATION_SERVICES= (NTS)
03) Se existir esta linha, remova o "#" e salve o arquivo;
04) Abra novamente a janela do MS-DOS (não utilize a janela anterior);
05) Repita o processo de conexão do SQL*Plus como SYSDBA;
06) Faça o plano de ação mencionado anteriormente.

Como você está instalando em uma máquina windows de 64 bits (não sei se seria XP, VISTA ou WINDOWS 7), talvez você ainda se depare com problemas.

Neste caso, poste eles aqui para o pessoal do forum poder ajudar você. E informe exatamente a versão de windows onde se situa este XE 10g.

Abraços,

Sergio Coutinho
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Sérgio, muito obrigado pelas respostas.

O listener já está sim rodando normalmente.
Sobre o sqlnet.ora, já havia editado ele, porém esta linha não estava comentada (#). O que fiz foi alterar o (NTS) para (NONE) como encontrei em outros fóruns...
Estou tentando conectar localmente (sem rede) na máquina que instalei o oracle, que é um Windows 7 64 bits.
Quando eu rodo o camando '/ as sysdba' no sqlplus aparece:
SP2-0103: Nada para executar no buffer SQL.

...
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Vincius,

Não sei se você está chamando o SQLPLUS e somente depois está digitando "/ as sysdba"

Tente executar todo o comando a partir do prompt do DOS, como no exemplo abaixo:

Selecionar tudo

C:\> sqlplus / as sysdba      <enter>
Abraços,

Sergio Coutinho
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Sergio,

quando executo o comando que me passou aparece:

ERROR:
ORA-12638: Falha na recuperação de credencial
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Vinicius,

Verifique se esta alteração no SQLNET.ORA que você fez está efetiva:

de:
SQLNET.AUTHENTICATION_SERVICES= (NTS)
para:
SQLNET.AUTHENTICATION_SERVICES= (NONE)

Repita o comando conforme descrito abaixo:

Selecionar tudo

set ORACLE_SID=[NOME_DO_SID_DA_SUA_INSTANCIA]  <enter>
sqlplus / as sysdba                            <enter>
Abraços,

Sergio
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Sergio,

o sqlnet.ora permanece assim:

Selecionar tudo

SQLNET.AUTHENTICATION_SERVICES = (NONE)
Fiz o que me falou:

Selecionar tudo

set ORACLE_SID= XE
quando eu tento 'sqlplus / as sysdba' aparece:

Selecionar tudo

ORA-12560: TNS:erro de adaptador de protocolo
O listener esta assim:

Selecionar tudo

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
    (SID_DESC =
      (SID_NAME = CLRExtProc)
      (ORACLE_HOME = C:\oraclexe\app\oracle\product\10.2.0\server)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
      (ADDRESS = (PROTOCOL = TCP)(HOST = cedrojt-006.cedrofinances.com.br)(PORT = 1521))
    )
  )

DEFAULT_SERVICE_LISTENER = (XE)
E o tsnames está assim:

Selecionar tudo

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = cedrojt-006.cedrofinances.com.br)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )

ORACLR_CONNECTION_DATA = 
  (DESCRIPTION = 
    (ADDRESS_LIST = 
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE)) 
    ) 
    (CONNECT_DATA = 
      (SID = CLRExtProc) 
      (PRESENTATION = RO) 
    ) 
  ) 
Lembrando que estou executando o sqlplus localmente.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Vinicius,
Vou pesquisar mais sobre os problemas que você está tendo em seu ambiente.
Devo atualizar quando tiver um plano de ação.
Abraços,
Sergio
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Sergio,

Já que ainda não tinha conseguido rodar o Oracle XE no Windows 7 64bits, resolvi instalar o ubuntu no virtualbox e rodar o XE nele.
No Linux está tudo normal, mas quando tento abrir uma seção do sqlplus no windows para conectar no banco, olha o que acontece:

Selecionar tudo

sqlplus system/senha@10.1.1.1:1521/xe
Conectado a:
Oracle Database 10g Express Edition Release 10
SQL> conn usuario
Informe a senha:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
veja que ele chega a entrar como system, mas se tento conectar com 'usuario' ele dá o mesmo erro. Estranho que se eu tentar direto dá certo:

Selecionar tudo

sqlplus usuario/senha@10.1.1.1:1521/xe
Conectado a:
Oracle Database 10g Express Edition Release 10
SQL>
será que pode ser algum problema do sqlplus? Porque o banco no linux está normal.

abraço.
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Vinicius,

Pelos foruns da Oracle (https://forums.oracle.com) foi possível identificar duas possíveis causas para seu problema:

A) Permissão incorreta no executável $ORACLE_HOME/bin/oracle :

Em seu blog (http://sabdarsyed.blogspot.com/2009/01/ ... hared.html), o DBA Sabdar Syed informa que este problema (SHARED MEMORY) pode estar relacionado com problema de permissões do UNIX no diretório do Oracle.

Resumindo, você deve atribuir a permissão UNIX 6751 para diretório $ORACLE_HOME/bin/oracle:

Selecionar tudo

$ cd $ORACLE_HOME/bin
$ chmod 6751 oracle
B) Problemas de variáveis de ambiente (ORACLE_HOME, ORACLE_SID, PATH)

Muitos foristas mencionam que este problema ocorre porque as variáveis de ambiente não foram setadas corretamente.

O manual do Oracle XE (B25144-03), que pode ser obtido em http://www.oracle.com/pls/xe102/homepage, informa que você precisa configurar o bash-profile para que este carregue automaticamente as variáveis de ambiente do oracle

Selecionar tudo

$ cd $HOME
$ cp $ORACLE_HOME/server/bin/oracle_env.sh .bash_profile
Sugiro que você execute primeiro o passo A e veja se o problema é resolvido.

Caso não seja, execute o passo B com cuidado. Eu sugiro até que você execute antes uma cópia de segurança do "bash_profile".

Atualize por favor depois esta thread com os resultados obtidos.

Abraços,

Sergio Coutinho
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Bom dia Sergio!

Fiz as duas alterações que me passou. Porém sem sucesso.
Mas agora já estou usando o banco normalmente no ubuntu, porque já consigo logar nele via sqlplus e sql developer. Quando faço a conexão no sqlplus do windows diretamente no usuário que quero (sqlplus usuario/senha@ip_ubuntu:1521/xe), conecta normalmente. O erro só ocorre quando já estou conectado e dentro da mesma seção tento conectar com outro usuário (sql> conn system). Aí ocorre um erro diferente para o Windows 7 64bits e para o Windows XP 32bits:

Win 7:

Selecionar tudo

ORA-27101: shared memory realm does not exist
Win XP:

Selecionar tudo

ORA-12560: TNS:erro de adaptador de protocolo
O tnsnames.ora do linux está assim:

Selecionar tudo

XE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = ubuntu)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = XE)
    )
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC_FOR_XE))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

não tem algum usuario com grant sysdba/system, ou export..

acho que seria melhor você refazer essa instalação hein, faz um export e depois importa num lugar corretamente instalado,

pode ser que ate consiga resolver, mas será que vai ficar confiavel?
Avatar do usuário
stcoutinho
Moderador
Moderador
Mensagens: 850
Registrado em: Qua, 11 Mai 2011 5:15 pm
Localização: são Paulo - SP

Humm,

Sobre este erro de mudança de usuário na mesma sessão, o problema ocorre tanto quando você aciona o SQL*Plus do Windows e o SQL*Plus do UBUNTU? Em ambos ocorrem problemas parecidos?

Não conheço muito sobre a sintexe da string de conexão que você usa em suas conexões. Talvez seja desatualização da minha parte, mas você precisa mesmo informar tudo isso depois do "@"? Por que não tentar simplesmente:

Selecionar tudo

SQL> conn system/manager@XE
Pelo que disse, você está conseguindo trabalhar com o banco, apesar deste pequeno inconveniente.

Você ainda desejaria tentar resolver completamente este problema, ou da forma como está, "já dá para o gasto"?

Abraços,

Sergio Coutinho
diegolenhardt
Moderador
Moderador
Mensagens: 1177
Registrado em: Qui, 15 Out 2009 10:28 am
Localização: Recife

como system vai solicitar a role que ele quer

"/ as sysdba" ou "/ as system"

:D
viniciusandrade
Rank: Programador Júnior
Rank: Programador Júnior
Mensagens: 20
Registrado em: Ter, 19 Jul 2011 5:50 pm
Localização: Jataí - GO

Os problemas com o Oracle XE no Windows 7 64bits continuam, porem já consigo usar normalmente o banco instalado no ubuntu.
Vou continuar pesquisando e instalar o banco em outras máquinas que tenho aqui.
Qualquer novidade que eu encontrar ou mesmo quando conseguir resolver o problema, eu posto aqui para todos consultar.

Muito obrigado a todos.
Responder
  • Informação
  • Quem está online

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