Ir para conteúdo

POWERED BY:

Arquivado

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

MarceloPVargas

Erro RMAN - ORA-01031: insufficient privileges

Recommended Posts

Marcelo,

 

Tu está conseguindo acessar como SYSDBA remotamente na base alvo?

 

Respondendo as suas perguntas, segue abaixo:

 

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

 

R: Faz essas alterações para garantir seu backup!!!

 

cd $ORACLE_HOME/bin

./rman

#

connect catalog rman/password@rman;

connect target /

run {

crosscheck archivelog all;

delete noprompt obsolete;

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

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

backup as compressed backupset database include current controlfile;

backup spfile;

release channel ch1;

release channel ch2;

}

 

Abaixo segue as alterações.

 

delete noprompt obsolete;

 

-> Após realizar o crosscheck do seus archives, para saber se existe backup disponível em disco, coloque a opção NOPROMPT para não ter que confirmar a exclusão para cada archive que não estiver em disco.

 

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

 

-> A variável %r na formação do backupset por canal é para garantir que o backupset pertence a uma determinada incarnação do seu banco de dados. Assim, fica na geração do arquivo as seguintes informações: NOme do Banco, Time Stamp, Sequência e Incarnação, garantindo sempre um único arquivo. Pelas variáveis %d_%t_%s_%r.

 

backup as compressed backupset database include current controlfile;

 

-> Não esqueça de fazer o backup do seu controlfile no instance do backup, é apenas uma garantia. Tem a opção de SET CONFIGURE AUTOBACKUP CONTROLFILE no catálogo de recuperação. Mas, é somente garantia.

 

backup spfile;

 

-> Faça o backup do seu SPFILE se tiver!!!! Fica mais fácil nos momentos de recuperação completa do banco ou duplicate.

 

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

 

R: Resumidamente seria isso. Os Canais do RMAN são processos servidor que lê o banco de dados alvo e gera os backupsets conforme as configurações manuais dos scripts de RMAN ou atráves do catálogo de recuperação. Depedendo do ambiente, quando mais processos for alocado para o backup, mais performance pode ganhar no momento de backup, pois, pelo algoritmo do RMAN, para cada canal alocado é divido o trabalho. Mas, não é somente para dividir o backup, existem muitas outras coisas que envolvem os Canais, como manutenção, duplicação de bases, TSPITR, canais auxiliares, melhorias de performance, configurações para SBT e etc...

 

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

 

R: Se tiver seus backups do banco, archivelogs, control files e spfile em dia. Poderá voltar sim sem problemas, somente será um pouco mais demorado, pois está compactado.

 

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?

 

R: SIM! Se seus backups são FULL (Incremental Level 0) e tem todos os ARCHIVES guardados, poderá sim voltar até o último instante. O que pode acontecer é o Oracle Server lhe pedir uma sequência de ARCHIVE que ainda não foi gerado, ele está no REDO LOG, então no momento de RECOVER, é só passar o caminho completo do REDO LOG e terá uma restauração completa. Por isso que é importante multiplexar os REDO LOGS.

 

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

 

R: SIM! Como explicado acima.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

Mais uma vez, Muito Obrigado pela ajuda e pelas dicas...

 

1) Eu tenho um script que copia para uma outra máquina (NFS), todos os dias às 5 da manhã, o control file e a pasta /dbs (/u01/app/oracle/product/10.2.0/db_1) que contém o spfile. Isso é um bom procedimento?

 

2) Com relação ao RMAN, quando digito os comandos, funciona ... só que quando coloco no script (crontab) no linux

 

cd $ORACLE_HOME/bin

./rman

connect catalog rman/password@rman;

 

Ele vai no diretório, entra no rman, mas não dá sequencia ... quero dizer, não conecta ao catálogo...

E eu usava o mesmo script no aix e funcionava...

Estou como user oracle, será que falta alguma detalhe? Abaixo segue a linha no crontab

 

00 02 * * * oracle /home/oracle/scripts/bkp_db_full.sh

 

3) Tenho um banco de testes, tb com linux, gostaria de pegar um backup do RMAN da base de produção para testar nesse ambiente de testes. O que devo fazer? Copiar os arquivos de backup, archivelogs, etc para a máquina de backup?

Mas como faço para o RMAN enxergar esses arquivos e fazer o restore?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Segue as respotas.

 

1) Eu tenho um script que copia para uma outra máquina (NFS), todos os dias às 5 da manhã, o control file e a pasta /dbs (/u01/app/oracle/product/10.2.0/db_1) que contém o spfile. Isso é um bom procedimento?

 

R: É sempre bom por garantia, aumenta a sua proteção se tem espaço em disco para isso. Porém, o RMAN pode fazer tudo isso por ti sem complicações e nas recuperações se torna mais rápida e facilitada. Se quizer mantér os 2.

 

2) Com relação ao RMAN, quando digito os comandos, funciona ... só que quando coloco no script (crontab) no linux

 

cd $ORACLE_HOME/bin

./rman

connect catalog rman/password@rman;

 

Ele vai no diretório, entra no rman, mas não dá sequencia ... quero dizer, não conecta ao catálogo...

E eu usava o mesmo script no aix e funcionava...

