Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

MarceloPVargas

Erro RMAN - ORA-01031: insufficient privileges

Recommended Posts

Caros Amigos,

Gostaria de uma ajuda por favor.

Mudamos de plataforma, e estou criando um novo catálogo RMAN, mas quando vou executar o comando

"connect target rman/password@db"

recebo a mensagem de erro ORA-01031: insufficient privileges

Já tentei de tudo (dentro dos meus conhecimentos) não sei mais o que fazer.

 

Dei os seguintes privilégios para o user RMAN

GRANT CREATE TYPE TO "RMAN"

GRANT SYSDBA TO "RMAN"

GRANT "CONNECT" TO "RMAN"

GRANT "RECOVERY_CATALOG_OWNER" TO "RMAN"

GRANT "RESOURCE" TO "RMAN"

 

Agradeço pela ajuda. Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Marcelo,

 

Vamos lá.

 

Poste como tu está se conectando no catálogo e no banco de dados alvo (TARGET).

 

Tente fazer isso no início. Conecte-se primeiramente no catálogo e depois por autenticação do SO, no banco de dados alvo. Exemplo:

 

C:\>rman

RMAN> connect catalog 'rman/<sua_senha>@db_catalogo';

...

RMAN> connect target /

Caso tenha problemas, dê o grant de recovery_catalog_owner para o usuário RMAN, exemplo:

 

SQL> grant recovery_catalog_owner to rman;

 

Se tiver mais dúvidas, leia esse artigo. RMAN - ambiente de backup

 

Abraços, :lol:

 

Rodrigo Almeida

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo Almeida,

Primeiramente, parabéns pelos seus artigos... são de grande valia.

Eu tenho uma cópia do seu artigo sobre RMAN que saiu na SQL Magazine, e é por ele que eu me baseio para criar o catálogo do RMAN... nunca tive problemas.

Eu uso os seguintes comandos:

connect catalog rman/password@rman

connect target rman/password@db_alvo

 

Criei tudo conforme está no artigo... eu já tinha um catálogo funcionando, mas mudamos a estrutura e estou tendo que recriá-lo... tenho o outro catálogo funcionando numa VM... é possível recuperá-lo através de um backup?

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Obrigado pelos elogios nos artigos de RMAN, legal que esteja aprendendo com eles. Fico feliz.

Focando no seu problema, preciso de um overview de como está seu ambiente, vmos lá.

 

1) Você já tinha um catálogo de recuperação funcionando certo? Mudou a estrutura (Física ou lógica) dessa catálogo?

2) Você tem um catálogo montado em uma VM? Funcionando? Todos os seus backups foram feitos por ele? Ou é apenas uma réplica do antigo?

3) Você tinha o backup do seu catálogo de recuperação antigo? (Atráves de backup - EXPORT ou próprio RMAN no modo \nocatalog).

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

1) Você já tinha um catálogo de recuperação funcionando certo? Mudou a estrutura (Física ou lógica) dessa catálogo?

R: Esse catálogo ainda existe, funciona numa VM, está inativo... estou tentando criar um outro catálogo numa outra máquina que não é VM

 

2) Você tem um catálogo montado em uma VM? Funcionando? Todos os seus backups foram feitos por ele? Ou é apenas uma réplica do antigo?

R: Esse catálogo da VM é o que eu usava, funcionava perfeitamente, fazia todos os backups por ele... mudamos a base de produção, foi alterado o nome da instância e o SO agora é linux, antes era AIX

 

3) Você tinha o backup do seu catálogo de recuperação antigo? (Atráves de backup - EXPORT ou próprio RMAN no modo \nocatalog).

R: Consigo acessar esse catálogo e posso fazer um backup. Pode ser via IMPDP?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Vamos lá.

 

1) O seu catálogo foi criado sobre o usuário RMAN, então, poderá fazer o export do owner por completo, e importar para a nova base. Como tu está movendo apenas os dados do RMAN, os DBID de cada base que foi feito backup ainda permanece. Então, não terá problemas. Poderá sim utilizar o IMPDP (Datapump - para 10g) ou o IMP convencional.

 

