4-15. Тегирование копий RMAN

Для наборов резервных копий и копий-отображения можно назначить строку символов, называемую тегом (tag). Тег – это просто символическое имя, которое поможет быстро идентифицировать содержимое файла резервной копии. После того как тег будет связан с резервной копией, его можно использовать в RMAN командах.

Следующие примеры демонстрируют связь тега с резервным набором (обратите внимание на имя файла резервного набора o1_mf_nnndf_EXAMPLE_BKP_9js46syo_.bkp):

RMAN> backup copies 1 datafile 5 tag example_bkp;

Starting backup at 25-FEB-14
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=30 device type=DISK
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/u02/oradata/orcl/example01.dbf
channel ORA_DISK_1: starting piece 1 at 25-FEB-14
channel ORA_DISK_1: finished piece 1 at 25-FEB-14
piece 
handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2014_02_25/o1_mf_nnn
df_EXAMPLE_BKP_9js46syo_.bkp tag=EXAMPLE_BKP comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:16
Finished backup at 25-FEB-14

И с копией-отображения:

RMAN> backup as copy tag users_bkp tablespace users;

Starting backup at 25-FEB-14
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u02/oradata/orcl/users01.dbf
output file 
name=/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_users_9js4mqms_.d
bf tag=USERS_BKP RECID=8 STAMP=840473656
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 25-FEB-14

Теперь, например, для того что бы удалить копию-отображения с определённым тегом, можно использовать следующий формат команды:

RMAN> delete copy tag users_bkp;

released channel: ORA_DISK_1
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=1 device type=DISK
specification does not match any control file copy in the repository
List of Datafile Copies
=======================

Key     File S Completion Time Ckp SCN    Ckp Time       
------- ---- - --------------- ---------- ---------------
8       4    A 25-FEB-14       1043248    25-FEB-14      
        Name: 
/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_users_9js4mqms_.dbf
        Tag: USERS_BKP


Do you really want to delete the above objects (enter YES or NO)? y
deleted datafile copy
datafile copy file 
name=/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_users_9js4mqms_.d
bf RECID=8 STAMP=840473656
Deleted 1 objects

В следующем примере показывается, как можно создать резервные наборы копии-отображения табличного пространства users, у которого есть тег users_bkp, и табличного пространства system, у которого есть тег system_bkp:

RMAN> backup as copy tag users_bkp tablespace users;

Starting backup at 26-FEB-14
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00004 name=/u02/oradata/orcl/users01.dbf
output file 
name=/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_users_9jv5yt7d_.d
bf tag=USERS_BKP RECID=10 STAMP=840540570
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
Finished backup at 26-FEB-14

RMAN> backup as copy tag system_bkp tablespace system;

Starting backup at 26-FEB-14
using channel ORA_DISK_1
channel ORA_DISK_1: starting datafile copy
input datafile file number=00001 name=/u02/oradata/orcl/system01.dbf
output file 
name=/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_system_9jv5zy4w_.
dbf tag=SYSTEM_BKP RECID=11 STAMP=840540643
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:46
channel ORA_DISK_1: starting datafile copy
copying current control file
output file 
name=/u01/app/oracle/fast_recovery_area/ORCL/controlfile/o1_mf_SYSTEM_BKP_9jv
61dow_.ctl tag=SYSTEM_BKP RECID=12 STAMP=840540653
channel ORA_DISK_1: datafile copy complete, elapsed time: 00:00:01
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_DISK_1: starting piece 1 at 26-FEB-14
channel ORA_DISK_1: finished piece 1 at 26-FEB-14
piece 
handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2014_02_26/o1_mf_nns
nf_SYSTEM_BKP_9jv61g05_.bkp tag=SYSTEM_BKP comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 26-FEB-14

RMAN> backup as backupset tag new_bkp copy of tablespace users from tag 
users_bkp copy of tablespace system from tag system_bkp;

Starting backup at 26-FEB-14
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: including datafile copy of datafile 00001 in backup set
input file 
name=/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_system_9jv5zy4w_.
dbf
channel ORA_DISK_1: starting piece 1 at 26-FEB-14
channel ORA_DISK_1: finished piece 1 at 26-FEB-14
piece 
handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2014_02_26/o1_mf_nnn
df_NEW_BKP_9jv67q49_.bkp tag=NEW_BKP comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: including datafile copy of datafile 00004 in backup set
input file 
name=/u01/app/oracle/fast_recovery_area/ORCL/datafile/o1_mf_users_9jv5yt7d_.d
bf
channel ORA_DISK_1: starting piece 1 at 26-FEB-14
channel ORA_DISK_1: finished piece 1 at 26-FEB-14
piece 
handle=/u01/app/oracle/fast_recovery_area/ORCL/backupset/2014_02_26/o1_mf_nnn
df_NEW_BKP_9jv68vpf_.bkp tag=NEW_BKP comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 26-FEB-14

