Os passos abaixo servem para criar uma database Standby Physical no Windows Server
Considerações:
- Testando no Oracle 10g
- Database: orcl ;
- Database em ARCHIVEMODE ;
- Comunicação entre o Master e Standby deve estar configurada, seja no hosts do Windows, seja por DNS, e importante por TNSNAMES ;
- Configurado para área comum(C:\DADOS\ARCHIVE_LOG) de archives um DFS(Não será explicado aqui como fazer, pois não é o foco) ;
1 - Criando o usuário de replicação:
$ set ORACLE_SID=orcl
$ sqlplus /nolog
SQL > CONNECT / AS SYSDBA
SQL > CREATE USER STANDBY
IDENTIFIED BY password
DEFAULT TABLESPACE USERS
TEMPORARY TABLESPACE TEMP;
SQL > GRANT CONNECT TO STANDBY;
SQL > GRANT RESOURCE TO STANDBY;
SQL > GRANT DBA TO STANDBY;
SQL > ALTER USER STANDBY ACCOUNT UNLOCK;
SQL > DISCONNECT
2 - Alterar parâmetros de destino dos archives:
$ sqlplus /nolog
SQL > ALTER SYSTEM SET LOG_ARCHIVE_DEST_1='LOCATION=C:\DADOS\ARCHIVE_LOG\ARC1' SCOPE=SPFILE;
SQL > ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='LOCATION=C:\DADOS\ARCHIVE_LOG\ARC2' SCOPE=SPFILE;
* Os comandos abaixo geram indisponibilidade:
SQL > SHUTDOWN NORMAL
SQL > STARTUP OPEN
SQL > DISCONNECT
3 - Testando a conta de replicação:
$ sqlplus /nolog
SQL > CONNECT standby/password
SQL > ALTER SYSTEM SWITCH LOGFILE;
system altered.
SQL > DISCONNECT
* Verifique se os archives foram gravados nas pastas setadas como 'LOCATION' no passo 2.
4 - Criando o controlfile do Oracle Physical Standby Database:
$sqlplus /nolog
SQL > CONNECT / AS SYSDBA
SQL > ALTER DATABASE CREATE STANDBY CONTROLFILE AS ‘C:\DADOS\ARCHIVE_LOG\CTLSTB01.ORA’;
5 - Criando o PFILE do Oracle Physical Standby Database:
SQL > CREATE PFILE='C:\DADOS\ARCHIVE_LOG\PFILENFE.ORA' FROM SPFILE;
6 - Realizar as cópias dos datafiles para o 'C:\DADOS\ARCHIVE_LOG':
* Os comandos abaixo geram indisponibilidade:
SQL > SHUTDOWN NORMAL
SQL > DISCONNECT
* Faça a cópia fria via S.O.
7 - Copie os datafiles do Master para o standby, password file também. Aloque o controfile criado para o Standby:
$ copy C:\DADOS\ARCHIVE_LOG\CTLSTB01.ORA C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL01.CTL
$ copy C:\DADOS\ARCHIVE_LOG\CTLSTB01.ORA C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL02.CTL
$ copy C:\DADOS\ARCHIVE_LOG\CTLSTB01.ORA C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\CONTROL03.CTL
8 - Alocar corretamente datafiles no Oracle Standby(idem ao Master).
9 - Iniciar Oracle Standby Physical Standby:
* Se não sabe como criar uma instância podes criar uma database com o mesmo nome da Master e baixá-la depois.
$ set ORACLE_SID=orcl
$ sqlplus /nolog
SQL> CONNECT / AS SYSDBA
SQL> STARTUP NOMOUNT PFILE='C:\DADOS\ARCHIVE_LOG\PFILE.ORA';
10 - Criar SPFILE no Oracle Standby Physical Standby:
SQL > CREATE SPFILE FROM PFILE='C:\DADOS\ARCHIVE_LOG\PFILE.ORA';
* Após não precisará mais do PFILE.
11 - Mountar a database em modo Standby:
SQL > ALTER DATABASE MOUNT STANDBY DATABASE;
SQL > RECOVER AUTOMATIC STANDBY DATABASE;
* Caso dê algum erro aqui acesse o Master e gere um novo archive conforme passo 3.
12 - Verificar se o Standby está consumindo archives:
* Execute o seguinte comando no Master e no Standby: SELECT SEQUENCE#, APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;
O valor deve ser o mesmo, isto significa que a database Standby está consumindo os archives. Se der a diferença de um, basta gerar um novo archive no Master e realizar o procedimento de recovery no Standby.
13 - Automatizar a importação de archives:
* Agende um BAT no Crontab do Windows no Standby de tempo em tempo, o BAT deve ter o seguinte conteúdo:
- REPLICA.BAT -
set ORACLE_SID=orcl
C:\ORACLE\PRODUCT\10.2.0\DB_1\BIN\sqlplus standby/password@orclmaster @C:\DADOS\ARCHIVE_LOG\SWITCHARC.SQL
C:\ORACLE\PRODUCT\10.2.0\DB_1\BIN\sqlplus / AS SYSDBA @C:\DADOS\ARCHIVE_LOG\IMPORTARC.SQL
- SWITCHARC.SQL -
SPOOL C:\DADOS\ARCHIVE_LOG\RESULTSW-ARC.TXT
ALTER SYSTEM SWITCH LOGFILE;
SPOOL OFF;
EXIT
- IMPORTARC.SQL -
SPOOL C:\DADOS\ARCHIVE_LOG\RESULTIMP-ARC.TXT
SHUTDOWN IMMEDIATE
STARTUP NOMOUNT
ALTER DATABASE MOUNT STANDBY DATABASE;
RECOVER AUTOMATIC STANDBY DATABASE;
SPOOL OFF;
EXIT
*** Não esqueça de criar uma outra rotina que apague os archives antigos já consumidos pelo Standby.
Boa man..
ResponderExcluirMe ajudou a concluir entender o processo..
Show de bola. Então o post já cumpriu sua missão! Abraços Emerson!
Excluir