Anteriormente no artigo “Alterando banco de dados single para modo archivelog” verificamos a importância da base de dados estar configurada em modo archivelog e aprendemos como efetuar esta alteração em um database single.
Nosso objetivo hoje é aprender como efetuar este ajuste em um ambiente clusterizado (RAC). Mãos a obra!
Primeiramente vamos confirmar se a base de dados está em modo NOARCHIVELOG:
SQL> select distinct NAME, i.INSTANCE_NAME, OPEN_MODE, LOG_MODE from gv$database, gv$instance i order by 2; NAME INSTANCE_NAME OPEN_MODE LOG_MODE --------- ---------------- ---------- ------------ ORCL orcl1 READ WRITE NOARCHIVELOG ORCL orcl2 READ WRITE NOARCHIVELOGou
SQL> archive log list; Database log mode No Archive Mode Automatic archival Disabled Archive destination /u01/app/oracle/product/10.2.0/db_1/dbs/arch Oldest online log sequence 16 Current log sequence 17
Confirmado que a base está em modo NOARCHIVELOG, vamos ajustar um destino para os archives (redolog arquivados) que serão gerados.
Neste momento é importante ficarmos atentos se o destino existe em todos os nós do cluster, ou então, também podemos configurá-los diferentemente para cada instance.
* Ajustando um destino único para todas as instances:
Sintaxe: alter system set log_archive_dest_1=’LOCATION=’ scope=spfile sid=’*’;
SQL> alter system set log_archive_dest_1='LOCATION=/oraarchive/orcl' scope=spfile sid='*'; System altered.
Desta forma ajustamos o destino 1 dos archives para o local “/oraarchive/orcl”, note que antes do caminho de destino devemos especificar “LOCATION”. O scope será como spfile e o SID=’*’ (todos), caso seja necessário ajustar destinos diferentes devemos especificar o nome da instance no SID, como abaixo:
SQL> alter system set log_archive_dest_1='LOCATION=/oraarchive/orcl' scope=spfile sid='orcl1'; System altered.
OBS: Caso a opção SID não seja especificada no comando alter system ela recebe por default ‘*’
Ajustado o(s) destino(s), vamos agora ajustar o formato que os archives serão gerados.
Sintaxe: alter system set log_archive_format=’_%t_%s_%r.arc’ scope=spfile;
SQL> alter system set log_archive_format='orcl_%t_%s_%r.arc' scope=spfile; System altered.
ORACLE_SID = Nome da instance;
%t = Número da thread;
%s = Número de sequencia do log;
%r = Resetlog ID.
Nosso próximo passo é alterar o parâmetro cluster_database para FALSE, desta forma desabilitamos “temporariamente” o Real Application Cluster.
Sintaxe: alter system set cluster_database=false scope=spfile;
SQL> alter system set cluster_database=false scope=spfile; System altered.
Agora podemos parar o database: Sintaxe: srvctl stop database -d
[oracle@rac1 ~] cd $ORA_CRS_HOME [oracle@rac1 bin]$ ./srvctl stop database -d orcl
Verificando se as instances orcl1 e orcl2 foram paradas:
[oracle@rac1 bin]$ ./crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.orcl.db application OFFLINE OFFLINE ora....l1.inst application OFFLINE OFFLINE ora....l2.inst application OFFLINE OFFLINE ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
Vamos iniciar agora a instance orcl1 para podermos alterar o ‘DATABASE’, para modo ARCHIVELOG.
[oracle@rac1 bin]$ export ORACLE_SID=orcl1 [oracle@rac1 bin]$ sqlplus / as sysdba SQL*Plus: Release 10.2.0.1.0 - Production on Mon Oct 10 16:08:40 2011 Copyright (c) 1982, 2005, Oracle. All rights reserved. Connected to an idle instance. SQL> startup mount; ORACLE instance started. Total System Global Area 243269632 bytes Fixed Size 1218748 bytes Variable Size 109053764 bytes Database Buffers 130023424 bytes Redo Buffers 2973696 bytes Database mounted. SQL> alter database archivelog; Database altered.
Vamos alterar novamente o parâmetro cluster_database agora para TRUE e parar a instance para podermos iniciá-la atraves do serviço:
SQL> alter system set cluster_database=true scope=spfile; System altered. SQL> shutdown immediate; ORA-01109: database not open Database dismounted. ORACLE instance shut down. SQL> exit Disconnected from Oracle Database 10g Release 10.2.0.1.0 - Production With the Real Application Clusters option
iniciando:
[oracle@rac1 bin]$ ./srvctl start database -d orcl [oracle@rac1 bin]$ ./crs_stat -t Name Type Target State Host ------------------------------------------------------------ ora.orcl.db application ONLINE ONLINE rac2 ora....l1.inst application ONLINE ONLINE rac1 ora....l2.inst application ONLINE ONLINE rac2 ora....SM1.asm application ONLINE ONLINE rac1 ora....C1.lsnr application ONLINE ONLINE rac1 ora.rac1.gsd application ONLINE ONLINE rac1 ora.rac1.ons application ONLINE ONLINE rac1 ora.rac1.vip application ONLINE ONLINE rac1 ora....SM2.asm application ONLINE ONLINE rac2 ora....C2.lsnr application ONLINE ONLINE rac2 ora.rac2.gsd application ONLINE ONLINE rac2 ora.rac2.ons application ONLINE ONLINE rac2 ora.rac2.vip application ONLINE ONLINE rac2
Vamos verificar se nosso database está em modo ARCHIVELOG:
SQL> select distinct NAME, i.INSTANCE_NAME, OPEN_MODE, LOG_MODE from gv$database, gv$instance i order by 2; NAME INSTANCE_NAME OPEN_MODE LOG_MODE --------- ---------------- ---------- ------------ ORCL orcl1 READ WRITE ARCHIVELOG ORCL orcl2 READ WRITE ARCHIVELOG
Para certificarmos que os archives estão sendo gerados com sucesso podemos forçar um switch e verificar se foram criados abaixo do(s) destino(s) especificado(s).
SQL> select instance_name from v$instance; INSTANCE_NAME ---------------- orcl1 SQL> alter system switch logfile; System altered. SQL> exit Disconnected from Oracle Database 10g Release 10.2.0.1.0 - Production With the Real Application Clusters option [oracle@rac1 bin]$ ll /oraarchive/orcl total 29440 -rw-rw---- 1 oracle oinstall 30109696 Out 10 16:27 orcl_1_17_764169947.arc
node2:
SQL> select instance_name from v$instance; INSTANCE_NAME ---------------- orcl2 SQL> alter system switch logfile; System altered. SQL> exit Disconnected from Oracle Database 10g Release 10.2.0.1.0 - Production With the Real Application Clusters option [oracle@rac2 orcl]$ ll /oraarchive/orcl total 7184 -rw-rw---- 1 oracle oinstall 27804160 Out 10 16:28 orcl_2_1_764169947.arc
0 comentários:
Postar um comentário