Последняя команда создала два резервных набора копий-отображения табличных пространств с указанными тегами. При этом стоит отметить, что вновь создаваемым резервным комплектам присваивается один и тот же тег new_bkp.

Тег нечувствителен к регистру и всегда выводится в результатах команд RMAN в верхнем регистре.

Основным преимуществом в использовании тегов для резервных копий является то, что тег может ясно сказать, какова цель данного резервного копирования. Например, имеются две копии с тегами switch_only и for_restore_only. Во время восстановления первая резервная копия используется в команде переключения, вторая при восстановлении файла до актуального состояния. Теги так же можно использовать и для указания копий, сделанных на определённый период времени, например, 2012_year_end.

Даже если тег прямо не указан с помощью ключевого слова, Oracle автоматически присваивает его по умолчанию каждому резервному копированию, за исключением резервных копий контрольного файла. Тег по умолчанию имеет формат TAGYYYYMMDDTHHMMSS, где YYYY означает год, MM месяц, DD день, НН час, MM минуты, SS секунды.

4-16. Конфигурирование автоматических каналов

Кроме ручного выделения каналов при каждом резервном копировании или восстановлении, в RMAN можно сконфигурировать автоматическое выделение каналов. Это позволит использовать данные каналы во всех сеансах RMAN.

Конфигурация автоматических каналов осуществляется с помощью команды CONFIGURE CHANNEL. Если с её помощью сконфигурировать каналы для диска или ленты, то команды резервного копирования и восстановления поддерживающие автоматические каналы при отсутствии каналов, настроенных вручную будут использовать эти каналы.

По умолчанию RMAN уже предоставляет специально сконфигурированный канал DISK. Его можно использовать в операциях резервного копирования.

Для автоматических каналов можно сконфигурировать степень параллелизма, тип и настройки устройства по умолчанию.

Определение типа устройства по умолчанию

Для автоматических каналов можно задать тип устройства по умолчанию. Например, следующая команда задаёт использование ленты в качестве типа устройства по умолчанию:

RMAN> configure default device type to sbt;

new RMAN configuration parameters:
CONFIGURE DEFAULT DEVICE TYPE TO 'SBT_TAPE';
new RMAN configuration parameters are successfully stored
released channel: ORA_DISK_1

Определение степени параллелизма для каналов

Степень параллелизма для определенного типа устройства управляет числом серверных сеансов, которые будут использоваться для ввода-вывода определенного типа устройства. Задать степень параллелизма можно с помощью команды CONFIGURE DEVICE TYPE ... PARALLELISM. При её выполнении будет определено число автоматических каналов для обоих типов устройств: диска и ленты. По умолчанию степень параллелизма равна 1. Рекомендуется выделять только один канал для каждого физического устройства на сервере. Отсюда следует, что если в системе имеется только один диск, степень параллелизма устанавливать не надо.

Для просмотра текущей степени параллелизма можно использовать следующую команду:

RMAN> show device type;

RMAN configuration parameters for database with db_unique_name ORCL are:
CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET 
PARALLELISM 1;
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

Если, например, требуется производить резервное копирование одновременно на три лентовода, то можно сконфигурировать тип устройства sbt со степенью параллелизма 3:

RMAN> configure device type sbt parallelism 3;

old RMAN configuration parameters:
CONFIGURE DEVICE TYPE 'SBT_TAPE' BACKUP TYPE TO COMPRESSED BACKUPSET 
PARALLELISM 1;
new RMAN configuration parameters:
CONFIGURE DEVICE TYPE 'SBT_TAPE' PARALLELISM 3 BACKUP TYPE TO COMPRESSED 
BACKUPSET;
new RMAN configuration parameters are successfully stored

RMAN> backup device type sbt database plus archivelog;     

