Por Joel Perez , Mahir M. Quluzade (OCE) & Flávio Soares (OCE)
Postado em Março 2015
Revisado por Marcelo Pirovar - Solution Architect
Índice do artigos:
Vamos ver o quarta exemplo para a duplicar o bancos de dados com o RMAN em modo ativo.
Antes de ler este artigo, aconselhamos a ler (parte I) desta série de artigos para que você possa ter certeza sobre a teoria relacionada com esta série de artigos. Se você preparou seu hosts de destino como mostra os 7 passos (na parte I), então você pode duplicar banco de dados usando o RMAN.
Caso 4: Push-Based Active Database Duplication para o CDB
Com o Active Database duplication com o método Pull-Based (partes II, III, IV), o número de target channels é sempre menor do que o número de auxiliary chanels. Caso você queira utilizar o método Push-Based no Active Database duplication no Oracle Database 12c Release 1 (12.1.0.1), então você deve alocar um número de RMAN target channels maior do que o número de auxiliary channels alocados.
No exemplo a seguir, estamos trabalhando inicialmente no CDB chamado "prmcdb" como fonte de dados a ser duplicado para o CDB "dupcdb", como está na terceira parte dessa série de artigos. Usamos o comando duplicate do RMAN com as seguintes opções:
Opção do Duplicate | CDB |
Tipo do Duplicate | Active Database Duplication |
Método do Duplicate | Push-Based |
Usando o tipo de backup | Image Copies |
Números de Target Channels | 2 |
Números de Auxiliary Channels | 1 |
O comando duplicate do RMAN nesse caso é apresentado abaixo:
RMAN>run
{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate auxiliary channel a1 device type disk;
duplicate target database to dupcdb
from active database
spfile
parameter_value_convert='prmcdb','dupcdb'
set db_file_name_convert='prmcdb','dupcdb'
set log_file_name_convert='prmcdb','dupcdb';
}
Descrição do código:
Como se vê a partir do código acima, o RMAN aloca dois target channels (c1 e c2) e um auxiliary channel (a1) para a operação de duplicate. Como você sabe, se o número alocado de target channels for maior do que o número alocado de auxiliary channels, então o RMAN utilizará o método Push-Based do Active Database duplication. Nesse método, o RMAN utiliza as image copies do target database para realizar o duplicate. Utilizamos também o parâmetros parameter_value_convert e o db{log}_file_name_convert no comando duplicate. O uso desses parâmetros estão explicados na primeira parte (parte I) desta série de artigos.
No output podemos ver um processo normal de duplicate, como sempre foi nas versões anteriores.
Vamos ver este código em ação:
[oracle@oel62-ora12c-prm ~]$ rman
Recovery Manager: Release 12.1.0.1.0 - Production on Tue Apr 8 12:50:13 2014
Copyright (c) 1982, 2013, Oracle and/or its affiliates. All rights reserved.
RMAN> connect target sys/*****@prmcdb
connected to target database: PRMCDB (DBID=2508276746)
RMAN> connect auxiliary sys/*****@dupcdb
connected to auxiliary database: DUPCDB (not mounted)
RMAN>run
2> {
3> allocate channel c1 device type disk;
4> allocate channel c2 device type disk;
5>
6> allocate auxiliary channel a1 device type disk;
7>
8> duplicate target database to dupcdb
9> from active database
10> spfile
11> parameter_value_convert='prmcdb','dupcdb'
12> set db_file_name_convert='prmcdb','dupcdb'
13> set log_file_name_convert='prmcdb','dupcdb';
14> }
using target database control file instead of recovery catalog
allocated channel: c1
channel c1: SID=71 device type=DISK
allocated channel: c2
channel c2: SID=7 device type=DISK
allocated channel: a1
channel a1: SID=21 device type=DISK
Starting Duplicate Db at 08-APR-14
current log archived
… Output is cleared
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting backup at 08-APR-14
channel c1: starting datafile copy
input datafile file number=00003 name=/u01/app/oracle/oradata/prmcdb/sysaux01.dbf
channel c2: starting datafile copy
input datafile file number=00001 name=/u01/app/oracle/oradata/prmcdb/system01.dbf
output file name=/u01/app/oracle/oradata/dupcdb/sysaux01.dbf tag=TAG20140408T125110
channel c1: datafile copy complete, elapsed time: 00:02:15
… Output is cleared
Finished backup at 08-APR-14
… Output is cleared
datafile 1 switched to datafile copy
input datafile copy RECID=3 STAMP=844347476 file name=/u01/app/oracle/oradata/dupcdb/system01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=4 STAMP=844347477 file name=/u01/app/oracle/oradata/dupcdb/sysaux01.dbf
… Output is cleared
sql statement: alter pluggable database all open
Finished Duplicate Db at 08-APR-14
released channel: c1
released channel: c2
Recovery Manager complete.
Você pode observar no output acima, o RMAN utiliza os target channels (c1 e c2) para copiar o banco de dados destino. Esse é o mesmo método de duplicar o banco de dados ativo, antes do Oracle 12c Database Release 1 (12.1.0.1).
Esperamos que este artigo tenha sido útil para você. Convidamos a ler a próxima parte desta série de artigos:
Caso 5: Duplicando PDBs - Duplicando database ativo com método Pull-Based de apenas um Pluggable DatabaseJoel Pérez é um DBA Especialista (Oracle ACE Director, OCM Cloud Admin. & OCM11g ). Com mais de 14 anos de experiência do mundo Oracle Technology, especializado em arquitetura e implementação de soluções como: Cloud, Alta disponibilidade, Disaster/Recovery, Upgrades, replicação e todos as áreas relacionadas com bancos de dados Oracle. Consultor internacional com deveres, conferências e atividades em mais de 50 países e inúmeros clientes em todo o mundo. Palestrante regular nos eventos Oracle em todo o mundo como: OTN LAD, OTN MENA, OTN APAC e muito mais. Joel sempre foi conhecido por ser pioneiro em tecnologia Oracle desde os primeiros dias de sua carreira sendo o primeiro latino-americano premiado como "OTN Expert" no ano de 2003 pela Oracle Corporation, um dos primeiros "ACE Oracle" no Oracle ACE Program no ano de 2004, um dos primeiros OCP Database Cloud Administrator em todo o mundo no ano de 2013 e como um das maiores realizações profissionais em sua carreira, recentemente ele foi homenageado como o primeiro "OCM Database Cloud Administrator" do mundo.
Mahir M. Quluzade é um DBA Sênior com mais de 10 anos de experiência em banco de dados Oracle com foco principal na alta disponibilidade e soluções de recuperação de desastres (RAC, Data Guard, RMAN, ...). Mahir está atualmente trabalhando no Banco Central da República do Azerbaijão. Ele é um DBA OCP. Mahir é membro fundador do Azerbaijão a Oracle User Group (AZEROUG); também é um blogger. Siga Mahir em seu blog.
Flávio Soares é um Oracle DBA Sênior, Exadata DMA, Troubleshooter e Consultor Oracle, certificado em OCP/OCE RAC. Especialista em Exadata, alta disponibilidade e replicação de dados com soluções Oracle. Flávio disponibiliza frequentes informações para a comunidade Oracle através do seu blog.
Este artigo foi revisto pela equipe de produtos Oracle e está em conformidade com as normas e práticas para o uso de produtos Oracle.