2) Depois de importar os dados, não esquece de mudar os parâmetros de TNSNAMES para o alias RMAN, que você utiliza para se conectar ao catálogo, como o HOST, PORT e SERVICE_NAME, assim como o LISTENER do novo banco do catálogo.

 

3) Após isso, basta checar todos os privilégios que o usuário RMAN tinha (Que era o dono do catálogo) e passar para o novo, poderá fazer isso, utilizando a view (dba_tab_privs, dba_role_privs e dba_sys_privs).

 

4) Caso ainda tenha problemas em se conectar ao catálogo, tente realizar a conexão utilizando o usuário SYS e veja se conecta.

 

5) Faça testes de conexão para o novo banco de dados (No novo banco e SO do catálogo), usando o tnsping e testes direto usando o SQL*PLUS.

 

6) Veja se seu banco de dados está utilizando arquivo de senha (password file) para se conectar com role de SYSDBA remotamente, deverá ver o parâmetro do banco remote_login_passwordfile, e deverá criar o arquivo usando o ORAPWD FILE=SEU_ARQUIVO.PWD PASSWORD=<senha_do_sys> ENTRIES=7

 

 

Veja o que acontece agora.

 

Abraços, :blink:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo

 

Pesquisando pelo EM, o valor desse parâmetro = EXCLUSIVE

mas não entendi o item 6 "...e deverá criar o arquivo usando o ORAPWD FILE=SEU_ARQUIVO.PWD PASSWORD=<senha_do_sys> ENTRIES=7"

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

 

Tentei algumas opções como dropar o catálogo e recriá-lo...

Depois de algumas tentativas, tentei a opção "register database" e parece que ele recriou o catálogo...

Quando digito "connect target rman/password@db_alvo" continua o mesmo erro, mas quando tento

RMAN> connect target /

connected to target database: RMAN (DBID=1545887548)

 

Aparece essa mensagem...

 

Como posso saber se estou conectando no database correto?

 

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Pelo simples fato que dropar e recriar o catalogo, o comando REGISTER DATABASE irá funcionar sim, pois ele entenderá como um novo banco de dados cadastrado, o interessante é tu continuar com o seu antigo catálogo.

 

Como você está executando o rman LOCALMENTE na base onde está seu banco de dados, o connect target / irá funcionar, pois não usará o remote_login_passwordfile, irá s autenticar localmente, por SO, porém, quando for usar o ALIAS (no caso DB_ALVO), que irá fazer uma autenticação usando o SQLNET, terá erros. Sendo que toda vez que for se autenticar no rman, ele já entende que a conexão tem que ser de um usuário com role de SYSDBA.

 

No seu caso, o problema é apenas acertar o acesso remoto usando a role SYSDBA. Um exemplo disso, é deixando o RMAN pouco de lado, tente de uma outra máquina se conectar na sua base com o usuário sys e as role sysdba. Exemplo:

 

Em outra máquina.

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

 

c:\>sqlplus /nolog

 

SQL>conn sys@db_alvo as sysdba

 

O erro será o mesmo que aparece no RMAN. E para arrumar isso, deverá criar um arquivo de senha e após isso checar se o usuário tem a role SYSDBA e colocar o parâmetro remote_login_password = EXCLUSIVE.

 

Para criar o arquivo de parâmetro é simples, utilizando o aplicativo ORAPWD que acompanha o Oracle Server. Para criar seu arquivo de senha, basta ir ao DOS e fazer o seguinte.

 

c:\> set ORACLE_SID=<nome_da_instancia>

C:\> cd oracle\product\10.2.0\db\database

C:\oracle\product\10.2.0\db\database> orapwd file=pwd<NOME_DA_INSTANCIA>.ora password=<senha_do_sys> entries=7

E então tente se logar com o usuário SYS AS SYSDBA remotamente. Veja se o erro persiste. Caso persista, reinicie o serviço do banco de dados, só por precaução.

 

Se der tudo certo, poderá utilizar o RMAN normalmente com o CONNECT TARGET 'rman/<senha>@db_alvo' que irá funcionar. Aí faça toda a tarefa de importação do ser catálogo antigo.

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo, bom dia...

 

E A LUTA CONTINUA

 