Starting backup at 26-FEB-14
current log archived
allocated channel: ORA_SBT_TAPE_1
channel ORA_SBT_TAPE_1: SID=1 device type=SBT_TAPE
channel ORA_SBT_TAPE_1: WARNING: Oracle Test Disk API
allocated channel: ORA_SBT_TAPE_2
channel ORA_SBT_TAPE_2: SID=33 device type=SBT_TAPE
channel ORA_SBT_TAPE_2: WARNING: Oracle Test Disk API
allocated channel: ORA_SBT_TAPE_3
channel ORA_SBT_TAPE_3: SID=45 device type=SBT_TAPE
channel ORA_SBT_TAPE_3: WARNING: Oracle Test Disk API
channel ORA_SBT_TAPE_1: starting compressed archived log backup set
channel ORA_SBT_TAPE_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=28 RECID=22 STAMP=840541855
channel ORA_SBT_TAPE_1: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_1: finished piece 1 at 26-FEB-14
piece handle=2gp1j9l1_1_1 tag=TAG20140226T115057 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:01
Finished backup at 26-FEB-14

Starting backup at 26-FEB-14
using channel ORA_SBT_TAPE_1
using channel ORA_SBT_TAPE_2
using channel ORA_SBT_TAPE_3
channel ORA_SBT_TAPE_1: starting compressed full datafile backup set
channel ORA_SBT_TAPE_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u02/oradata/orcl/system01.dbf
channel ORA_SBT_TAPE_1: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_2: starting compressed full datafile backup set
channel ORA_SBT_TAPE_2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u02/oradata/orcl/sysaux01.dbf
input datafile file number=00004 name=/u02/oradata/orcl/users01.dbf
channel ORA_SBT_TAPE_2: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_3: starting compressed full datafile backup set
channel ORA_SBT_TAPE_3: specifying datafile(s) in backup set
input datafile file number=00005 name=/u02/oradata/orcl/example01.dbf
input datafile file number=00003 name=/u02/oradata/orcl/undotbs01.dbf
channel ORA_SBT_TAPE_3: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_3: finished piece 1 at 26-FEB-14
piece handle=2jp1j9l3_1_1 tag=TAG20140226T115059 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_3: backup set complete, elapsed time: 00:01:17
channel ORA_SBT_TAPE_3: starting compressed full datafile backup set
channel ORA_SBT_TAPE_3: specifying datafile(s) in backup set
including current control file in backup set
channel ORA_SBT_TAPE_3: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_3: finished piece 1 at 26-FEB-14
piece handle=2kp1j9ni_1_1 tag=TAG20140226T115059 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_3: backup set complete, elapsed time: 00:00:08
channel ORA_SBT_TAPE_3: starting compressed full datafile backup set
channel ORA_SBT_TAPE_3: specifying datafile(s) in backup set
including current SPFILE in backup set
channel ORA_SBT_TAPE_3: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_3: finished piece 1 at 26-FEB-14
piece handle=2lp1j9nv_1_1 tag=TAG20140226T115059 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_3: backup set complete, elapsed time: 00:00:01
channel ORA_SBT_TAPE_2: finished piece 1 at 26-FEB-14
piece handle=2ip1j9l3_1_1 tag=TAG20140226T115059 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_2: backup set complete, elapsed time: 00:01:48
channel ORA_SBT_TAPE_1: finished piece 1 at 26-FEB-14
piece handle=2hp1j9l3_1_1 tag=TAG20140226T115059 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:02:09
Finished backup at 26-FEB-14

Starting backup at 26-FEB-14
current log archived
using channel ORA_SBT_TAPE_1
using channel ORA_SBT_TAPE_2
using channel ORA_SBT_TAPE_3
channel ORA_SBT_TAPE_1: starting compressed archived log backup set
channel ORA_SBT_TAPE_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=29 RECID=23 STAMP=840541988
channel ORA_SBT_TAPE_1: starting piece 1 at 26-FEB-14
channel ORA_SBT_TAPE_1: finished piece 1 at 26-FEB-14
piece handle=2mp1j9p5_1_1 tag=TAG20140226T115309 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel ORA_SBT_TAPE_1: backup set complete, elapsed time: 00:00:01
Finished backup at 26-FEB-14

В результате выполнения этих команд будет организованно три автоматических канала. При этом, после выполнения резервного копирования, каждый лентовод будет содержать примерно одну третью часть архивных журнальных файлов и файлов данных.

Всего можно сконфигурировать до 255 каналов, каждый из которых способен читать до 64 файлов параллельно.

Определение максимального размера резервной части

В настройках автоматических каналов можно установить максимальный размер получаемой резервной части, определив в команде CONFIGURE опцию maxpiecesize. В следующем примере максимальный размер отдельной резервной части для диска устанавливается равным 1G:

RMAN> configure channel device type disk maxpiecesize 1g;

new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 1 G;
new RMAN configuration parameters are successfully stored

