quinta-feira, 7 de junho de 2012

Problemas em clonagem EBS R12 - FNDCPASS

Boa noite jovens

Essa semana estava realizando um clone de um EBS R12 e ocorria sempre o erro abaixo na clonagem da aplicação.

Quem trabalha com EBS sabe que é normal termos vários clones em uma mesma máquina. E isso estava me atrapalhando...

O erro:
---------------------------------------------------------------
                   ADX Database Utility
---------------------------------------------------------------
getConnectionUsingAppsJDBCConnector() -->
    APPS_JDBC_URL='null'
    Trying to get connection using SID based connect descriptor
getConnection() -->
    sDbHost    : SERVIDOR
    sDbDomain  : zezinho.com.br
    sDbPort    : 1532
    sDbSid     : ERP
    sDbUser    : apps
    Trying to connect using SID...
getConnectionUsingSID() -->
    JDBC URL: jdbc:oracle:thin:@SERVIDOR.zezinho.com.br:1532:ERP
    Exception occurred: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    Trying to connect using SID as ServiceName
getConnectionUsingServiceName() -->
    JDBC URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVIDOR.zezinho.com.br)(PORT=1532))(CONNECT_DATA=(SERVICE_NAME=ERP)))
    Exception occurred: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    Trying to connect using SID as ServiceName.DomainName
getConnectionUsingServiceName() -->
    JDBC URL: jdbc:oracle:thin:@(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=SERVIDOR.zezinho.com.br)(PORT=1532))(CONNECT_DATA=(SERVICE_NAME=ERP.zezinho.com.br)))
    Exception occurred: java.sql.SQLException: Io exception: The Network Adapter could not establish the connection
    Connection could not be obtained; returning null

-------------------ADX Database Utility Finished---------------
RC-00118: Error occurred during creation of database
Raised by oracle.apps.ad.clone.ApplyDatabase

Depois de pesquisar e verificar N possibilidades, a resolução do problema chegou a ser infantil mas que me fez perder algumas horas preciosas.

A solução: Simples, alterar o owner e direitos do arquivo abaixo:
cd /var/tmp/
chown oraerp:dba .oracle
chmod 777 .oracle

Achei legal passar isso aqui.

Passado esse problema, me deparo com outro problema na hora de fazer a alteração de senha do APPS pelo FNDCPASS. O comando executado era:
 
FNDCPASS apps/pass 0 Y system/pass SYSTEM APPLSYS newpass

Erro: Na verdade foram vários erros, mas o mais normal era esse:
    APP-FND-02704: Unable to alter user XXINT to change password.
    APP-FND-01564: ORACLE error 1403 in changepassword
    Cause: changepassword failed due to ORA-01403: no data found.
   
O problema é que tudo o que eu achei sobre esse erro não funcionou. Depois de muito verificar encontrei o erro.

No momento da clonagem (Aplicação e Banco), ao responder a pergunta abaixo eu errei e coloquei o nome do servidor com o domínio:

Target System Hostname (virtual or normal) [SERVIDOR] : SERVIDOR.zezinho.com.br

Isso fez com que o meu GLOBAL_NAME ficasse como ERP.zezinho.com.br. Não havia percebido ainda, mas a coluna NODE dos meus concurrent's também estavam todos detonados...

Enfim, para corrigir foi simples também:
    Alterei o meu global_name
    Executei FND_CONC_CLONE.SETUP_CLEAN para acertar o nome dos nodes dos concurrents
    Mandei um AUTOCONFIG na base e na aplicação
   
Pronto, tudo certo...

Abraço

sábado, 21 de abril de 2012

Certificações - O começo 1ZO-007

Olá a todos

Como sabem na nossa vida de DBA as certificações são bem importantes e consideradas.

Por isso, na semana passada comecei o meu caminho até elas. Fiz inicialmente a prova 1ZO-007 de SQL. Fiz o do 9i que serve como primeira prova para o OCA e o OCP.

A quem me ajudou, muito obrigado mesmo.


Abraço
Mario

Desvendando o AdAdmin


Olá Jovens