Fiz os teste conforme você falou. Eu consigo conectar com o usuário SYS, tanto da própria máquina quanto remotamente.

Com relação ao usuário RMAN continua o mesmo erro.

Mesmo assim tenho que executar o ORAPWD?

 

Uma dúvida: é necessário ter um user rman no db_alvo?

 

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Executei o orapwd mas continua dando o mesmo erro...

Como não tenho registro de backup, vou tentar criando uma nova instancia

 

Obrigado pela ajuda

 

Depois digo se funcionou

 

Obrigado a todos

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caros amigos,

Agradeço mais uma vez pela ajuda de todos.

Após dropar a instancia RMan e recriá-la, continuei com o mesmo problema.

Tentei diversas opções e encontrei uma solução:

Criei o catálogo, depois fui no banco alvo e no prompt do linux, no diretório $ORACLE_HOME/bin, digitei: rman target / catalog rman/password@rman

Somente dessa forma ele encontrou o banco alvo...

depois digitei "register database" e ele registrou.

Agora consigo conectar, mas somente com o comando

connect target /

 

Vou testar o backup para ver se funciona, mas acho que vai funcionar...

 

Obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Tu consegue acessar com SYSDBA remotamente a sua base?

 

Ter o usuário RMAN na base alvo é totalmente opcional ao DBA, porém, sempre crio o usuário nas bases que terão backups feitos por rman por padrão e evitar utilizar o usuário SYS. Em algumas empresas SYS só é utilizado em extema urgencia.

 

Seu DB_ALVO tem o usuário RMAN?

 

Caso não tenha, pode acessar por SYS que não terá problemas, exemplo:

 

c:\>rman

RMAN> connect catalog 'rman/<senha>@db_catalog';
|
|--> Aqui você usa o usuário RMAN porque o catálogo foi criado por ele na base onde fica o catálogo.

RMAN> connect target 'rman/<senha>@db_alvo';

								ou

RMAN> connect target 'sys/<senha>@db_alvo';

								ou

RMAN> connect target /
|
|-> Veja se essas opções todas funcionanam para se conectar com o banco de dados TARGET.

Se tiver problemas ainda de privilégios, você criou o arquivo de senha para se conectar com SYSDBA? Lembrando que para criar o arquivo de senha, deverá utilizar o aplicativo ORAPWD.

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo,... com relação as suas perguntas:

No caso conectar remotamente a base, seria do catálogo para o banco alvo?

No caso, o meu banco alvo não tem usuário RMAN...

E o segundo teste, onde você coloca os comandos, tem que partir de qual banco?

Obrigado pela ajuda

 

PS.: Infelizmente o problema continua, pensei que tivesse resolvido mas continua dando erro de permissão... o estranho é que dropei a instância e mesmo assim o problema continuou...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Segue as repostas.

 

1) No caso conectar remotamente a base, seria do catálogo para o banco alvo?

 

R: O catálogo é uma base e o banco alvo é outro, são duas instâncias diferentes. No caso, quando eu falo se conectar remotamente, é de uma outra máquina que tenha o Client Oracle que não seja o servidor que está o banco de dados alvo. Exemplo, se o banco alvo está na máquina SERVER01, e o catálogo na máquina SERVER02, tente acessar atráves do SERVER02, o banco alvo usando SYS AS SYSDBA pelo SQL*PLUS, e veja se não tem problemas com permissão.

 

No caso, o meu banco alvo não tem usuário RMAN...

 

R: O usuário RMAN é opcional, mas tente criar o usuário RMAN no banco ALVO, e dê as permissões de RECOVERY_CATALOG_OWNER e SYSDBA, no momento de passar a permissão de SYSDBA para o usuário RMAN no banco alvo, acho que já terá problemas!!!

 

E o segundo teste, onde você coloca os comandos, tem que partir de qual banco?

 

R: Se os comandos são do ORAPWD, ele deve ser executado no servidor que está o banco alvo, dentro da pasta %ORACLE_HOME%\dbs (%ORACLE_HOME%\database para windows). A senha é geralmente o mesmo do SYS, para não ter problemas!!!

 

Abraços, :blink:

Obrigado pela ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

Fiz da seguinte forma:

 

1) ... do banco que contém o catálogo para o banco alvo

-bash-3.00$ ORACLE_SID=asoect => esse é o banco alvo

-bash-3.00$ sqlplus

 

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 10 10:58:08 2008

 

Copyright © 1982, 2005, Oracle. All rights reserved.

 

Enter user-name: sys

Enter password:

ERROR:

ORA-01034: ORACLE not available

ORA-27101: shared memory realm does not exist

Linux Error: 2: No such file or directory

 

Tentei conectar e deu essa mensagem...

 

CONTINUO TESTANDO AS OUTRAS OPÇÕES, OU POR ESSE ERRO JÁ DÁ PRA TIRAR ALGUMA CONCLUSÃO

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Qual é o ALIAS que tu utiliza para conectar-se no banco alvo? O nome que está no TNSNAMES.ORA!

 

O banco de dados asoect está no ar?

 

Quando tu executou todos esses passos abaixo:

 

1) ... do banco que contém o catálogo para o banco alvo
-bash-3.00$ ORACLE_SID=asoect => esse é o banco alvo
-bash-3.00$ sqlplus

SQL*Plus: Release 10.2.0.1.0 - Production on Thu Jul 10 10:58:08 2008

Copyright © 1982, 2005, Oracle. All rights reserved.

Enter user-name: sys
Enter password:
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux Error: 2: No such file or directory

Você estava no servidor do BANCO ALVO ou do CATÁLOGO?

 

Abraços,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

Meu banco que contém o catálogo chama-se RMAN e o banco alvo chama-se ASOECT

 

O Alias que eu utilizo é asoect, e está configurado no tnsnames.ora

O banco de dados asoect está no ar, é o meu banco de produção

Quando executei os ultimos procedimentos, eu estava no banco RMAN... aí digitei o ORACLE_SID=asoect e entrei no sqlplus...

 

A situação atual é a seguinte:

Eu consigo conectar o catálogo normalmente (connect catalog rman/password@rman)

E quando vou conectar o target (connect target /) ... às vezes conecta e às vezes da a mensagem (not started)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Os bancos RMAN e ASOECT estão na mesma máquina?

 

Tente o seguinte, no servidor que está o RMAN.

 

#>sqlplus /nolog


SQL> connect sys@asoect as sysdba
PAssowrd:

E veja se connecta.

 

Se tu for para a base que está o banco ASOECT e fizer isso, deverá funcionar, siga:

 

#> rman

RMAN> connect catalog 'rman/<senha>@rman';

RMAN> connect target /

Isso deverá funcionar!!! No primeiro caso, se continuar com os problemas de privilegios insulficiente, é pq não tem o arquivo de senhas na base para acesso SYSDBA remotamente.

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo,

Parece que agora está funcionando... Fiz um teste de backup na base teste e funcionou...

Muito Obrigado pela ajuda.

 

Desculpe ser chato, mas como sou novo no Oracle, você poderia me esclarecer umas dúvidas? http://forum.imasters.com.br/public/style_emoticons/default/blush.gif

 

1) Estou usando o script abaixo para fazer os backups. Está correto?

cd $ORACLE_HOME/bin

./rman

#

connect catalog rman/password@rman;

connect target /

run {

crosscheck archivelog all;

delete obsolete;

allocate channel ch1 type disk format '/home/oracle/bkprman/%d_%t_%s.bkp';

allocate channel ch2 type disk format '/home/oracle/bkprman/%d_%t_%s.bkp';

backup as compressed backupset database;

release channel ch1;

release channel ch2;

}

 

2) Alocar canais significa dividir o backup em vários arquivos? Somente isso?

3) Esse tipo de backup permite que eu restaure o banco em qualquer situação?

4) Eu faço backup às 2 da manhã (online). Vamos supor que eu tenha um "crash" na minha base por volta das 3 da tarde, se eu tiver cópia dos meus archivelogs juntamente com esse backup, consigo restaurar a base até o último archive log?

Ou até o ultimo redo log, caso eu tenha a cópia?

 

MUITO OBRIGADO PELA AJUDA http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.