Когда выполняется команда BACKUP, выделяется только единственный тип канала диск или sbt. Однако, при выполнении команды RESTORE (или команды DELETE), RMAN выделяет все необходимые каналы включая диск и sbt.

Генерация настроек для автоматических каналов

Если при выделении канала не определяется явно его номер, то RMAN конфигурирует универсальный канал. В этом случае можно с помощью команды configure channel device type сконфигурировать шаблон универсальных настроек для всех автоматических каналов, которые принадлежат типу устройства диск или лента.

Ниже показывается, как можно определить пропускную способность канала и формат резервных частей для всех автоматических каналов, предполагая, что тип устройства по умолчанию будет установлен в диск:

RMAN> configure channel device type disk rate 5m format="?/oradata/%U";

old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK MAXPIECESIZE 1 G;
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE DISK RATE 5 M FORMAT   "?/oradata/%U";
new RMAN configuration parameters are successfully stored

Или вот другой пример, где все выполняемые резервные копирования, будут использовать ленту с определенными настройками канала:

RMAN> configure channel device type sbt parms='ENV=(NSR_SERVER=bksvr1)';

old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=oracle.disksbt 
ENV=(BACKUP_DIR=/u01/app/oracle/admin/orcl/backup)';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'ENV=(NSR_SERVER=bksvr1)';
new RMAN configuration parameters are successfully stored

Если настройки для определенного именованного канала не были сконфигурированы, то в этом случае универсальные настройки будут иметь главенствующую роль. Таким образом, универсальные настройки канала применяются ко всем каналам, которые были явно несконфигурированы. Всякий раз, когда реконфигурируется универсальный канал диска или ленты, любые предыдущие настройки для этого типа устройства затираются. В следующем примере второй командой затирается установка максимального размера для резервных частей, которая была произведена первой командой:

RMAN> configure channel device type sbt maxpiecesize 1G;

old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' PARMS  'SBT_LIBRARY=oracle.disksbt 
ENV=(BACKUP_DIR=/u01/app/oracle/admin/orcl/backup)';
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 1 G;
new RMAN configuration parameters are successfully stored

RMAN> configure channel device type sbt format 'bkup_%U';

old RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' MAXPIECESIZE 1 G;
new RMAN configuration parameters:
CONFIGURE CHANNEL DEVICE TYPE 'SBT_TAPE' FORMAT   'bkup_%U';
new RMAN configuration parameters are successfully stored

Генерация специфических каналов для типа устройства

Для того что бы управлять параметрами каждого канала отдельно, а не с помощью универсальных настроек, необходимо присвоить каналу номер. Присваивая номера, можно сконфигурировать определенный канал для каждого типа устройства. При этом стоит упомянуть, что для того, чтобы использовать такой канал, необходимо определить по крайней мере хотя бы одну опцию канала, например, такие, как maxpiecesize или format. В следующем примере показано как конфигурируются три специфических канала, чтобы отправить дисковые резервные копии трём отдельным дискам.

RMAN> configure channel 1 device type disk format '/disk1/%U';

new RMAN configuration parameters:
CONFIGURE CHANNEL 1 DEVICE TYPE DISK FORMAT   '/disk1/%U';
new RMAN configuration parameters are successfully stored

RMAN> configure channel 2 device type disk format '/disk2/%U';

new RMAN configuration parameters:
CONFIGURE CHANNEL 2 DEVICE TYPE DISK FORMAT   '/disk2/%U';
new RMAN configuration parameters are successfully stored

RMAN> configure channel 3 device type disk format '/disk3/%U';

new RMAN configuration parameters:
CONFIGURE CHANNEL 3 DEVICE TYPE DISK FORMAT   '/disk3/%U';
new RMAN configuration parameters are successfully stored

4-17. Ручное выделение канала

Кроме применения автоматических каналов, можно вручную выделить каналы в блоке run используя для этого команду allocate channel. В следующем примере выделяется единственный канал c1 для резервного копирования на ленту:

RMAN> run
2> {
3> allocate channel с1 device type sbt parms 'SBT_LIBRARY=oracle.disksbt 
ENV=(BACKUP_DIR=/u01/app/oracle/admin/orcl/backup)';
4> backup database plus archivelog;
5> }

allocated channel: с1
channel с1: SID=44 device type=SBT_TAPE
channel с1: WARNING: Oracle Test Disk API

