Neste
artigo vamos apresentar como podemos fazer a multiplexação de controlfiles.
Mas
antes de apresentar os passos, vamos falar para que serve a multiplexação de controlfiles.
A
multiplexação de controlfiles serve entre outras coisas para melhorar a
performance do banco de dados, principalmente em ambientes com o RAC instalado.
A multiplexação também previne problemas com a corrupção do mesmo, pois nesses
casos pode-se copiar um controlfile em bom estado sobre o controlfile
danificado.
Vamos
aos passos da multiplexação dos controlfiles.
A.
Criar o diretório para armazenar o controlfile.
Na instância do ASM:
SQL>
alter diskgroup DGBKP add directory '+DGBKP/DBTESTE';
SQL>
alter diskgroup DGBKP add directory '+DGBKP/DBTESTE/CONTROLFILE';
Na instância do banco
de dados:
B. Deve-se identificar o local dos controlfiles correntes:
SQL> select name from v$controlfile;
NAME
------------------------------------------------------------
+DATADG/DBTESTE/control01.ctl
+REDODG/DBTESTE/control02.ctl
SQL> show
parameter control_files
'+DATADG(CONTROLFILE)/DBTESTE/control01.ctl',
'+REDODG(CONTROLFILE)/DBTESTE/control02.ctl'
C. Editar o spfile e modificar o parâmetro
control_file:
SQL> alter system set control_files =
'+DATADG(CONTROLFILE)/DBTESTE/control01.ctl',
'+REDODG(CONTROLFILE)/DBTESTE/control02.ctl',
'+DGBKP(CONTROLFILE)/DBTESTE/control03.ctl'
scope=spfile sid='*';
System altered.
D. Efetuar um shutdown no banco de dados (incluindo todas as instâncias
se estiver no RAC):
$ srvctl
stop database -d DBTESTE
E.Iniciar o banco de dados em modo NOMOUNT:
$ sqlplus / as sysdba
SQL> startup nomount
F. Usar o RMAN para duplicar o controlfile:
$ rman nocatalog
Recovery Manager: Release
11.2.0.1.0 - Production on Thu Nov 04 09:15:24 2012
Copyright (c) 1982, 2009,
Oracle and/or its affiliates. All rights
reserved.
RMAN> connect target
connected to target
database: DBTESTE (not mounted)
using target database
control file instead of recovery catalog
RMAN> restore controlfile
to '+DGBKP/DBTESTE/control03.ctl' from '+DATADG/DBTESTE/control01.ctl';
Starting restore at 04-NOV-12
allocated channel:
ORA_DISK_1
channel ORA_DISK_1: SID=297
instance=DBTESTE1 device type=DISK
channel ORA_DISK_1: copied
control file copy
Finished restore at 04-NOV-12
RMAN> exit
G. Efetuar um shutdown no banco de dados:
$ sqlplus / as sysdba
SQL> shutdown immediate
H. Iniciar o banco de dados:
srvctl start database –d DBTESTE
I. Verificar o resultado final:
SQL> select name from
v$controlfile;
NAME
------------------------------------------------------------
+DATADG/DBTESTE/control01.ctl
+REDODG/DBTESTE/control02.ctl
+DGBKP/DBTESTE/control03.ctl
SQL> show parameter
control_files
'+DATADG(CONTROLFILE)/DBTESTE/control01.ctl',
'+REDODG(CONTROLFILE)/DBTESTE/control02.ctl',
'+DGBKP(CONTROLFILE)/DBTESTE/control03.ctl'
MSc. Rubens Oliveira
DBA Oracle Consultor
olivert.dba@consultant.com