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) и успешно инициирует команду обслуживания, чтобы удалить старые резервные копии с магнитной ленты.