Starting backup at 28-FEB-14
current log archived
channel с1: starting compressed archived log backup set
channel с1: specifying archived log(s) in backup set
input archived log thread=1 sequence=33 RECID=27 STAMP=840626818
input archived log thread=1 sequence=34 RECID=28 STAMP=840627162
input archived log thread=1 sequence=35 RECID=29 STAMP=840627324
input archived log thread=1 sequence=36 RECID=30 STAMP=840627491
input archived log thread=1 sequence=37 RECID=31 STAMP=840627564
input archived log thread=1 sequence=38 RECID=32 STAMP=840627604
input archived log thread=1 sequence=39 RECID=33 STAMP=840629245
input archived log thread=1 sequence=40 RECID=34 STAMP=840629418
input archived log thread=1 sequence=41 RECID=35 STAMP=840629459
input archived log thread=1 sequence=42 RECID=36 STAMP=840629818
input archived log thread=1 sequence=43 RECID=37 STAMP=840714027
channel с1: starting piece 1 at 28-FEB-14
channel с1: finished piece 1 at 28-FEB-14
piece handle=3bp1ohpb_1_1 tag=TAG20140228T184027 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel с1: backup set complete, elapsed time: 00:00:01
Finished backup at 28-FEB-14

Starting backup at 28-FEB-14
channel с1: starting compressed full datafile backup set
channel с1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u02/oradata/orcl/system01.dbf
input datafile file number=00002 name=/u02/oradata/orcl/sysaux01.dbf
input datafile file number=00005 name=/u02/oradata/orcl/example01.dbf
input datafile file number=00003 name=/u02/oradata/orcl/undotbs01.dbf
input datafile file number=00004 name=/u02/oradata/orcl/users01.dbf
channel с1: starting piece 1 at 28-FEB-14
channel с1: finished piece 1 at 28-FEB-14
piece handle=3cp1ohpe_1_1 tag=TAG20140228T184029 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel с1: backup set complete, elapsed time: 00:02:46
channel с1: starting compressed full datafile backup set
channel с1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel с1: starting piece 1 at 28-FEB-14
channel с1: finished piece 1 at 28-FEB-14
piece handle=3dp1ohul_1_1 tag=TAG20140228T184029 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel с1: backup set complete, elapsed time: 00:00:08
Finished backup at 28-FEB-14

Starting backup at 28-FEB-14
current log archived
channel с1: starting compressed archived log backup set
channel с1: specifying archived log(s) in backup set
input archived log thread=1 sequence=44 RECID=38 STAMP=840714209
channel с1: starting piece 1 at 28-FEB-14
channel с1: finished piece 1 at 28-FEB-14
piece handle=3ep1ohv1_1_1 tag=TAG20140228T184329 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel с1: backup set complete, elapsed time: 00:00:01
Finished backup at 28-FEB-14
released channel: с1

Использование идентификатора канала (c1 в примере) на является обязательным. Oracle будет использовать этот идентификатор при составлении отчётов о входных или выходных ошибках во время выполнения задания RMAN.

В следующем примере показано как можно использовать несколько вручную выделенных каналов для резервного копирования на несколько дисков.

Запустим на выполнение следующий скрипт:

RMAN> run
{
allocate channel disk1 device type disk format '/disk1/%U';
allocate channel disk2 device type disk format '/disk2/%U';
allocate channel disk3 device type disk format '/disk3/%U';
backup database plus archivelog;
}

2> 3> 4> 5> 6> 7> 
allocated channel: disk1
channel disk1: SID=37 device type=DISK

allocated channel: disk2
channel disk2: SID=46 device type=DISK

allocated channel: disk3
channel disk3: SID=42 device type=DISK

В результатах выполнения видно, что каждая команда allocate channel, выделяет отдельный дисковый канал для диска указанного в опции format. При этом сразу же задаётся маска имени файла резервного набора, который будет располагаться на этом диске.

После выделения каналов, выполняется резервное копирование архивных журналов:

Starting backup at 12-MAR-14
current log archived
channel disk1: starting archived log backup set
channel disk1: specifying archived log(s) in backup set
input archived log thread=1 sequence=33 RECID=27 STAMP=840626818
input archived log thread=1 sequence=34 RECID=28 STAMP=840627162
input archived log thread=1 sequence=35 RECID=29 STAMP=840627324
input archived log thread=1 sequence=36 RECID=30 STAMP=840627491
input archived log thread=1 sequence=37 RECID=31 STAMP=840627564
channel disk1: starting piece 1 at 12-MAR-14
channel disk2: starting archived log backup set
channel disk2: specifying archived log(s) in backup set
input archived log thread=1 sequence=38 RECID=32 STAMP=840627604
input archived log thread=1 sequence=39 RECID=33 STAMP=840629245
input archived log thread=1 sequence=40 RECID=34 STAMP=840629418
input archived log thread=1 sequence=41 RECID=35 STAMP=840629459
input archived log thread=1 sequence=42 RECID=36 STAMP=840629818
channel disk2: starting piece 1 at 12-MAR-14
channel disk3: starting archived log backup set
channel disk3: specifying archived log(s) in backup set
input archived log thread=1 sequence=43 RECID=37 STAMP=840714027
input archived log thread=1 sequence=44 RECID=38 STAMP=840714209
input archived log thread=1 sequence=45 RECID=39 STAMP=842020329
channel disk3: starting piece 1 at 12-MAR-14
channel disk1: finished piece 1 at 12-MAR-14
piece handle=/disk1/3tp30dul_1_1 tag=TAG20140312T184021 comment=NONE
channel disk1: backup set complete, elapsed time: 00:00:02
channel disk1: starting archived log backup set
channel disk1: specifying archived log(s) in backup set
input archived log thread=1 sequence=46 RECID=40 STAMP=842020820
channel disk1: starting piece 1 at 12-MAR-14
channel disk2: finished piece 1 at 12-MAR-14
piece handle=/disk2/3up30dul_1_1 tag=TAG20140312T184021 comment=NONE
channel disk2: backup set complete, elapsed time: 00:00:03
channel disk1: finished piece 1 at 12-MAR-14
piece handle=/disk1/40p30duo_1_1 tag=TAG20140312T184021 comment=NONE
channel disk1: backup set complete, elapsed time: 00:00:01
channel disk3: finished piece 1 at 12-MAR-14
piece handle=/disk3/3vp30dum_1_1 tag=TAG20140312T184021 comment=NONE
channel disk3: backup set complete, elapsed time: 00:00:03
Finished backup at 12-MAR-14

Копии архивных журналов распределились по трём резервным наборам. Причем каждый резервный набор расположился на отдельном диске. Тоже самое произойдёт дальше и с резервными копиями файлов данных:

Starting backup at 12-MAR-14
channel disk1: starting full datafile backup set
channel disk1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u02/oradata/orcl/system01.dbf
channel disk1: starting piece 1 at 12-MAR-14
channel disk2: starting full datafile backup set
channel disk2: specifying datafile(s) in backup set
input datafile file number=00002 name=/u02/oradata/orcl/sysaux01.dbf
input datafile file number=00004 name=/u02/oradata/orcl/users01.dbf
channel disk2: starting piece 1 at 12-MAR-14
channel disk3: starting full datafile backup set
channel disk3: specifying datafile(s) in backup set
input datafile file number=00005 name=/u02/oradata/orcl/example01.dbf
input datafile file number=00003 name=/u02/oradata/orcl/undotbs01.dbf
channel disk3: starting piece 1 at 12-MAR-14
channel disk3: finished piece 1 at 12-MAR-14
piece handle=/disk3/43p30dur_1_1 tag=TAG20140312T184026 comment=NONE
channel disk3: backup set complete, elapsed time: 00:01:30
channel disk3: starting full datafile backup set
channel disk3: specifying datafile(s) in backup set
including current control file in backup set
channel disk3: starting piece 1 at 12-MAR-14
channel disk3: finished piece 1 at 12-MAR-14
piece handle=/disk3/44p30e1s_1_1 tag=TAG20140312T184026 comment=NONE
channel disk3: backup set complete, elapsed time: 00:00:16
channel disk3: starting full datafile backup set
channel disk3: specifying datafile(s) in backup set
including current SPFILE in backup set
channel disk3: starting piece 1 at 12-MAR-14
channel disk3: finished piece 1 at 12-MAR-14
piece handle=/disk3/45p30e2n_1_1 tag=TAG20140312T184026 comment=NONE
channel disk3: backup set complete, elapsed time: 00:00:03
channel disk2: finished piece 1 at 12-MAR-14
piece handle=/disk2/42p30dur_1_1 tag=TAG20140312T184026 comment=NONE
channel disk2: backup set complete, elapsed time: 00:03:00
channel disk1: finished piece 1 at 12-MAR-14
piece handle=/disk1/41p30dur_1_1 tag=TAG20140312T184026 comment=NONE
channel disk1: backup set complete, elapsed time: 00:03:20
Finished backup at 12-MAR-14

Starting backup at 12-MAR-14
current log archived
channel disk1: starting archived log backup set
channel disk1: specifying archived log(s) in backup set
input archived log thread=1 sequence=47 RECID=41 STAMP=842021029
channel disk1: starting piece 1 at 12-MAR-14
channel disk1: finished piece 1 at 12-MAR-14
piece handle=/disk1/46p30e56_1_1 tag=TAG20140312T184349 comment=NONE
channel disk1: backup set complete, elapsed time: 00:00:01
Finished backup at 12-MAR-14