Estou como user oracle, será que falta alguma detalhe? Abaixo segue a linha no crontab

 

00 02 * * * oracle /home/oracle/scripts/bkp_db_full.sh

 

Faz o seguinte, pega todo o contéudo do RMAN e joga para um arquivo de comando. Exemplo:

 

rman_backup.cmd (Criar esse arquivo). (Contéudo abaixo)

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

connect catalog rman/password@rman;
connect target /
run {
crosscheck archivelog all;
delete noprompt obsolete;
allocate channel ch1 type disk format '/home/oracle/bkprman/%d_%t_%s_%r.bkp';
allocate channel ch2 type disk format '/home/oracle/bkprman/%d_%t_%s_%r.bkp';
backup as compressed backupset database include current controlfile;
backup spfile;
release channel ch1;
release channel ch2;
}

Shell para backup (Esse pode ir para Crontab).

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

#!/bin/bash
# User specific environment and startup programs
dateh=`date '+%d%m%y-%H-%M'`;export dateh
PATH=$PATH:$HOME/bin
export PATH

# Oracle Settings
TMP=/tmp; export TMP
TMPDIR=$TMP; export TMPDIR
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1; export ORACLE_HOME
ORACLE_SID=sppe; export ORACLE_SID
ORACLE_TERM=xterm; export ORACLE_TERM
PATH=/usr/sbin:$PATH; export PATH
PATH=$ORACLE_HOME/bin:$PATH; export PATH
SQL_PATH=/u02/scripts; export SQL_PATH
SPPE_ADMIN=/u01/app/oracle/admin/sppe; export SPPE_ADMIN
EDITOR=vi; export EDITOR
NLS_DATE_FORMAT='DD/MM/RRRR HH24:MI:SS'; export NLS_DATE_FORMAT
DISPLAY=162.74.191:0.0; export DISPLAY

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib; export LD_LIBRARY_PATH
CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib; export CLASSPATH
LD_ASSUME_KERNEL=2.4.1; export LD_ASSUME_KERNEL

/u01/app/oracle/product/10.2.0/db_1/bin/rman @'/u01/app/oracle/admin/sppe/scripts/rman_bkp_archive.cmd' log=/u01/app/oracle/admin/sppe/scripts/log/rman_bkp_archive-$dateh.log

Esse script acima é um exemplo de como utilizo em máquinas em Linux. Só trocar os valores das variáveis e os nomes dos scripts.

 

3) Tenho um banco de testes, tb com linux, gostaria de pegar um backup do RMAN da base de produção para testar nesse ambiente de testes. O que devo fazer? Copiar os arquivos de backup, archivelogs, etc para a máquina de backup?

Mas como faço para o RMAN enxergar esses arquivos e fazer o restore?

 

R: Para facilitar tu pode fazer um DUPLICATE da base para o host do banco de teste. Seria um 'backup" e "restore" DA SUA BASE DE PRODUÇÃO. Procure mais informações sobre o DUPLICATE com RMAN.

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caro Rodrigo,

Fiz o backup RMan e funcionou beleza... o único problema é que ele não executa pelo crontab, tive que fazer manualmente... o script que você passou está beleza, só que no comando "connect target /" ele dá a msg (not started), mas se eu for colocando comando a comando, aí ele funciona...

Estou tentando descobrir que mistério é esse...

Esse DUPLICATE é tipo um espelhamento, ou uma forma de atualizar via RMAN? você tem algum material ou link que fale sobre isso...

 

Gostaria de fazer um espelhamento da base de produção para o banco de teste? É Recomendável? Onera a base de produção? Ou é melhor atualizar toda a madrugada, via script?

você tem algum banco de teste? E para manter atualizado, usa espelhamento?

 

Obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

Desculpe incomodá-lo novamente, mas estou com um problema meio complicado e não estou encontrando solução.

Como o meu backup RMan não estava OK, eu ia fazendo o backup pelo expdp e apagava os archivelogs para não ficarem ocupando espaço. Só que agora qdo eu dou um "crosscheck archivelog all;" ele exibe 370 objetos, mas não apaga com o comando "delete noprompt obsolete" nem com o comando "delete noprompt expired backup;"... e o pior é que minha área de flash_recov está quase estourando...

Como fiz esse backup FULL do RMan hoje pela manhã, ele não deveria considerar todos os arqchivelogs antigos como expirados ou obsoletos?

 

Obrigado mais uma vez...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Marcelo,

 

Continua com os problemas de Archives?

 

Veja no seu catalog o valor para RETENTION WINDOW RECOVERY?

 

Abraços, :lol:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo,

Consegui, aos 45 do 2º tempo, resolver o problema.

Usei o comando DELETE NOPROMPT EXPIRED COPY;

E agora que o RMan está funcionando corretamente, ele gerencia os archive logs.

 

Muito obrigado pela ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rodrigo, tudo OK

Estou lendo sobre o DUPLICATE do RMan e gostaria de solicitar-lhe uma ajuda.

Minha principal dúvida é a seguinte:

Quando eu faço o duplicate, a base teste é atualizada on-line ou através de scripts?

E as alterações feitas na base teste, influenciam na base oficial?

 

Obrigado pela ajuda.

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.