Ir para conteúdo

Arquivado

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

mahoushi

Flash Recovery Area

Recommended Posts

Olá,Espero que quem leia esse post possa me dar uma ajuda.Estou tentando fazer backups do banco de dados utilizando o script de backup que vem com o Oracle, para isso setei o banco de dados em archivelog, setei o destino da Flash Recovery Area e o seu tamanha em 4Gb, porém quando executo o script ele acusa um erro e diz que a Flash Recovery Area não está habilitada.Pelo que eu lí, para habilitar essa area, é necessário apontar ela para uma pasta/diretório que não seja o default do oracle, e dizer o tamanho que essa área pode ocupar. Se alguem souber de alguma outra configuração que deve ser feita ou alterada...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá Rapaz,No Oracle XE os parâmetros do db_recovery_file_dest e db_recovery_file_dest_size já vêm configurados da instalação e NÃO precisa ser alterado. Abaixo segue um exemplo fazendo um backup com RMAN no Oracle XE e habilitando posteriormente os recursos de FLASHBACK.PS: Minha base inicialmente está em NOARCHIVELOG

SQL*Plus: Release 10.2.0.1.0 - Production on Ter Dez 12 17:36:50 2006Copyright (c) 1982, 2005, Oracle.  All rights reserved.SQL> conn sys as sysdbaInforme a senha:Conectado.SQL> select * from v$version;BANNER----------------------------------------------------------------Oracle Database 10g Express Edition Release 10.2.0.1.0 - ProductPL/SQL Release 10.2.0.1.0 - ProductionCORE	10.2.0.1.0	  ProductionTNS for 32-bit Windows: Version 10.2.0.1.0 - ProductionNLSRTL Version 10.2.0.1.0 - ProductionSQL> archive log list;Modo log de banco de dados   Modo Sem ArquivamentoArquivamento automßtico			 DesativadoDestino de arquivamento			USE_DB_RECOVERY_FILE_DESTA seq³Ûncia de log on-line mais antiga	 16Seq³Ûncia de log atual		   17SQL> show parameters recoverNAME								 TYPE		VALUE------------------------------------ ----------- ------------------------------db_recovery_file_dest				string	  C:oracleproductXEapporacl												 eflash_recovery_areadb_recovery_file_dest_size		   big integer 10Grecovery_parallelism				 integer	 0SQL> show parameters flashNAME								 TYPE		VALUE------------------------------------ ----------- ------------------------------db_flashback_retention_target		integer	 10000SQL> select name, log_mode from v$database;NAME	  LOG_MODE--------- ------------XE		NOARCHIVELOGSQL> shutdown immediate;Banco de dados fechado.Banco de dados desmontado.InstÔncia ORACLE desativada.SQL> startup mount;InstÔncia ORACLE iniciada.Total System Global Area  285212672 bytesFixed Size				  1287016 bytesVariable Size			  96472216 bytesDatabase Buffers		  184549376 bytesRedo Buffers				2904064 bytesBanco de dados montado.SQL> alter database archivelog;Banco de dados alterado.SQL> alter database open;Banco de dados alterado.SQL> select name, log_mode from v$database;NAME	  LOG_MODE--------- ------------XE		ARCHIVELOGSQL> hostMicrosoft Windows XP [versão 5.1.2600]© Copyright 1985-2001 Microsoft Corp.C:oracleproductXEapporacleproduct10.2.0serverBIN>rmanRMAN> connect target /conectado ao banco de dados de destino: XE (DBID=2482349228)RMAN> run {2> allocate channel t1 type disk format 'c:%s%t$d.bkp';3> sql 'alter tablespace USERS offline';4> backup tablespace USERS;5> sql 'alter tablespace USERS online';6> release channel t1;7> }usar o arquivo de controle do banco de dados de destino em vez do catßlogo de recuperaþÒocanal alocado: t1canal t1: sid=19 devtype=DISKinstruþÒo sql: alter tablespace USERS offlineIniciando backup em 12-DEZ-06canal t1: iniciando conjunto de backup completo de arquivo de dadoscanal t1: especificando arquivo(s) de dados no conjunto de backupsfno=00004 name=C:ORACLEPRODUCTXEORADATAXEUSERS.DBF do arquivo de dados de entradacanal t1: iniciando o componente 1 em 12-DEZ-06canal t1: componente 1 finalizado em 12-DEZ-06handle de componente=C:1609010953$D.BKP tag=TAG20061212T174232 comentßrio=NONEcanal t1: conjunto de backups concluÝdo, tempo decorrido: 00:00:03Finalizado backup em 12-DEZ-06instruþÒo sql: alter tablespace USERS onlinecanal liberado: t1RMAN> list backup of tablespace USERS;Lista de Conjuntos de Backup===================BS Key  Type LV Size	   Device Type Elapsed Time Horßrio de ConclusÒo------- ---- -- ---------- ----------- ------------ --------------------1	   Full	1.16M	  DISK		00:00:02	 12-DEZ-06		Chave BP: 1   Status: AVAILABLE  Compactado: NO  Tag: TAG20061212T174232		Nome do Componente: C:1609010953$D.BKP  Lista de Arquivos de Dados no conjunto de backup 1  File LV Type Ckp SCN	Tempo de Verif. Name  ---- -- ---- ---------- --------------- ----  4	   Full 770328	 12-DEZ-06	   C:ORACLEPRODUCTXEORADATAXEUSERS.DBF
RESUMINDO! Não precisa ALTERAR nada no Oracle XE para realizar operações de backup e recover com RMAN.O que fiz, foi apenas alterar o modo de arquivamento do meu banco de dados de NOARCHIVELOG para ARCHIVELOG, afim de realizar um backup incremental apenas da tablespace USERS.Caso queira, poderá realizar qualquer outro tipo de backup, como FULL, INCREMENTAL LEVEL 0 ou 1 ou por backupset!Fora que os recursos de flashback QUERY e TABLE estão habilitados.Abraços, :natalw00t:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Agradeço a resposta, porém eu gostaria de utilizar o script backup.sh que vem com o oracle, para poder agendar backups do banco. Tentei conectar ao banco pelo RMAN porém apareceu a seguinte mensagem:ORA-01031: Insufficient privilegesEstou usando o Fedora Core 4, e imagino que eu tenha que por meu usuário em um grupo que tenha acesso ao RMAN, mas qual seria esse grupo? Ja estou com esse usuário no grupo dba.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou conectar com o usuário SYS?Pois para conectar no RMAN terá que ter role de SYSDBA para conseguir realizar as operações de backup.Abraços, :natalohmy:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Alphamek, antes de mais nada gostaria de agradecer a atenção, e tentar me ajudar a resolver esses problemas.Eu não entendo muito disso, pode-se dizer que eu sou um newbie em Oracle, mas estou tentando entender mesmo assim.Pelo que eu li, o RMAN conecta como sysdba se tu tiver privilegios apra tal. Para isso eu fui no sqlplus, conectei como sysdba e fiz o seguinte:SQL>create user ops$root identified externally;User creted.SQL>grant dba to ops$root;Grant succeeded.depois disso, tentei logar no RMAN:rman target /e tive de novo o erro dizendo que eu não tenho privilégios suficientes para acessar o banco de dadostentei dar um "grant sysdba to ops$root;", mas o oracle não permite que eu de o status de sysdba pra alguem reconhecido externamente

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você tem acesso ao usuário ROOT, pq não utiliza o usuário ORACLE para fazer o backup?ops$ é utilizado para autenticação via sistema operacional, e não é apenas um grant de DBA que precisa, é um grant de SYSDBA ao usuário, exemplo:

SQL > grant sysdba to ops$root;

Caso ele dê erros, terá que fazer um arquivo de senha no sistema operacional e habilitar o parâmetro da instância REMOTE_LOGIN_PASSWORDFILE = EXCLUSIVE.Aí sim, irá conseguir realizar as operações de backup na instância.Acho mais fácil se autenticar no sistema operacional com o usuário ORACLE (Pertecente ao grupo DBA)Abraços, :natalbiggrin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, depois de ler esse ultimo post, eu dei um su - oracle e realmente consegui executar o script de backup, assim como o comando de backup do RMAN, porem... como um bom newbie que faz coisas sem ler TODA a documentação, eu editei o spfile do meu banco pra adicionar o $ops no usuário externo, ao inves de editar o pfile e depois criar um spfile novo...entrei no slqplus e mandei criar um spfile novo do pfile que tinha la, porem não eram as mesmas configurações. entao eu alterei o pfile para ter um tamanho que permitisse dar um startup no oracle (ele tava pedindo mais do que 62Mb, eu pus 90Mb) e criei novamente o spfile.só que agora, ele está apontando para "control files" que não existem em lugar nenhum da minha máquina, e pra piorar a situação eu não sei onde eles estavam antes dessa história toda começarna verdade nem tem o campo de usuario externo mais no novo spfile...então pra tentar minimizar o dano estou tentando criar uma nova "control file" usando o mesmo banco de dados...poderia me dar uma mão com isso?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita! Tô vendo que a casa tá caindo. Bom, vamos por partes:1- Sua base de dados está no AR? Sem problemas nenhum, todos estão acessando numa boa?2 - Faça um checkpoint dos datafiles para atualizar os controfiles, no SQL*PLUS faça o comando: ALTER SYSTEM CHECKPOINT; Veja se executo perfeitamente.3 - Se conseguiu executar o passo 2 sem problemas, então você tem ainda algum CONTROLFILE na máquina, basta EXCLUIR o SPFILE e iniciar a instância pelo PFILE.CASO a base não esteja no ar, faça o seguinte:1 - No sistema operacional, procure arquivos que termine com *.ctl e veja se encontra algum.2 - Serviço de Preso agora, caso não tenha nenhum, terá que construir um CONTROLFILE na mão, usando todos os datafiles da sua base.3 - Ao iniciar a instância, inicie utilizando o PFILE, exemplo: SQL > STARTUP MOUNT PFILE=$ORACLE_HOME/dbs/initSUA_BASE.oraOK! E Poste os problemas.Abraços, :natalsad:

Compartilhar este post


Link para o post
Compartilhar em outros sites

mmm, a base não está no ar, eu não consigo acessar a web page dela, nem consigo montar ela. Não consigo criar o checkpoint porque a base não está aberta. tentei executar no sqlplus o seguinte:SQL>create controlfile reuse databse "XE" noresetlogs archivelog;e me retornou o seguinte:ERROR at line 1:ORA-01503: CREATE CONTROLFILE failedORA-01565: error in identifying file '?/dbs/dbs1@.dbf'ORA-27037: unable to obtain file statusLinux Error: 2: No such file or directoryAdditional information: 3Como eu faria para constuir um novo CONTROLFILE na mão? E como eu faço para reconhecer datafiles (saber quem são)?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fiz uma busca na minha máquina e encontrei alguns arquivos .dbf em uma pasta com o nome do meu banco de dados.Tentei o comando CREATE CONTROLFILE passando um por um esses arquivos .dbf para o parametro DATAFILE, e todos acusaram algum tipo de erro, por exemplo dizendo que não era um datafile válido...Acho que não tenho muita opção a não ser começar tudo do zero, não?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seguinte,Me passa como você montou seus controlfiles, posta o script, e todos os arquivos que estão sendo utilizados pelo banco de dados (DBF).Passa também seu initXE.ora, que vamos conseguir voltar a base.Abraços, :natalbiggrin:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, eu tentei criar um controlfile com o seguinte comando no sqlplus:CREATE CONTROLFILE REUSE DATABASE "XE" NORESETLOGS ARCHIVELOG DATAFILE nomearquivoonde XE é o nome do meu banco (pelo menos essa era a única pasta que existia em /oracle/xe/oradatae nomedoarquivo eu substitui por um desses arquivos (testei com um de cada vez):control.dbfundo.dbfsysaux.dbftemp.dbfsystem.dbfusers.dbfque são os únicos arquivos .dbf que eu tenho nessa máquina (eles estão dentro de /oracle/xe/oradata/XE/)esse comando acusou erro, dizendo que esse arquivo não era usado pelo meu banco de dadosnão to usando nenhum script para recriar o controlfile---------------------------------------------------------------------------o meu initXE é o seguinte:*.control_files='ora_control1','ora_control2'*.db_block_buffers=100# SMALL*.db_file_multiblock_read_count=8# SMALL*.db_files=80# SMALL*.db_name='XE'*.global_names=TRUE*.log_buffer=32768 SMALL*.log_checkpoint_interval=10000*.max_dump_file_size='10240'# limit trace file size to 5 Meg each*.parallel_max_servers=5# SMALL*.processes=50# SMALL*.shared_pool_size=90000000espero que dê para fazer algo com essa informação...obrigado mais uma vez

Compartilhar este post


Link para o post
Compartilhar em outros sites

Falto uma informação VALIOSA!Me passa todo o seu alert_xe.log lá terá todas as informações que preciso.Pode encontrar em XEapporacleadminXEbdumpAbraços, :natalnoel:

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eita, o arquivo é muito grande...teria alguma parte especifica de informação que tu quer dali?pelo que eu li no arquivo ele tava usando exatamente aqueles arquivos .dbf que eu postei aqui antes...outra coisa... ele tava usando o arquivo control.dbf como controlfile (pelo menos é o que diz bem no inicio do log)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mmmm, tava tentanto dar um split no logfile para encontrar onde comeca os problemas...são em torno de 100 Mb de logfile só daquele dia...

><

alguma sugestão? Imagem Postada

Compartilhar este post


Link para o post
Compartilhar em outros sites

Seja o que Deus quiser Imagem Postada

 

 

Thu Dec 7 21:04:33 2006

Starting ORACLE instance (normal)

Cannot determine all dependent dynamic libraries for /proc/self/exe

The open() system call failed for the file /proc/self/exe

Linux Error: 13: Permission denied

LICENSE_MAX_SESSION = 0

LICENSE_SESSIONS_WARNING = 0

Picked latch-free SCN scheme 2

Using LOG_ARCHIVE_DEST_10 parameter default value as USE_DB_RECOVERY_FILE_DEST

Autotune of undo retention is turned on.

IMODE=BR

ILAT =10

LICENSE_MAX_USERS = 0

SYS auditing is disabled

ksdpec: called for event 13740 prior to event group initialization

Starting up ORACLE RDBMS Version: 10.2.0.1.0.

System parameters with non-default values:

sessions = 49

__shared_pool_size = 92274688

__large_pool_size = 8388608

__java_pool_size = 4194304

__streams_pool_size = 0

sga_target = 205520896

control_files = /usr/lib/oracle/xe/oradata/XE/control.dbf

__db_cache_size = 96468992

compatible = 10.2.0.1.0

db_recovery_file_dest = /root/BackupOracle

db_recovery_file_dest_size= 5368709120

undo_management = AUTO

undo_tablespace = UNDO

remote_login_passwordfile= EXCLUSIVE

dispatchers = (PROTOCOL=TCP) (SERVICE=XEXDB)

shared_servers = 4

job_queue_processes = 4

background_dump_dest = /usr/lib/oracle/xe/app/oracle/admin/XE/bdump

user_dump_dest = /usr/lib/oracle/xe/app/oracle/admin/XE/udump

core_dump_dest = /usr/lib/oracle/xe/app/oracle/admin/XE/cdump

audit_file_dest = /usr/lib/oracle/xe/app/oracle/admin/XE/adump

db_name = XE

open_cursors = 300

os_authent_prefix =

pga_aggregate_target = 68419584

MMAN started with pid=4, OS id=2866

DBW0 started with pid=5, OS id=2868

LGWR started with pid=6, OS id=2870

CKPT started with pid=7, OS id=2872

SMON started with pid=8, OS id=2874

CJQ0 started with pid=10, OS id=2878

RECO started with pid=9, OS id=2876

MMON started with pid=11, OS id=2880

Thu Dec 7 21:04:34 2006

starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...

MMNL started with pid=12, OS id=2882

Thu Dec 7 21:04:34 2006

starting up 4 shared server(s) ...

Oracle Data Guard is not available in this edition of Oracle.

Thu Dec 7 21:04:34 2006

ALTER DATABASE MOUNT

PMON started with pid=2, OS id=2862

PSP0 started with pid=3, OS id=2864

Thu Dec 7 21:04:38 2006

Setting recovery target incarnation to 2

Thu Dec 7 21:04:38 2006

Successful mount of redo thread 1, with mount id 2489734562

Thu Dec 7 21:04:38 2006

Database mounted in Exclusive Mode

Completed: ALTER DATABASE MOUNT

Thu Dec 7 21:05:06 2006

alter database archivelog

Thu Dec 7 21:05:06 2006

Completed: alter database archivelog

Thu Dec 7 21:05:18 2006

alter database open

Thu Dec 7 21:05:18 2006

LGWR: STARTING ARCH PROCESSES

ARC0: Archival started

ARC1: Archival started

LGWR: STARTING ARCH PROCESSES COMPLETE

ARC1 started with pid=20, OS id=2901

Thu Dec 7 21:05:18 2006

Thread 1 opened at log sequence 274

Current log# 2 seq# 274 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_2_2qk67pt8_.log

Successful open of redo thread 1

Thu Dec 7 21:05:18 2006

SMON: enabling cache recovery

Thu Dec 7 21:05:19 2006

Successfully onlined Undo Tablespace 1.

Thu Dec 7 21:05:19 2006

SMON: enabling tx recovery

Thu Dec 7 21:05:19 2006

ARC1: STARTING ARCH PROCESSES

Thu Dec 7 21:05:19 2006

Database Characterset is WE8MSWIN1252

replication_dependency_tracking turned off (no async multimaster replication found)

Starting background process QMNC

ARC2 started with pid=21, OS id=2903

Thu Dec 7 21:05:20 2006

Completed: alter database open

QMNC started with pid=22, OS id=2905

Thu Dec 7 21:05:20 2006

db_recovery_file_dest_size of 5120 MB is 6.11% used. This is a

user-specified limit on the amount of space that will be used by this

database for recovery-related files, and does not reflect the amount of

space available in the underlying filesystem or ASM diskgroup.

Thu Dec 7 21:05:21 2006

ARC2: Archival started

ARC1: STARTING ARCH PROCESSES COMPLETE

ARC1: Becoming the 'no FAL' ARCH

ARC1: Becoming the 'no SRL' ARCH

ARC0 started with pid=19, OS id=2899

Shutting down archive processes

ARC0: Becoming the heartbeat ARCH

Thu Dec 7 21:05:26 2006

ARCH shutting down

ARC2: Archival stopped

Thu Dec 7 21:05:36 2006

alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:38 2006

Completed: alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:38 2006

alter database drop logfile group 1

Deleted Oracle managed file /root/BackupOracle/XE/onlinelog/o1_mf_1_2qk67o4h_.log

Completed: alter database drop logfile group 1

Thu Dec 7 21:05:38 2006

Thread 1 advanced to log sequence 275

Current log# 5 seq# 275 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_5_2qk7l0go_.log

Thu Dec 7 21:05:38 2006

alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:39 2006

Completed: alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:39 2006

alter database drop logfile group 2

ORA-1624 signalled during: alter database drop logfile group 2...

Thu Dec 7 21:05:39 2006

Thread 1 advanced to log sequence 276

Current log# 1 seq# 276 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_1_2qk7l297_.log

Thu Dec 7 21:05:40 2006

alter database drop logfile group 2

Thu Dec 7 21:05:40 2006

Deleted Oracle managed file /root/BackupOracle/XE/onlinelog/o1_mf_2_2qk67pt8_.log

Completed: alter database drop logfile group 2

Thu Dec 7 21:05:40 2006

Thread 1 advanced to log sequence 277

Current log# 4 seq# 277 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_4_2qk67mrk_.log

Thu Dec 7 21:05:40 2006

alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:41 2006

Completed: alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:41 2006

alter database drop logfile group 3

Deleted Oracle managed file /usr/lib/oracle/xe/app/oracle/flash_recovery_area/XE/onlinelog/o1_mf_3_2qjy5z8p_.log

Completed: alter database drop logfile group 3

Thu Dec 7 21:05:41 2006

Thread 1 advanced to log sequence 278

Current log# 2 seq# 278 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_2_2qk7l434_.log

Thu Dec 7 21:05:41 2006

alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:42 2006

Completed: alter database add logfile thread 1 size 51200K

Thu Dec 7 21:05:42 2006

alter database drop logfile group 4

ORA-1624 signalled during: alter database drop logfile group 4...

Thu Dec 7 21:05:42 2006

Thread 1 advanced to log sequence 279

Current log# 3 seq# 279 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_3_2qk7l57r_.log

Thu Dec 7 21:05:42 2006

alter database drop logfile group 4

Thu Dec 7 21:05:42 2006

Deleted Oracle managed file /root/BackupOracle/XE/onlinelog/o1_mf_4_2qk67mrk_.log

Completed: alter database drop logfile group 4

Thu Dec 7 21:05:42 2006

Thread 1 advanced to log sequence 280

Current log# 5 seq# 280 mem# 0: /root/BackupOracle/XE/onlinelog/o1_mf_5_2qk7l0go_.log

Compartilhar este post


Link para o post
Compartilhar em outros sites

tava pensando agora nisso...não seria só apontar no PFILE o control file pro arquivo control.dbf, e depois recriar o SPFILE a partir do PFILE?só to com medo de ferrar mais ainda a situação...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Faz o seguinte, no linux:# > sqlplus "/ as sysdba"SQL > startup nomount ;Veja se ocorre algum erro, caso não aconteça, faça:SQL > alter database mount;Nesse ponto ele deverá ler seus CONTROLFILES, se der erro poste o erro:SE PRECISAR de CONTROLFILES na base de dados, faça um SHUTDOWN IMMEDIATE e inicie novamente em STARTUP NOMOUNT.E execute o script para XE:

Create controlfile reuse set database "XE"MAXINSTANCES 8MAXLOGHISTORY 1MAXLOGFILES 16MAXLOGMEMBERS 3MAXDATAFILES 100Datafile'C:oracleproductXEoradataXEsystem.dbf','C:oracleproductXEoradataXEundo.dbf','C:oracleproductXEoradataXEsysaux.dbf','C:oracleproductXEoradataXEusers.dbf'LOGFILEGROUP 1 SIZE 51200K,GROUP 2 SIZE 51200K,RESETLOGS;

Trocando os caminhos dos Datafiles para seus respctivos caminhos na sua máquina.E tente executar o ALTER DATABASE MOUNT novamente.Como no ALERT_LOG você passou a base de dados para ARCHIVELOG, no momento do OPEN ele irá pedir RECOVER DATABASE, então execute com a opção de :recover database until cancel;e depois :alter database open resetlogs;Abraços, :natalnoel:

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.