В результате мы получим резервные копии архивных журналов и файлов данных, как бы распределённых по трём дискам.

В конце выполнения скрипта, каналы, выделенные вручную освобождаются:

released channel: disk1
released channel: disk2
released channel: disk3

Можно использовать все опции команды configure channel, когда используется allocate channel для ручного выделения каналов RMAN. При этом стоит учитывать, что команда allocate channel применяется только в блоке run. Следовательно, вручную выделенный канал живёт только в пределах блока, в котором он выделяется. Если каналы не были выделены вручную, то будут применены автоматические каналы, но вручную выделенный канал всегда переопределяет автоматический.

Как только определяются ручные каналы, невозможно определить тип устройства резервного копирования или восстановления для использования автоматическими каналами.

После того как блок run заканчивается, RMAN автоматически освобождает вручную выделенные каналы. Однако можно заранее освобождать каналы используя идентификатор канала, заданный при выделении. В следующем примере показано как можно вручную освобождать каналы, чтобы сконфигурировать различные опции (format и maxpiecesize) для резервного копирования на ленту:

RMAN> run {
2> allocate channel c1 device type sbt format 'bkup_%U' parms 
'SBT_LIBRARY=oracle.disksbt ENV=(BACKUP_DIR=/backup)';
3> allocate channel c2 device type sbt maxpiecesize = 10M parms 
'SBT_LIBRARY=oracle.disksbt ENV=(BACKUP_DIR=/backup)';
4> backup channel c1 datafile 1,2,3;
5> release channel c1;
6> backup datafile 4,5;
7> }

allocated channel: c1
channel c1: SID=40 device type=SBT_TAPE
channel c1: WARNING: Oracle Test Disk API

allocated channel: c2
channel c2: SID=47 device type=SBT_TAPE
channel c2: WARNING: Oracle Test Disk API

Starting backup at 28-FEB-14
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u02/oradata/orcl/system01.dbf
input datafile file number=00002 name=/u02/oradata/orcl/sysaux01.dbf
input datafile file number=00003 name=/u02/oradata/orcl/undotbs01.dbf
channel c1: starting piece 1 at 28-FEB-14
channel c1: finished piece 1 at 28-FEB-14
piece handle=bkup_3np1ol4c_1_1 tag=TAG20140228T183732 comment=API Version 
2.0,MMS Version 8.1.3.0
channel c1: backup set complete, elapsed time: 00:02:15
channel c1: starting compressed full datafile backup set
channel c1: specifying datafile(s) in backup set
including current control file in backup set
including current SPFILE in backup set
channel c1: starting piece 1 at 28-FEB-14
channel c1: finished piece 1 at 28-FEB-14
piece handle=bkup_3op1ol8k_1_1 tag=TAG20140228T183732 comment=API Version 
2.0,MMS Version 8.1.3.0
channel c1: backup set complete, elapsed time: 00:00:03
Finished backup at 28-FEB-14

released channel: c1

Starting backup at 28-FEB-14
channel c2: starting compressed full datafile backup set
channel c2: specifying datafile(s) in backup set
input datafile file number=00005 name=/u02/oradata/orcl/example01.dbf
input datafile file number=00004 name=/u02/oradata/orcl/users01.dbf
channel c2: starting piece 1 at 28-FEB-14
channel c2: finished piece 1 at 28-FEB-14
piece handle=3pp1ol8q_1_1 tag=TAG20140228T183953 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel c2: starting piece 2 at 28-FEB-14
channel c2: finished piece 2 at 28-FEB-14
piece handle=3pp1ol8q_2_1 tag=TAG20140228T183953 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel c2: starting piece 3 at 28-FEB-14
channel c2: finished piece 3 at 28-FEB-14
piece handle=3pp1ol8q_3_1 tag=TAG20140228T183953 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel c2: starting piece 4 at 28-FEB-14
channel c2: finished piece 4 at 28-FEB-14
piece handle=3pp1ol8q_4_1 tag=TAG20140228T183953 comment=API Version 2.0,MMS 
Version 8.1.3.0
channel c2: backup set complete, elapsed time: 00:00:33
Finished backup at 28-FEB-14
released channel: c2

Первая команда backup осуществляет резервное копирование файлов данных 1, 2, и 3 на ленту используя канал c1 с определённым форматом файла резервного набора. Как только файлы скопированы, канал c1 освобождается, и вторая команда backup будет использовать единственный остающийся открытый канал c2, чтобы скопировать файлы данных 4 и 5 в резервный набор разбитый на части по 10 Мб.