Hoje, vamos tentar desvendar o mundo do AD Administration, ou mais popularmente e carinhosamente chamado de ADADMIN. Essa é uma das ferramentas de administração do EBS para realização de tarefas de manutenção. Este é um dos mais famosos e principais utilitários em linha de comando do EBS.

O manual oficial do AdAdmin do R11 é o “Oracle® Applications Maintenance Utilities Release 11i (11.5.10.2) Part No. B19300-01” e está disponível nas páginas de documentação da Oracle. 

Este artigo foi baseado neste manual, além de informações adicionais fornecidas pelo instrutor de um curso que fiz no final do ano chamado Adriano Master Penedo. Grande abraço Adriano.

O ADADMIN se encontra no diretório $AD_TOP/bin do servidor de aplicação. Vamos confirmar se ele está lá:

 
Lindo, ele está lá. Começamos bem :)

Antes de olharmos tela a tela esta aplicação é sempre legal dar uma olhada no help:
adadmin help=y

Uma dica legal do help que vale a pena dar uma olhada é o “DEFAULTSFILE”. Essa opção não será abordada aqui na nossa conversa, mas esta opção combinada com a opção “MENU_OPTION” é muito legal para a economia de tempo. 

Para atiçar a curiosidade, basta dizer que, ao invés de responder todas as perguntas que veremos abaixo para acesso ao ADADMIN, chamaríamos o mesmo com o parâmetro DEFAULTSFILE e o mesmo já abriria na janela desejada, sem necessidade das respostas e entradas de senha.

A maioria das interações do usuário via ADADMIN são a partir de prompts de linha de comando sob a forma de avisos. Em não utilizando o  basta responder corretamente as perguntas abaixo para acessar a tela inicial.
No servidor de aplicação, executar: adadmin

Nesta primeira imagem, iremos responder 4 perguntas. As respostas e suas explicações estão em destaque.

Your default directory is '/u01/app/oracle/HOMOL14/homol14appl'. Is this the correct APPL_TOP [Yes] ? YES - Pois o APPL_TOP está correto.
Filename [adadmin.log] : adadmin.log - Eu geralmente deixo a sugestão, mas pode ser alterado.
You can be notified by email if a failure occurs. NO - Tudo o que for feito no ADADMIN será acompanhado de perto por você. Por isso, acho desnecessário o e-mail.
Please enter the batchsize [1000] : 1000 - Eu geralmente deixo a sugestão, mas pode ser alterado.

Nesta segunda imagem da inicialização, não temos interação com o processo. Apenas conferimos os dados.

Na terceira tela do processo,entramos com as senhas de system e apps, conforme demonstrado abaixo:

Nesta imagem acima, iremos responder mais 3 perguntas. As respostas e suas explicações estão em destaque:

You are about to use or modify Oracle Applications product tables in your ORACLE database 'HOMOL14' using ORACLE executables in '/u01/app/oracle/HOMOL14/homol14ora/8.0.6'. Is this the correct database [Yes] ? YES - A identificação do database está correta 
Enter the password for your 'SYSTEM' ORACLE schema: Fornecer a senha do usuário SYSTEM do banco de dados.
Enter the ORACLE password of Application Object Library [APPS] : Fornecer a senha do usuário APPS da aplicação.

Finalmente na última fase de inicialização executada pela ADADMIN, temos as configurações de linguagens. De novo, somente acompanhamos e conferímos.

Lindo, muito lindo quando tudo da certo não é mesmo. E se chegamos até aqui, a tela que deve estar sendo apresentada para o jovem e destemido ATG é a seguinte: 

  É isso ai jovem, essa é a tela inicial do adadmin. Aqui lhe serão apresentadas alguma opções divididas em blocos da seguinte maneira:

Menu 1 ==> Compilar/Recompilar arquivos da aplicação (Generate Applications Files menu)

Menu 2 ==> Manutenção de arquivos da aplicação (Maintain Applications Files menu)

Menu 3 ==> Compilar/Recompilar arquivos de BD (Compile/Reload Applications Database Entities menu)

Menu 4 ==> Manutenção de arquivos de BD (Maintain Applications Database Entities menu)

