Backup e Restore em Parallel
Chega de medo de DATAFILEs grandes.
O Oracle Database (Enterprise Edition, 11gR1 ou superior) permite também que o BACKUP e RESTORE via RMAN de um único DATAFILE seja executado em vários canais paralelos, o que pode agilizar em muito este tipo de operação, dependendo de suas CPUs e I/O.
No exemplo abaixo, eu permiti PARALLEL 10, mas o RMAN decidiu utilizar apenas 3, devido ao DATAFILE ter apenas cerca de 1GB.
[oracle@Caspar ~]$ rman TARGET /
Recovery Manager: Release 11.2.0.3.0 - Production on Sat Oct 15 14:41:06 2011
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
connected to target database: CATALOGO (DBID=2990378892)
RMAN> SHOW ALL;
using target database control file instead of recovery catalog
RMAN configuration parameters for database with db_unique_name CATALOGO are:
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
CONFIGURE BACKUP OPTIMIZATION OFF; # default
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE MAXSETSIZE TO UNLIMITED; # default
CONFIGURE ENCRYPTION FOR DATABASE OFF; # default
CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default
CONFIGURE COMPRESSION ALGORITHM 'BASIC' AS OF RELEASE 'DEFAULT' OPTIMIZE FOR LOAD TRUE ; # default
CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/11.2.0.3/db_1/dbs/snapcf_CATALOGO.f'; # default
RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 10 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE DISK PARALLELISM 10 BACKUP TYPE TO BACKUPSET;
new RMAN configuration parameters are successfully stored
RMAN> BACKUP DATAFILE 1;
Starting backup at 15-OCT-11
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
using channel ORA_DISK_5
using channel ORA_DISK_6
using channel ORA_DISK_7
using channel ORA_DISK_8
using channel ORA_DISK_9
using channel ORA_DISK_10
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/CATALOGO/system01.dbf
channel ORA_DISK_1: starting piece 1 at 15-OCT-11
channel ORA_DISK_2: starting full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
channel ORA_DISK_3: starting full datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_3: starting piece 1 at 15-OCT-11
channel ORA_DISK_3: finished piece 1 at 15-OCT-11
piece handle=/u01/app/oracle/FRA/CATALOGO/backupset/2011_10_15/o1_mf_nnsnf_TAG20 4246 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:00:01
including current control file in backup set
channel ORA_DISK_2: starting piece 1 at 15-OCT-11
channel ORA_DISK_2: finished piece 1 at 15-OCT-11
piece handle=/u01/app/oracle/FRA/CATALOGO/backupset/2011_10_15/o1_mf_ncnnf_TAG20 4246 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:08
channel ORA_DISK_1: finished piece 1 at 15-OCT-11
piece handle=/u01/app/oracle/FRA/CATALOGO/backupset/2011_10_15/o1_mf_nnndf_TAG20 4246 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:31
Finished backup at 15-OCT-11
RMAN>
Portilho,
Melhor ainda é “quebrar” o datafile em partes menores, chamadas de seções (possível a partir do Oracle 11G). Somente quebrando em seções menores e alocando múltiplos canais é que conseguiremos paralelizar de verdade o backup de um mesmo datafile, e isso não era possível no 10G.
No seu exemplo dá para ver q o datafile 1 não foi executado com paralelismo real. Para conseguir múltiplos processos paralelos no datafile 1, quebrando-o em seções, seria necessário executar o comando de backup contendo SECTION SIZE e um tamanho desejado para cada seção do arquivo. Exemplo:
BACKUP SECTION SIZE 250M DATAFILE 1;
[]s
Fábio Prado
http://www.fabioprado.net
Como da para ver que não foi utilizado paralelismo, se foram abertos 3 canais, e gerados 3 pieces, de um unico datafile?
Ah sim, vi agora que os pieces que ele gerou foram um grande e dois pequenos. Nos dois pequenos ele deve ter colocado só o SPFILE e CONTROLFILE, mesmo com o AUTOBACKUP OFF.
Obrigado !
Isso mesmo, nas 2 peças pequenas não estavam partes ou seções do datafile!
Acrescenta no comando SECTION SIZE q aí sim vc terá paralelismo no datafile!
[]s