[oracle_br] Recuperação de Dados
Pessoal, Bom dia. Tenho um note onde possuia o banco de dados Oracle 10g XE instalado para fins de estudo. Seu HD estava particionado em 3 partes, e onde estava o10g eu tinha o Windows XP rodando (drive C:). Aconteceu de dar problemas nessa partição do XP e não consegui mais iniciar o note. O que eu fiz: instalei outro sistema operacional (Windows 7) numa partição livre (drive D:). Após isso instalei novamente o Oracle 10g e até agora está tudo certo, inclusive consigo ver o drive C: com todos os arquivos, e o diretório do banco está lá (oraclexe). A pergunta é: Eu consigo nessa nova instação no Windows 7 recuperar a base de dados que eu tenho no drive C: ??? Eu já tentei algumas cópias de diretório mais não deu certo. Uma hora o serviço não sobe, outra hora o sobe mais dá erra na conexão com o banco. Então voltei tudo para o orginal da instalação. Há algum meio de recuperar todas as minhas tabelas e dados que eu criei???Grato, Genivaldo Silva [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] problema com ora-03113 ora-03114
Pessoal Acesso normalmente na empresa duas bases oracle Base A BANNER Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production PL/SQL Release 9.2.0.5.0 - Production CORE9.2.0.6.0 Production TNS for HPUX: Version 9.2.0.5.0 - Production NLSRTL Version 9.2.0.5.0 Production Base B BANNER Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production PL/SQL Release 9.2.0.5.0 - Production CORE9.2.0.6.0 Production TNS for Solaris: Version 9.2.0.5.0 - Production NLSRTL Version 9.2.0.5.0 Production Utilizo normalmente o SQLPLUS 10.1.0.4.2, mas para o problema que estou tendo é irrelevante, pois a desconexão tambem ocorre se eu utilizar o PL/SQLDeveloper ou outra versao de SQLPLUS. Me conecto com um Usuario que é usado por outros analistas em outras maquinas sem problemas . O Problema é que na Base B após alguns minutos ( 3 a 5 mais ou menos ) estou sendo desconectado. Isto comecou após aplicarem Patches na Base B uns 10 dias atraz . Outros terminais não estao tendo problemas e não fizeram qualquer alteração do lado client. Não tenho qualquer problema para acessar a Base A e as duas são locais na empresa. Tenho o TNSNAMES centralizado em apenas um lugar com a variavel de ambiente tns_admin, já tentei mudar a porta de conexao para a Base B, conferi o SQLNET.ORA com outros terminais , caracteristicas da Rede , e tudo esta OK , mas o problema persiste. Alguem tem alguma dica Obrigado Aroldo [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Detectar quebra de linha
Caros, Gostaria de um axulio de vocês. Estou precisando detectar as quebras de linhas da minha string. Consegui detecar apenas a primeira debra de linha atavés do instr. Alguem sabe informar se tem alguma função que me retorne a posição de todos os caracter do tipo quebra de linha chr(10), ou que ao menos me informe quantas vezes esse caracter se repete na minha tring ? obrigado; -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] SQLPLUSW - Bug
Pessoal, Tinha uma instalação de Oracle Client 10g em meu computador e o mesmo funcionava muito bem, troquei de maquina mas mantive o sistema operacional e fui fazer a mesma instalação (idêntica) inclusive com o mesmo cd, mesmas opçoes e o sqlplus apresentou aquele maldito bug de tela ele não corre a tela para o lado direito, mesmo definindo linesize maior ex: 1 e arraysize 1. Para fazer isso funcionar é necessário acessar, environment, arraysize 1, confirmar e depois minimizar e maximizar o programa novamente, mas quando ele faz uma leitura de muitos objetos, por exemplo da dba_objects, aparece o erro de referencia a memória e aborta o programa. Alguém achou algum conserto milagroso para esse bug? Já procurei no metalink e inclusive aqui no fórum mas todas as soluções são paleativas. Que probleminha mais chato, chega a desincentivar o uso do SQLPLUS no Windows, que é uma das melhores ferramentas da Oracle. Dados técnicos: oracle client 10g - 10.2.0.1 windows xp sp3 - atualizado pelos ultimos patchs de maio da Microsoft.
Re: [oracle_br] SQLPLUSW - Bug
Oi Regis. Não sei qual é o problema. Só estou escrevendo para te desincentivar mais ainda a usar o SQLPLUSW. Ele foi descontinuado pela Oracle e você não o verá nas próximas versões. O isqlplus também (foi tarde). No 11g já vem o SQL Developer. Eu prefiro o sqlplus. Ele não será descontinuado tão cedo, tenho certeza. - Ricardo Portilho Proni http://portilho.profissionaloracle.com.br Em Qui, 2009-05-21 às 16:30 +, Regis Bavaresco escreveu: Pessoal, Tinha uma instalação de Oracle Client 10g em meu computador e o mesmo funcionava muito bem, troquei de maquina mas mantive o sistema operacional e fui fazer a mesma instalação (idêntica) inclusive com o mesmo cd, mesmas opçoes e o sqlplus apresentou aquele maldito bug de tela ele não corre a tela para o lado direito, mesmo definindo linesize maior ex: 1 e arraysize 1. Para fazer isso funcionar é necessário acessar, environment, arraysize 1, confirmar e depois minimizar e maximizar o programa novamente, mas quando ele faz uma leitura de muitos objetos, por exemplo da dba_objects, aparece o erro de referencia a memória e aborta o programa. Alguém achou algum conserto milagroso para esse bug? Já procurei no metalink e inclusive aqui no fórum mas todas as soluções são paleativas. Que probleminha mais chato, chega a desincentivar o uso do SQLPLUS no Windows, que é uma das melhores ferramentas da Oracle. Dados técnicos: oracle client 10g - 10.2.0.1 windows xp sp3 - atualizado pelos ultimos patchs de maio da Microsoft.
[oracle_br] Re: Detectar quebra de linha
Bom, primeiro contagem de ocorrências de um dado caracter numa string : até existem algumas funções que se poderia usar , dependendo ** fundamentalmente ** da versão de banco, que pra variar vc não diz, mas a contagem só com funções genéricas é franciscanamente SIMPLES, vc tira do comprimento da string original o comprimento dela SEM o caracter desejado, kapluft , tipo + ou - : select (length(:main_str) - nvl(length(replace(:main_str,:srch_str,'')),0))/ length(:srch_str) cnt from dual; Isso em qquer versão, mas já se for banco 10g vc pode usar as funções de regexp, há uma count lá... Já pra retornar cada posição de cada ocorrência vc terá, afaik, que ter uma lógica de loop, ie : vc tem várias funções que retornam a posição de uma dada ocorrência dum caracter (como a INSTR , ou algumas do pacote regexp no 10g), vc teria que executar a função escolhida n vezes, uma pra cada ocorrência - isso poderia ser um loop PL/SQL (a opção mais simples, afaik) ou se exigido que seja em SQL apenas aí provavelmente vc teria que escrever um SQL mais complexo, repetindo n vezes um select instr da string from dual, já seria algo BEM mais complexo, mas possível, certamente. []s Chiappa --- Em oracle_br@yahoogrupos.com.br, francisco porfirio francisco.porfi...@... escreveu Caros, Gostaria de um axulio de vocês. Estou precisando detectar as quebras de linhas da minha string. Consegui detecar apenas a primeira debra de linha atavés do instr. Alguem sabe informar se tem alguma função que me retorne a posição de todos os caracter do tipo quebra de linha chr(10), ou que ao menos me informe quantas vezes esse caracter se repete na minha tring ? obrigado; -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Detectar quebra de linha
Oi Francisco, Adaptando a solução do Chiappa, dá uma olhada nesse exemplo... -- SQL create table t1 (c1 varchar2(50)); Tabela criada. SQL insert into t1 values ('primeiralinha 2 segundalinha 3 terceiralinha'); 1 linha criada. SQL insert into t1 values ('primeiralinha'||chr(10)||'segundalinha'); 1 linha criada. SQL insert into t1 values ('unica linha'); 1 linha criada. SQL commit; Commit concluido. SQL select * from t1; C1 -- primeiralinha segundalinha terceiralinha primeiralinha segundalinha unica linha 3 linhas selecionadas. SQL select c1 from t1 where regexp_like(c1, chr(10)); C1 -- primeiralinha segundalinha terceiralinha primeiralinha segundalinha 2 linhas selecionadas. SQL select 2 c1, 3 (length(c1) - nvl(length(replace(c1,chr(10),'')),0))/length(chr(10)) cnt 4 from t1 where regexp_like(c1, chr(10)); C1CNT -- -- primeiralinha 2 segundalinha terceiralinha primeiralinha 1 segundalinha 2 linhas selecionadas. SQL -- Funciona para contar ENTER's que é uma maravilha []s Braga 2009/5/21 jlchiappa jlchia...@yahoo.com.br Bom, primeiro contagem de ocorrências de um dado caracter numa string : até existem algumas funções que se poderia usar , dependendo ** fundamentalmente ** da versão de banco, que pra variar vc não diz, mas a contagem só com funções genéricas é franciscanamente SIMPLES, vc tira do comprimento da string original o comprimento dela SEM o caracter desejado, kapluft , tipo + ou - : select (length(:main_str) - nvl(length(replace(:main_str,:srch_str,'')),0))/ length(:srch_str) cnt from dual; Isso em qquer versão, mas já se for banco 10g vc pode usar as funções de regexp, há uma count lá... Já pra retornar cada posição de cada ocorrência vc terá, afaik, que ter uma lógica de loop, ie : vc tem várias funções que retornam a posição de uma dada ocorrência dum caracter (como a INSTR , ou algumas do pacote regexp no 10g), vc teria que executar a função escolhida n vezes, uma pra cada ocorrência - isso poderia ser um loop PL/SQL (a opção mais simples, afaik) ou se exigido que seja em SQL apenas aí provavelmente vc teria que escrever um SQL mais complexo, repetindo n vezes um select instr da string from dual, já seria algo BEM mais complexo, mas possível, certamente. []s Chiappa --- Em oracle_br@yahoogrupos.com.br oracle_br%40yahoogrupos.com.br, francisco porfirio francisco.porfi...@... escreveu Caros, Gostaria de um axulio de vocês. Estou precisando detectar as quebras de linhas da minha string. Consegui detecar apenas a primeira debra de linha atavés do instr. Alguem sabe informar se tem alguma função que me retorne a posição de todos os caracter do tipo quebra de linha chr(10), ou que ao menos me informe quantas vezes esse caracter se repete na minha tring ? obrigado; -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
Re: [oracle_br] Re: Detectar quebra de linha
Chiapa eu tinha feito da forma **franciscana** que você falou. Fiz uma lógica bem simples, sei que não é a melhor, porém como eu estava com uma certa urgência, desenvolvi dessa forma. No meu caso ele pega cada linha de um campo string e posteriormente insere em uma tabela. DECLARE var_qtd_caracter PLS_INTEGER; var_posicao_anterior PLS_INTEGER; var_posicao_atual PLS_INTEGER; BEGIN var_posicao_anterior:=0; var_posicao_atual := 0; FOR varre IN(SELECT translate(nome_do_campo,chr(10)||chr(13),'|')||'|' nome_do_campo, length(translate(nome_do_campo,chr(10)||chr(13),'|')) - length(replace(translate(nome_do_campo,chr(10)||chr(13),'|'),'|',''))+1 qtd_enter FROM noe_da_tabela WHERE instr(nome_do_campo,chr(10)) 0) LOOP FOR enter IN 1..varre.qtd_enter LOOP IF(enter = 1)THEN INSERT INTO enter_teste VALUES (replace(substr(varre.nome_do_campo,1,instr(varre.nome_do_campo,'|',1,1)),'|','') ); COMMIT; ELSE var_posicao_anterior := instr(varre.nome_do_campo,'|',1,enter-1); var_posicao_atual := instr(varre.nome_do_campo,'|',1,enter)-instr(varre.nome_do_campo,'|',1,enter-1); INSERT INTO enter_teste VALUES (varre.bad_codigo_beneficio, replace(substr(varre.nome_do_campo,var_posicao_anterior,var_posicao_atual),'|','')); COMMIT; END IF; END LOOP; END LOOP; END; -- Atenciosamente Francisco Porfirio Ribeiro Neto [As partes desta mensagem que não continham texto foram removidas]
[oracle_br] Re: SQLPLUSW - Bug
Sim, com certeza o sqlplus.exe (modo texto) está aqui pra ficar, ele é usado até internamente pela Oracle (como em alguns one-off patches, , é usado na própria Criação do banco (pelo dbca ,quando vc não cria o banco online), e por vários outros assistentes, não tem como MESMO a Oracle querer descontinuar... Isso posto : tanto em casa quanto em clientes tenho várias máquinas com XP e uso nelas o sqlplusw.exe normalmente , APENAS (óbvio) eu *** não *** uso o client 10.2.0.1 , ele é pré-historicamente ANTIGO, tinha os seus tantos quantos bugs Com client 10.2.0.4 uso normalmente o recurso , o procedimento que sigo é : menu Opções, Ambiente, em Buffer de tela (*** não em Arraysize nem nada) eu coloco largura do buffer no máximo permitido (2000 iirc), comprimento 2000 ou algo similar (que é razoável), click em OK, OK no warning, LINESIZE IDÊNTICA à largura do buffer (esse valor 1 que vc cita é anormalmente alto, é BEM capaz de te dar problemas mil), e maximizo a tela , é isso. . Num cliente 10.2.0.4 com o sqlplusw 10.2.0.4 faça o teste que deve funcionar,sim... []s Chiappa --- Em oracle_br@yahoogrupos.com.br, Ricardo Portilho Proni porti...@... escreveu Oi Regis. Não sei qual é o problema. Só estou escrevendo para te desincentivar mais ainda a usar o SQLPLUSW. Ele foi descontinuado pela Oracle e você não o verá nas próximas versões. O isqlplus também (foi tarde). No 11g já vem o SQL Developer. Eu prefiro o sqlplus. Ele não será descontinuado tão cedo, tenho certeza. - Ricardo Portilho Proni http://portilho.profissionaloracle.com.br Em Qui, 2009-05-21 às 16:30 +, Regis Bavaresco escreveu: Pessoal, Tinha uma instalação de Oracle Client 10g em meu computador e o mesmo funcionava muito bem, troquei de maquina mas mantive o sistema operacional e fui fazer a mesma instalação (idêntica) inclusive com o mesmo cd, mesmas opçoes e o sqlplus apresentou aquele maldito bug de tela ele não corre a tela para o lado direito, mesmo definindo linesize maior ex: 1 e arraysize 1. Para fazer isso funcionar é necessário acessar, environment, arraysize 1, confirmar e depois minimizar e maximizar o programa novamente, mas quando ele faz uma leitura de muitos objetos, por exemplo da dba_objects, aparece o erro de referencia a memória e aborta o programa. Alguém achou algum conserto milagroso para esse bug? Já procurei no metalink e inclusive aqui no fórum mas todas as soluções são paleativas. Que probleminha mais chato, chega a desincentivar o uso do SQLPLUS no Windows, que é uma das melhores ferramentas da Oracle. Dados técnicos: oracle client 10g - 10.2.0.1 windows xp sp3 - atualizado pelos ultimos patchs de maio da Microsoft.
[oracle_br] Planejamento - StandBy Database - Standard Edition
Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_DEST_2='??' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda
Re: [oracle_br] Planejamento - StandBy Database - Standard Edition
Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_DEST_2='??' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda
[oracle_br] Re: Planejamento - StandBy Database - Standard Edition
Vc tem alguma documentação ? Ou sabe posso encontrar uma documentação sobre esta forma de replicação ? Tambem trabalho com Linux (Suse 10)... Pensei em fazer backup da base de dados, coloca-la em um outro servidor..deixar a base montada e ir aplicando os archives...mas o transporte para o outro servidor é que me deixa meio encucado... --- Em oracle_br@yahoogrupos.com.br, Carlos Alfredo M. de Menezes carlos.mene...@... escreveu Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_DEST_2='??' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda
Re: [oracle_br] Re: Planejamento - StandBy Database - Standard Edition
Colega, Não é muito difícil não, mas é preciso conhecer algumas ferramentas: cron, executar comandos sql dentro de jobs, rsync e transporte de credenciais entre hosts. Não tenho um material único, mas vou tentar te passar um job exemplo, a parte de credenciais automáticas entre hosts, vc aprende no manual de instalação de Oracle RAC, é a mesma coisa. Crie o arquivo copia_archive.sh no home directory da conta oracle, geralmente /home/oracle, com o seguinte conteúdo: #Inicio do arquivo copia_archive.sh #OBS: AINDA NÃO TESTADO, FEITO AGORA # # Seta variaveis de ambiente export ORACLE_HOME=coloque aqui o caminho do seu ORACLE_HOME export ORACLE_SID=coloque aqui o nome da instância export ARCH_ORIGEM=coloque aqui o caminho do archive log destination de origem export HOST_DESTINO=coloque aqui o nome do host de destino export ARCH_DESTINO=coloque aqui o caminho do archive log destination de destino #Executa o switch do logfile $ORACLE_HOME/bin/sqlplus / as sysdba ! alter system switch logfile; exit; ! #Vamos esperar alguns segundos para o processo ARCH completar a copia sleep 20 #Vamos sincronizar as pastas rsync -t $ARCH_ORIGEM/* $HOST_DESTINO:$ARCH_DESTINO #Fim do arquivo copia_archive.sh Depois de criado o arquivo ,fiz ele agora, favor corrigir possível bug :-) rode o comando: chmod +x copia_archive.sh Antes de agendar via cron, veja se o mesmo executa normalmente, veja se faz o swith do logfile corrente e veja se ele faz a sincronização das pastas, lembrando que do jeito que fiz, o rsync usa as mesma conta entre os servidores de origem e destino, como disse, tem que dá uma lida no manual de instalação do Oracle RAC, lá tem uma parte que fala como ter essas credenciais automáticas entre hosts. Se tudo funcionar bem, só falta agendar via cron, vamos supor que vc queira agendar para rodar a cada 20 minutos, faça assim: 1- execute crontab -e 2- insira a seguinte linha: 00,20,40 * * * * /home/oracle/copia_archive.sh 3- salve o arquivo e saia (:wqenter) Faça as customizações e correções que precisar e teste. Espero ter ajudado. Att, Carlos Alfredo candiurudba escreveu: Vc tem alguma documentação ? Ou sabe posso encontrar uma documentação sobre esta forma de replicação ? Tambem trabalho com Linux (Suse 10)... Pensei em fazer backup da base de dados, coloca-la em um outro servidor..deixar a base montada e ir aplicando os archives...mas o transporte para o outro servidor é que me deixa meio encucado... --- Em oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br, Carlos Alfredo M. de Menezes carlos.mene...@... escreveu Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_DEST_2='??' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda
Res: [oracle_br] Planejamento - StandBy Database - Standard Edition
Tente o parâmetro *.archive_lag_target, ele é implementado no init.ora do primary database e, dependendo do tempo em segundos, é gerado um archivelog que permitrá que vc garanta um mínimo de perda, na ocorrência de perda do bd primário (5 minutos por exemplo). Galery. De: Carlos Alfredo M. de Menezes carlos.mene...@usinacoruripe.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 21 de Maio de 2009 16:08:33 Assunto: Re: [oracle_br] Planejamento - StandBy Database - Standard Edition Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_ DEST_2='? ?' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
Res: [oracle_br] Re: Planejamento - StandBy Database - Standard Edition
Carlos, tira uma dúvida. Não seria melhor colocar o log_archive_dest_2 e o serviço para copiar para outra máquina? Ou nessa versão isso não é possivel? Aqui uso o Enterprise e a cópia funciona perfeitamente colocando o 2. Abs De: Carlos Alfredo M. de Menezes carlos.mene...@usinacoruripe.com.br Para: oracle_br@yahoogrupos.com.br Enviadas: Quinta-feira, 21 de Maio de 2009 17:05:18 Assunto: Re: [oracle_br] Re: Planejamento - StandBy Database - Standard Edition Colega, Não é muito difícil não, mas é preciso conhecer algumas ferramentas: cron, executar comandos sql dentro de jobs, rsync e transporte de credenciais entre hosts. Não tenho um material único, mas vou tentar te passar um job exemplo, a parte de credenciais automáticas entre hosts, vc aprende no manual de instalação de Oracle RAC, é a mesma coisa. Crie o arquivo copia_archive. sh no home directory da conta oracle, geralmente /home/oracle, com o seguinte conteúdo: #Inicio do arquivo copia_archive. sh #OBS: AINDA NÃO TESTADO, FEITO AGORA # # Seta variaveis de ambiente export ORACLE_HOME= coloque aqui o caminho do seu ORACLE_HOME export ORACLE_SID= coloque aqui o nome da instância export ARCH_ORIGEM= coloque aqui o caminho do archive log destination de origem export HOST_DESTINO= coloque aqui o nome do host de destino export ARCH_DESTINO= coloque aqui o caminho do archive log destination de destino #Executa o switch do logfile $ORACLE_HOME/ bin/sqlplus / as sysdba ! alter system switch logfile; exit; ! #Vamos esperar alguns segundos para o processo ARCH completar a copia sleep 20 #Vamos sincronizar as pastas rsync -t $ARCH_ORIGEM/ * $HOST_DESTINO: $ARCH_DESTINO #Fim do arquivo copia_archive. sh Depois de criado o arquivo ,fiz ele agora, favor corrigir possível bug :-) rode o comando: chmod +x copia_archive. sh Antes de agendar via cron, veja se o mesmo executa normalmente, veja se faz o swith do logfile corrente e veja se ele faz a sincronização das pastas, lembrando que do jeito que fiz, o rsync usa as mesma conta entre os servidores de origem e destino, como disse, tem que dá uma lida no manual de instalação do Oracle RAC, lá tem uma parte que fala como ter essas credenciais automáticas entre hosts. Se tudo funcionar bem, só falta agendar via cron, vamos supor que vc queira agendar para rodar a cada 20 minutos, faça assim: 1- execute crontab -e 2- insira a seguinte linha: 00,20,40 * * * * /home/oracle/ copia_archive. sh 3- salve o arquivo e saia (:wqenter) Faça as customizações e correções que precisar e teste. Espero ter ajudado. Att, Carlos Alfredo candiurudba escreveu: Vc tem alguma documentação ? Ou sabe posso encontrar uma documentação sobre esta forma de replicação ? Tambem trabalho com Linux (Suse 10)... Pensei em fazer backup da base de dados, coloca-la em um outro servidor..deixar a base montada e ir aplicando os archives...mas o transporte para o outro servidor é que me deixa meio encucado... --- Em oracle...@yahoogrup os.com.br mailto:oracle_ br%40yahoogrupos .com.br, Carlos Alfredo M. de Menezes carlos.menezes@ ... escreveu Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_ DEST_2='? ?' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
RES: [oracle_br] Re: Planejamento - StandBy Database - Standard Edition
Nelson, Eu uso a versão Standard também, mas confesso que nunca testei com o segundo destination, me parece que não rola, de qq forma eu uso um job para fazer uma cópia para outro servidor, que não é um standby database. Eu uso RAC e meus archives estão dentro do ASM, então eu faço um backup dos archived logs via rman para uma pasta no disco em alguns momentos do dia para depois sincronizar com outro servidor, aí fico com uma cópia no storage, no disco interno do servidor, para poder subir para fita, e no servidor externo. Att, Carlos Alfredo De: oracle_br@yahoogrupos.com.br em nome de Nelson Cartaxo Enviada: qui 21/5/2009 17:23 Para: oracle_br@yahoogrupos.com.br Assunto: Res: [oracle_br] Re: Planejamento - StandBy Database - Standard Edition Carlos, tira uma dúvida. Não seria melhor colocar o log_archive_dest_2 e o serviço para copiar para outra máquina? Ou nessa versão isso não é possivel? Aqui uso o Enterprise e a cópia funciona perfeitamente colocando o 2. Abs De: Carlos Alfredo M. de Menezes carlos.mene...@usinacoruripe.com.br mailto:carlos.menezes%40usinacoruripe.com.br Para: oracle_br@yahoogrupos.com.br mailto:oracle_br%40yahoogrupos.com.br Enviadas: Quinta-feira, 21 de Maio de 2009 17:05:18 Assunto: Re: [oracle_br] Re: Planejamento - StandBy Database - Standard Edition Colega, Não é muito difícil não, mas é preciso conhecer algumas ferramentas: cron, executar comandos sql dentro de jobs, rsync e transporte de credenciais entre hosts. Não tenho um material único, mas vou tentar te passar um job exemplo, a parte de credenciais automáticas entre hosts, vc aprende no manual de instalação de Oracle RAC, é a mesma coisa. Crie o arquivo copia_archive. sh no home directory da conta oracle, geralmente /home/oracle, com o seguinte conteúdo: #Inicio do arquivo copia_archive. sh #OBS: AINDA NÃO TESTADO, FEITO AGORA # # Seta variaveis de ambiente export ORACLE_HOME= coloque aqui o caminho do seu ORACLE_HOME export ORACLE_SID= coloque aqui o nome da instância export ARCH_ORIGEM= coloque aqui o caminho do archive log destination de origem export HOST_DESTINO= coloque aqui o nome do host de destino export ARCH_DESTINO= coloque aqui o caminho do archive log destination de destino #Executa o switch do logfile $ORACLE_HOME/ bin/sqlplus / as sysdba ! alter system switch logfile; exit; ! #Vamos esperar alguns segundos para o processo ARCH completar a copia sleep 20 #Vamos sincronizar as pastas rsync -t $ARCH_ORIGEM/ * $HOST_DESTINO: $ARCH_DESTINO #Fim do arquivo copia_archive. sh Depois de criado o arquivo ,fiz ele agora, favor corrigir possível bug :-) rode o comando: chmod +x copia_archive. sh Antes de agendar via cron, veja se o mesmo executa normalmente, veja se faz o swith do logfile corrente e veja se ele faz a sincronização das pastas, lembrando que do jeito que fiz, o rsync usa as mesma conta entre os servidores de origem e destino, como disse, tem que dá uma lida no manual de instalação do Oracle RAC, lá tem uma parte que fala como ter essas credenciais automáticas entre hosts. Se tudo funcionar bem, só falta agendar via cron, vamos supor que vc queira agendar para rodar a cada 20 minutos, faça assim: 1- execute crontab -e 2- insira a seguinte linha: 00,20,40 * * * * /home/oracle/ copia_archive. sh 3- salve o arquivo e saia (:wqenter) Faça as customizações e correções que precisar e teste. Espero ter ajudado. Att, Carlos Alfredo candiurudba escreveu: Vc tem alguma documentação ? Ou sabe posso encontrar uma documentação sobre esta forma de replicação ? Tambem trabalho com Linux (Suse 10)... Pensei em fazer backup da base de dados, coloca-la em um outro servidor..deixar a base montada e ir aplicando os archives...mas o transporte para o outro servidor é que me deixa meio encucado... --- Em oracle...@yahoogrup os.com.br mailto:oracle_ br%40yahoogrupos .com.br, Carlos Alfredo M. de Menezes carlos.menezes@ ... escreveu Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter
Re: [oracle_br] Planejamento - StandBy Database - Standard Edition
Boa Noite, Monte tudo dentro de apenas um script, via shell, chamando todos comandos dentro dele de switch etc, faça a copia dos archives dentro dele.. e criei um arquivo look para ter certeza que o mesmo não está em execução, faça o recover automatic database using backup controlfile until cancel; de tempos em tempos Em Qui, 2009-05-21 às 16:08 -0300, Carlos Alfredo M. de Menezes escreveu: Colega, Existem várias formas de fazer isso, eu gosto de usar jobs agendados via SO, no meu caso, Linux. Nesse job vc chamará o sqlplus para executar o comando alter system switch logfile; e usará o rsync para sincronizar as pastas do destino do archivelog para outra pasta no servidor de standby. Att, candiurudba escreveu: Boa tarde colegas, tudo bom ? Durante algum tempo, iniciei os estudos para implementar uma política de disaster recovery visando o uso de um Stand By Database e como faço uso do standard edition, não sou contemplado com o DG, por isso, tenho algumas dúvidas... Pelo que andei lendo, o ideal seria o desenvolvimento de um primeiro script para efetuar um switch logfile de tempos em tempos (talvez de 20 em 20 minutos). Não existe no banco, nenhum parametro onde possamos setar estes switchs automaticos, conforme nossa necessidade ? Algum parametro no spfile talvez..algum alter system set... ? Quanto a cópia dos archives para o outro servidor. não posso configurar algum parametro ARCHIVE_LOG_DEST_2='??' para que estes archives sejam gerados no mesmo servidor e tambem enviados para o outro ? Nesta semana ja devo começar alguns testes...estu querendo implementar aqui na empresa na proxima semana agradeço a ajuda __ Fa�a liga��es para outros computadores com o novo Yahoo! Messenger http://br.beta.messenger.yahoo.com/