Menu 5 ==> Modo de manutenção (Change Maintenance Mode)

A partir de agora, valos explorar cada menu explicando o que cada opção pode nos oferecer. Ao selecionar o menu 1, deve ser apresentada a seguinte tela para o ATG:










Veja que no topo da tela fica registrada a opção escolhida por você. Neste menu, você tem acesso a executar tarefas de compilação/recompilação de arquivos da aplicação. Segue as opções:

Opção 1 ==> Compliar arquivos de mensagens (.msb). Este passo deve ser executado quando instruído em algum patch ou sob orientação do suporte Oracle

Opção 2 ==> Compilar forms (.fmb) disponíveis no $AU_TOP. Nesta opção após a compilação, os arquivos criados (.fmx) são automáticamente extraídos e copiados para o seu respectivo PRODUCT_TOP. A execução dessa opção deve ser quando observado algum problema em algum form específico. As opções para regenerar os forms são:
  • Todos os forms de todos os produtos (Loucura total se executar isso)
  • Forms de produtos específicos
  • Forms especíificos de produtos específicos (Maneira mais usual)
  • Idiomas
Opção 3 ==> Compilar reports disponíveis no $AU_TOP. Funciona da mesma maneira da opção 2, porém somente manipulando arquivos .rdf. As opções para regenerar os reports são:
  • Todos os reports de todos os produtos (Loucura total se executar isso)
  • Reports de produtos específicos
  • Reports especíificos de produtos específicos (Maneira mais usual)
  • Idiomas
Opção 4 ==> Gerar arquivos de gráficos (.ogd) para arquivos de definições de gráficos (.ogx). Honestamente nunca utilizei esta opção e não sei exatamente qual a sua finalidade. Até em pesquisas pelo My oracle Support eu não achei nada muito específico. Deve ser por isso que na R12 essa opção foi removida.

Opção 5 ==> Gera novamente Jar Files da aplicação no $JAVA_TOP. Após isso, estes arquivos são copiados para o $APPL_TOP automaticamente. Esta opção recria as bibliotecas java (appsborg.zip e appsborg2.zip). Somente deve ser executado após um upgrade no Developer ou por orientação do suporte Oracle.

Ou seja, vimos que no menu 1 temos várias opções referentes a compilação/recompilação dos arquivos de aplicação. Vamos agora dar uma olhada no menu 2:


Neste menu podemos executar a manutenção dos arquivos da aplicação para mante-los integros e atualizados, bem como relinks de programas com bibliotecas do sistema operacional.

Opção 1 ==> Executa o relink dos produtos, seja de todos ou de produtos específicos, com as susas respectivas bibliotecas. Essa opção deve sempre ser executada com a base de dados parada. Esta opção geralmente deve ser utilizada após recomendação do suporte Oracle.
Importante: Não é possível utilizar esta opção para relink de utilitários do AD. Para esta tarefa, devemos utilizar o adrelink.

Opção 2 ==> Cria um env file (arquivo de configuração de ambiente) no caso de servidores Unix. O arquivo de configuração de ambiente é colocado diretamente sob o $APPL_TOP. Também nunca utilizei esta opção e talvez, coincidência ou não, a opção não faz mais parte do ADADMIN na R12.

Opção 3 ==> Executa cópia de arquivos de alguns PRODUCT_TOPS para outros top's, como:
  • Java Files para $JAVA_TOP
  • HTML Files para $OAH_TOP
  • Multimídia para $OAM_TOP
  • Reports para $AU_TOP
Importante: A opção “force” nunca deve ser utilizada, salvo sob orientação do suporte Oracle.

Opção 4 ==> Conversão de CharSet da aplicação. Ela prepara os arquivos de $APPL_TOP para a conversão, realizando após isso a corversão.Esta opção tem uma sub-opção que permite efetuar uma busca por excecão antes de realizar a conversão real. Este é um procedimento delicado e que deve ser muito testado antes de ser executado em produção.

Opção 5 ==> Snapshot da aplicação. Guarda um histórico de patches aplicados e versões de arquivos.