4-18. Выделение канала обслуживания RMAN

Для команд RMAN осуществляющих операции обслуживания, например, удаление устаревших копий, желательно выделить свой, отдельный канал, называемый ещё каналом обслуживания. Выделение такого канала с помощью команды allocate channel for maintenance следует начинать до выполнения команд change, delete или crosscheck. Например, ранее были сделаны резервные копии на ленту. Затем тип устройства по умолчанию был установлен в диск. Потребовалось очистить старые копии на ленте, что бы повторно использовать пространство для будущих копий. Так как тип устройства по умолчанию установлен в диск, можно выделить отдельный канал обслуживания указывающий на ленту, а затем уже произвести удаление устаревших копий. В следующем примере первая команда выделяет специальный канал обслуживания, указывающий на лентовод:

RMAN> allocate channel for maintenance device type sbt parms 
'SBT_LIBRARY=oracle.disksbt ENV=(BACKUP_DIR=/backup)';

allocated channel: ORA_MAINT_SBT_TAPE_1
channel ORA_MAINT_SBT_TAPE_1: SID=44 device type=SBT_TAPE
channel ORA_MAINT_SBT_TAPE_1: WARNING: Oracle Test Disk API

RMAN> delete backup of database completed before 'sysdate';   


List of Backup Pieces
BP Key  BS Key  Pc# Cp# Status      Device Type Piece Name
------- ------- --- --- ----------- ----------- ----------
109     88      1   1   AVAILABLE   SBT_TAPE    bkup_3np1ol4c_1_1
111     90      1   1   AVAILABLE   SBT_TAPE    3pp1ol8q_1_1
112     90      2   1   AVAILABLE   SBT_TAPE    3pp1ol8q_2_1
113     90      3   1   AVAILABLE   SBT_TAPE    3pp1ol8q_3_1
114     90      4   1   AVAILABLE   SBT_TAPE    3pp1ol8q_4_1

Do you really want to delete the above objects (enter YES or NO)? y
deleted backup piece
backup piece handle=bkup_3np1ol4c_1_1 RECID=109 STAMP=840717452
deleted backup piece
backup piece handle=3pp1ol8q_1_1 RECID=111 STAMP=840717594
deleted backup piece
backup piece handle=3pp1ol8q_2_1 RECID=112 STAMP=840717601
deleted backup piece
backup piece handle=3pp1ol8q_3_1 RECID=113 STAMP=840717608
deleted backup piece
backup piece handle=3pp1ol8q_4_1 RECID=114 STAMP=840717623
Deleted 5 objects

Команда allocate channel for maintenance, выделяющая канал обслуживания, предназначается только для задач обслуживания, таких как change, delete или crosscheck. Данный канал можно использовать только в командной строке подсказки RMAN, то есть его нельзя применить в блоке run. Кроме ручного выделения, канал обслуживания может выделяться автоматически. Но не зависимо от метода выделения его нельзя применять для операций резервного копирования и восстановления. Кроме того, не имеет смысла выделение канала обслуживания для команд change, delete или crosscheck выполняющих действие с файлом на диске (например, архивный журнальный файл), потому что RMAN предварительно конфигурирует автоматический дисковый канал для таких операций.

RMAN рекомендует предварительно конфигурировать каналы ленты и диска вместо того, чтобы использовать команду выделения канала обслуживания.

Например, стратегия резервного копирования предполагает использовать только диск для резервных копий. Но имеются несколько старых резервных копий, размещённых ещё на ленте. Лентовод недоступен. Как удалить эти старые резервные копии из RMAN? Для начала надо выделить канал обслуживания указывающий на фиктивный sbt API. Затем можно использовать команду delete obsolete для удаления из RMAN устаревших резервных копий ленты:

RMAN> allocate channel for maintenance device type sbt parms 
'SBT_LIBRARY=oracle.disksbt, ENV=(BACKUP_DIR=/tmp)';

allocated channel: ORA_MAINT_SBT_TAPE_1
channel ORA_MAINT_SBT_TAPE_1: SID=1 device type=SBT_TAPE
channel ORA_MAINT_SBT_TAPE_1: WARNING: Oracle Test Disk API

RMAN> delete obsolete;

Хотя лентовод больше не доступен, RMAN симулирует вызов к уровню управления ленточным носителем (MML) и успешно инициирует команду обслуживания, чтобы удалить старые резервные копии с магнитной ленты.