Opção 6 ==> Busca no APPL_TOP e acusa se existem arquivos faltantes.

Na opção acima então, podemos executar várias das rotinas de manutenção dos arquivos de aplicação.

É isso ai. Até agora tudo tranquilo né. Nenhum bicho de sete cabeças pulou da tela, nada nos assustou, tudo funcionou lindamente. Vamos então continuar, agora entrando nas tarefas de banco de dados da AdAdmin, ou seja, o menu 3.




Neste menu é permitida a compilação de arquivos relativos ao banco de dados do EBS. Obviamente que existem outras formas de fazer o que estes menus nos oferecem, mas o ideal é que a ferramenta seja utilizada, sempre. Os menus são bem intuítivos e suas opções falam por si só, portanto aqui teremos uma breve explicação de cada opção.

Opção 1 ==> Nesta opção é possível recompilar objetos inválidos do APPS Schema. Aqui fica apenas um observação: se houver muitos objetos inválidos em sua instance, você deve inverstigar o problema a fundo ao invés de ficar recompilando os objetos pois isso definitivamente não é normal e nem saudável para a sua base.

Opção 2 ==> Aqui podemos recompilar a estrutura de dados dos menus no APPS. Ao carregar um novo menu na tabela FND_MENU_ENTRIES ou se após uma alteração de menu a execução do concurrent de recompilação falhar, essa opção deve ser executada

Opção 3 ==> No item 3, podemos recompilar as estruturas de dados dos famosos FlexFields nas FND Tables. Esta opção geralmente será utilizada quando algum patch alterar configurações de FlexField em sua aplicação. Se isso ocorrer, geralmente o Readme do patch trará uma sessão de pós-requisitos onde solicitará a execução desta tarefa. Os FlexFields geralmente são compilados em sua primeira utilização, dispensando a execução desta tarefa a cada criação, porém a compilação dos dados de um FlexField em um momento específico (por exemplo, quando a utilização do sistema é baixa), pode amenizar possíveis problemas de desempenho em tempo de execução.

Opção 4 ==> Por último, mas não menos importante recompilamos os objetos JAVA (Java Class) no banco de dados. Esta opção recarrega todos os arquivos JAR próprios do banco de dados. Execute esta tarefa se todos as classes Java dos aplicativos Oracle forem removidos de seu banco.

A opção 4 do menu principal é bem tranquila e intuítiva para a sua utilização. Agora veremos as tarefas de manutenção do banco de dados que podem ser feitas no AdAdmin.

Nesta opção 4 do menu principal, iremos relizar as manutenções necessárias nos arquivos e objetos de banco de dados do EBS. Aqui, como no menu 3 tudo é muito iintuítivo.



Opção 1 ==> Valida o schema do APPS para ver se o mesmo está integro. O Relatório de saída será gerado em $APPL_TOP/admin//out/. Por se tratar de uma validação simples, pode ser executado sempre que necesário.
Opção 2 ==> Verifica a integridade de grant's e sinônimos que o usuário APPS deve possuir sobre as tabelas dos módulos. Identificado algum problema, recria os grant's e synonym's para o APPS.
Importante: Se houver muitos obletos inválidos em sua base, você deve resolver este problema rapidamente junto ao My Oracle Support.

Opção 3 ==> Executa apenas após a inclusão de um novo idioma no EBS. Nesta opção as tabelas e as views “amarradas” à linguagem serão recriadas .
Opção 4 ==> Manutenção da tabela DUAL. Essa tabela, como é de conhecimento de todos deve existir no schema SYS e deve possuir apenas uma linha. Inconsistências nesta tabela podem levar

Opção 5 ==> Manutenção do MRC. Aqui, como eu não conheço o MRC intimamente, vou transcrever o trecho do manual do AdAdmin. Se as funcionalidades do Multiple Reporting Currencies (MRC) estão instaladas, esta opção é chamada para efetuar a manutenção do schema Multiple Reporting Currencies.
O MRC é implementado usando o esquema APPS. Isso significa que a manutenção (ou conversão) somente irá recriar as triggers MRC no schema APPS. Não é necessário validar o esquema APPS antes de executar esta tarefa.
Para maiores informações sobre o MRC, basta pesquisar por “Multiple Reporting Currencies in Oracle Applications” no Metalink.

A opção 5 do menu principal é mais fácil de todas. Aqui você coloca e retira o EBS do modo de manutenção que deve ser habilitado para otimizar o desempenho e reduzir o tempo ocioso das sessões de AutoPatch.




Não existe muito o que explicar aqui, pois a própria tradução dos itens já diz tudo.

Opção 1 ==> Ativar o modo de manutenção.
Opção 2 ==> Desativar o modo de manutenção.

Quando você escolhe alterar entre os modos de manutenções, esse status fica demonstrado no superior da tela para que o ATG consiga se localizar em qual modo o EBS está no momento. Esse modo de manutenção é utilizado para a aplicação de patches.

Ufaaaaaaaaa!! Acho que terminamos esse passeio pelo AdAdmin. O artigo ficou um pouco longo, mas acredito que valha a pena para termos um instrumento de consulta rápida sobre este utilitário.

Duplicate de bases RAC

Olá jovens mancebos... Espero que todos estejam bem...

Hoje vamos ver um processo bem simples mas bastante utilizado no dia a dia que é a clonagem de bases. Até ai, beleza - melzinho na chupeta :).

Mas e clonar uma base no RAC? Será que é complicado?

Como diz aquela canção, isso é "Fácil, extremamente fácil :)".

Mas como fazer isso? Muito simples meu querido e destemido amigo... Vamos lá?

1) Realizar o backup da base de produção

export ORACLE_SID=PROD

Vamos deixar esse script rodando em segundo plano para podermos ir trabalhando outros passos durante o backup.

vi bkp.sh
chmod +x bkp.sh

rman target / <        run {
ALLOCATE CHANNEL C1 TYPE DISK MAXPIECESIZE 8G;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
SQL 'ALTER SYSTEM CHECKPOINT';
BACKUP AS COMPRESSED BACKUPSET FULL DATABASE FORMAT '/mnt/clone/rman/%d_%I_%s_%Y%M%D_%U.rman'
PLUS ARCHIVELOG FORMAT '/mnt/clone/rman/arch_%d_%I_%s_%Y%M%D_%U.arq';
BACKUP CURRENT CONTROLFILE FORMAT '/mnt/clone/rman/control.bkp';
}
exit
EOF

Para executar:
nohup ./backup.sh &
   
Para acompanhar os logs:
tail -f nohup.out

2) Enquanto rola o backup, podemos ir levantando outras informações:


set pages 120 lines 10000;

-- DataFiles
select
FILE_ID,
SUBSTR(TABLESPACE_NAME,1,15) as TABLESPACE_NAME,
SUBSTR(FILE_NAME,1,60) as FILE_NAME,
STATUS
from
dba_data_files
order by 
FILE_ID;

-- Redos
select * from v$logfile order by GROUP#;
       
-- ControlFiles   
select value from v$parameter where name = 'control_files';

-- Tempfiles
select FILE#,  STATUS, name from v$tempfile order by 1;

3) Se por ventura essa base que será clonada (CLONE) já existir no RAC temos que baixar a base do mesmo:
srvctl stop database -d clone

4) Agora um passo muito importante que deve ser executado com muito cuidado. A limpeza dos arquivos antigos no ASM.
asmcmd
cd SEU GRUPO DE DISCOS
cd SUA INSTANCE 

rm -rf *

De novo, CUIDADO para não deletar o que não deve. Se a base ainda não existir, basta pular esse ponto.
   
5) Editar o init da base
Aqui, se a base for nova deve-se gerar um init a partir do spfile da base de produção. Além dos acertos normais, deve-se prestar muita atenção aos itens abaixo:
   
*.control_files                         = '+ASMGRP01','+ASMGRP02'
*.CLUSTER_DATABASE     = FALSE
   
-- Devido a bug na clonagem, eu gosto de acrescentar essa linha. Apesar de geralmente acontecer em clonagens RAc para Nom-RAC.
_no_recovery_through_resetlogs=true
   
-- Aqui vão os seus grupos de discos no ASM - Origem e destino
db_file_name_convert  =("+ASMGRP1/PROD", "+ASMGRP1/CLONE", "+ASMGRP2/PROD", "+ASMGRP2/CLONE")
log_file_name_convert =("+ASMGRP2/PROD", "+ASMGRP2/CLONE")

Não se esqueça também que apesar da clonagem ser feita inicialmente como uma base single você está em um ambiente RAC. Por isso verifique também:
    *.db_name='clone'
    clone1.instance_name='clone1'   
    clone2.instance_name='clone2'
    clone1.INSTANCE_NUMBER=1
    clone2.INSTANCE_NUMBER=2
   
    clone1.local_listener='(address=(protocol=tcp)(host=)(port=1521))'
    clone2.local_listener='(address=(protocol=tcp)(host=)(port=1521))'

    clone1.THREAD=1
    clone2.THREAD=2

    clone1.undo_tablespace='UNDOTBS1'
    clone2.undo_tablespace='UNDOTBS2'
   
   
6) Eu sei que não precisava dizer, mas vá lá.. Se o Clone for novo, criar toda a estrutura de pastas necessárias, bem como o password file...
orapwd file=orapwclone1 entries=3 password=123456

mkdir -p $ORACLE_BASE/admin/CLONE/adump
mkdir -p $ORACLE_BASE/admin/CLONE/udump
mkdir -p $ORACLE_BASE/admin/CLONE/bdump
mkdir -p $ORACLE_BASE/admin/CLONE/cdump

Outra coisa importante, não se esqueça de fazer isso também na máquina do Nó 2.
   
7) Agora sim a brincadeira vai começar a ficar legal.. Até o momento, só preparamos a clonagem. Vamos agora a ação, propriamente dita...
export ORACLE_SID=CLONE
startup nomount

8) Clonar a base - aqui de novo vamos usar o nohup. Isso é importante pois por vezes na sua vida terá que trabalhar remotamente. Isso evita que você perca o seu trabalho em caso de desconexão. Pode acreditar, se acostume a usar isso pois você vai evitar muitas horas de raiva...


vi clone.sh

rman TARGET sys/123456@PROD NOCATALOG AUXILIARY / <    RUN
{
ALLOCATE AUXILIARY CHANNEL aux1 DEVICE TYPE DISK;
DUPLICATE TARGET DATABASE TO clone;
}
EXIT
EOF

chmod +x clone.sh
nohup ./clone.sh &;

Claro, não esquece de ver lá no TNSNAMES se tem uma entrada para a PROD.


Se você chegou até aqui, parabéns man... Sua base já está clonada. Se deu algo errado, volta e faz de novo.. Não desite agora... Continuando...

9) Agora vamos fazer umas validações antes de colocar a base no RAC:
 

- Verificar o nome do controlfile gerado:
select value from v$parameter where name = 'control_files';

VALUE
--------------------------------------------------------------------------------
'+ASMGRP1/clone/controlfile/current.309.772155755', '+ASMGRP2/clone/controlfile/current.276.772155755'

Armazena muito bem esse conteúdo acima. Isso vai lá para o nosso INIT.
   
- Verifica os datafiles e se a UNDO está OK - as duas

10) Vamos baixar a base clonada
shutdown immediate

11) Agora devemos editar o init com as informações do controlfile, habilitar o cluster, etc
Colocar o parâmetro 'control_files' com o valor encontrado.
Colocar o parâmetro 'cluster_database com o valor TRUE.

Criar um spfile a partir disso:
create spfile from pfile;

12) Bacana, estamos quase lá... Agora vamos criar redos para a thread 2 se for necessário. Mas como eu vou saber? Acredite, a informação está lá :)
   
Vamos primeiro verificar o tamanho dos Redos para criar todos iguais
select * from v$log;        

select GROUP#, THREAD#, SEQUENCE#, BYTES* from v$log;       

    GROUP#    THREAD#  SEQUENCE#      BYTES
---------- ---------- ---------- ----------
         1          1          1  134217728
         2          1          0  134217728
         3          1          0  134217728
        
Viu ali que só temos redos para a thread 1? E a 2, como fica? Vamos criar, ora pois :)
       
select  GROUP#, TYPE, MEMBER from v$logfile;        -- olhar o destino e quantidade dos logs;
 

GROUP# TYPE    MEMBER
------ ------- ---------------------------------------
     1 ONLINE  +ASMGRP01/clone/onlinelog/group_1.413.766579093
     2 ONLINE  +ASMGRP01/clone/onlinelog/group_2.412.766579093
     3 ONLINE  +ASMGRP01/clone/onlinelog/group_3.411.766579093
       
 Executar uma vez para cada grupo:   
 alter database add logfile thread 2 ('+ASMGRP1','+ASMGRP2') size 50M;
 alter system switch logfile;
   
13) Habilitar a thread 2, se necessário
 alter database enable thread 2;

14) Copiar o init, orapw, spfile para o nó 2
 scp initclone1.ora oracle@clone-02:/oracle/app/oracle/product/10.2.0/db_1/dbs/initclone2.ora
 scp orapwclone1 oracle@clone-02:/oracle/app/oracle/product/10.2.0/db_1/dbs/orapwclone2
 scp spfileclone1.ora oracle@clone-02:/oracle/app/oracle/product/10.2.0/db_1/dbs/spfileclone2.ora

15) Agora, o momento mais legal de todos: Iniciar a base no cluster

 -- Se for nova, registrar a base primeiro
 -- Cadastrar o database no cluster
 srvctl add database -d clone -o /oracle/app/oracle/product/10.2.0/db_1

 -- Cadastrar as Instances
 srvctl add instance -d clone -i clone1 -n clone-01
 srvctl add instance -d clone -i clone2 -n clone-02
   
16) Start da base pelo cluster
 srvctl start database -d clone
   
AHAHAH, bacana.. Chegamos até aqui? Ai sim, então chegamos até o final.

Espero que tenha ajudado.



Ahh, já ia esquecendo de oferecer esse post para quatro caras que me ajudaram muito na minha transição para a consultoria: Fabio Telles, Everton Evaristo, Breno "Sabonetão" Rodrigues e o japonês Hélio Higa. Obrigado pela ajuda.


E lembrem-se que "friends will be friends right to the end - Queen".


Abraço
Mario

quinta-feira, 12 de janeiro de 2012

Recomeço....

Boa noite meus jovens...

Ano novo, vida nova... Certo, sei que já prometi isso mas agora vou tentar realmente cumprir...

Decidi retomar as postagens, arrumar tempo.. Não só de EBS que estou um pouco afastado mas também de Oracle... 

Muita coisa mudou nesse último ano.. Mudei de emprego, mudei o foco, mudei tudo.. E isso vai se refletir aqui nos Posts.. 

Sem esquecer o EBS, claro.. Mas quero dar umas dicas de banco, Oracle RAC principalmente que é o meu mais novo foco.. Não tão novo, mas enfim...

Já vou tentar postar algo nesse final de semana para começar..

No mais, um grande abraço e um ótimo 2012.

Abraço
Mario


segunda-feira, 7 de fevereiro de 2011

Boa noite pessoal

Logo, logo tem novo artigo no blog e também no Imasters. Aguardem...

Hoje, porém peço licença para publicar um pequeno texto que tem muito a ver com alguns profissionais que se deixam prender pela rotina e o comodismo do emprego e que tem medo de se arriscar com coisas novas. 

Medos todos temos e eu não sou diferente. A estória abaixo ilustra bem como estava me sentindo - e ainda estou um pouco, porém a libertação está dentro de nós, da nossa cabeça...

Não lembro onde eu li este texto... Se for de alguém ai, se manifeste para eu colocar a fonte por favor...

Segue o texto:

Numa granja uma galinha se destacava entre todas as outras por sua coragem, espírito de aventura e ousadia. Não tinha limites e andava por onde queria.

O dono, porém, não apreciava estas qualidades e estava aborrecido com ela. Suas atitudes estavam contagiando as outras, que achavam bonito este modo de ser e já a estavam copiando.

Um dia o dono fincou um bambu no meio do campo, arrumou um barbante de aproximadamente 2,0 metros e amarrou a galinha a ele. Desse modo, de repente, o mundo tão amplo que a ave tinha foi reduzido a exatamente onde o barbante lhe permitia chegar. Ali, ciscando, comendo, dormindo, estabeleceu sua vida. 

Dia após dia acontecia o mesmo. De tanto andar nesse círculo, a grama, que era verde, foi desaparecendo e ficou somente terra. Era interessante ver delineado um círculo perfeito em volta dela. Do lado de fora, onde a galinha não podia chegar, a grama verde, do lado de dentro só terra.

Depois de um tempo o dono se compadeceu da ave, pois ela que era tão inquieta e audaciosa, havia se tornado uma pacata figura. Então cortou o barbante que a prendia pelo pé e a deixou solta.

Agora estava livre, o horizonte seria limite, poderia ir onde quisesse. Mas, estranhamente, a galinha mesmo solta, não ultrapassava o limite que ela própria havia feito. Só ciscava e andava dentro do círculo, seu limite imaginário. Olhava para o lado de fora, mas não tinha coragem suficiente para se "aventurar" a ir até lá.

Preferiu ficar do lado conhecido. Com o passar do tempo, envelheceu e ali morreu.
 
Pensem nisso e não se tornem mais uma galinha no mundo corporativo...
Abraço
Mario

quarta-feira, 2 de fevereiro de 2011

Voltamos Já...

Boa tarde pessoal...

As postagens no blog deram uma parada pois estava envolvido em alguns projetos aqui na empresa que estavam consumindo todo o meu tempo...

Essa semana acredito que tudo volte ao normal com novos posts aqui e no Imasters também...

Abraço
Mario

terça-feira, 26 de outubro de 2010

Mais um artigo publicado

Olá jovens mancebos, tudo certo? 

Hoje é mais um dia de imensa satisfação para mim e gostaria de novamente compartilhar isso aqui no EBS Dicas.

Mais um artigo deste que vos escreve foi publicado no Imasters e isso é motivo de muito orgulho e satisfação pessoal.

Iniciamente estou apenas publicando um review das dicas que já se encontram aqui, mas logo começaremos com assuntos inéditos aqui e lá no Imasters.

Espero que gostem e fiquem a vontade para criticar, comentar, elogiar....

Por aqui no EBS Dicas, as coisas ficaram um pouco paradas pois estava de férias e de mudança da minha casa... Imaginem a bagunça, mas agora já está tudo se normalizando...

Gostaria de fazer um agradecimento e uma referência especial a minha esposa. Ela está passando por alguns momentos de provação em seu trabalho, mas eu tenho certeza que ela vai tirar tudo isso de letra.

Eu gostaria de lembrá-la que: "Juntos, somos invencíveis !!!"

Enfim jovens, é isso... Espero que apreciem, mas com moderação :)

Abraço
Mario

sexta-feira, 24 de setembro de 2010

Artigo publicado - Imasters

Bom dia Jovens

Hoje, para minha felicidade o meu primeiro artigo foi publicado no Imasters.

É um texto simples, apenas para quebrar o gelo sobre o assunto e patra perder o medo da primeira vez :)

Já estou preparando o próximo texto.

Quem quiser dár uma olhadinha, é só clicar no link:
http://imasters.uol.com.br/artigo/18363/bi/cadastrando_usuarios_no_e-business_suite/


Mas peguem leve nos comentários hein :)

É isso jovens, hoje realmente é um dia feliz.

Abraço

quarta-feira, 22 de setembro de 2010

GUOB Tech Day - Inscrições abertas !!!

Boa tarde jovens

Hoje venho aqui para uma passada rápida, apenas para avisar que as inscrições para o Tech Day idealizado e realizado pelo pessoal do GUOB com apoio do OTN e LAOUC estão abertas.




Todos sabem, mas nunca é demais lembrar o site do GUOB: http://www.guob.com.br/

 Corram que as vagas são limitadas. A minha já está garantida :)

Abraço
Mario