1-1. Режим архивации

При попытке осуществить резервное копирование вашей базы данных с помощью RMAN у вас выдаётся ошибка:

RMAN-03009: failure of backup command on ORA_DISK_1 channel at 02/17/2011 09:43:56
ORA-19602: cannot backup or copy active file in NOARCHIVELOG mode

Сообщение говорит о том, что прежде чем начинать резервное копирование с помощью RMAN, нужно перевести базу данных в режим архивации.

Включение режима архивации базы данных

[oracle@alfa /]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.3.0 - Production on Thu Feb 17 09:51:21 2011
Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
With the Partitioning, OLAP and Data Mining options
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area  285212672 bytes
Fixed Size                  1261372 bytes
Variable Size             125829316 bytes
Database Buffers          155189248 bytes
Redo Buffers                2932736 bytes
Database mounted.
SQL> alter database archivelog;
Database altered.
SQL> alter database open;
Database altered.

Проверка установки режима архивации

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

SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG

Команда archive log утилиты SQL*Plus так же показывает состояние режима архивирования. В дополнение она выводит информацию о режиме архивирования, состоянии флага автоматического архивирования, месте назначения архивных журнальных файлов и значениях последовательностей журналов.

SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/app/oracle/admin/orcl/arch
Oldest online log sequence     4
Next log sequence to archive   6
Current log sequence           6

1-2. Подключение к RMAN

Локальное подключение

Подключение подразумевает, что вы вошли в операционную систему, используя учётную запись oracle.

[oracle@alfa /]$ rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Fri Feb 18 08:30:47 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: ORCL (DBID=1265664822)

Локальное подключение с использованием имени и пароля

При подключении используется файл паролей.

[oracle@alfa /]$ rman target sys/*****
Recovery Manager: Release 10.2.0.3.0 - Production on Fri Feb 18 08:32:55 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: ORCL (DBID=1265664822)

Удалённое подключение

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

[oracle@alfa ~]$ rman target sys/*****@alfa.alldba.ru
Recovery Manager: Release 10.2.0.3.0 - Production on Fri Feb 18 08:45:55 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database: ORCL (DBID=1265664822)

1-3. Копирование базы

Простое копирование базы данных.

Копирование всей базы

Выполнение копирования всей базы данных с помощью команды backup:

RMAN> backup database;
Starting backup at 18-FEB-11
using target database control file instead of recovery catalog
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=149 devtype=DISK
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
input datafile fno=00001 name=/u02/oradata/orcl/system01.dbf
input datafile fno=00003 name=/u02/oradata/orcl/sysaux01.dbf
input datafile fno=00005 name=/u02/oradata/orcl/example01.dbf
input datafile fno=00002 name=/u02/oradata/orcl/undotbs01.dbf
input datafile fno=00004 name=/u02/oradata/orcl/users01.dbf
channel ORA_DISK_1: starting piece 1 at 18-FEB-11
channel ORA_DISK_1: finished piece 1 at 18-FEB-11
piece 
handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_02_18/o1_mf_nnndf_TAG20110
218T085045_6ow25qd1_.bkp tag=TAG20110218T085045 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:46
channel ORA_DISK_1: starting full datafile backupset
channel ORA_DISK_1: specifying datafile(s) in backupset
including current control file in backupset
including current SPFILE in backupset
channel ORA_DISK_1: starting piece 1 at 18-FEB-11
channel ORA_DISK_1: finished piece 1 at 18-FEB-11
piece 
handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_02_18/o1_mf_ncsnf_TAG20110
218T085045_6ow2755o_.bkp tag=TAG20110218T085045 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03
Finished backup at 18-FEB-11

Просмотр информации об копии

RMAN> list backup;
List of Backup Sets
===================
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
3       Full    587.55M    DISK        00:00:41     18-FEB-11      
        BP Key: 3   Status: AVAILABLE  Compressed: NO  Tag: TAG20110218T085045
        Piece Name: 
/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_02_18/o1_mf_nnndf_TAG20110218T085
045_6ow25qd1_.bkp
  List of Datafiles in backup set 3
  File LV Type Ckp SCN    Ckp Time  Name
  ---- -- ---- ---------- --------- ----
  1       Full 514698     18-FEB-11 /u02/oradata/orcl/system01.dbf
  2       Full 514698     18-FEB-11 /u02/oradata/orcl/undotbs01.dbf
  3       Full 514698     18-FEB-11 /u02/oradata/orcl/sysaux01.dbf
  4       Full 514698     18-FEB-11 /u02/oradata/orcl/users01.dbf
  5       Full 514698     18-FEB-11 /u02/oradata/orcl/example01.dbf
BS Key  Type LV Size       Device Type Elapsed Time Completion Time
------- ---- -- ---------- ----------- ------------ ---------------
4       Full    6.80M      DISK        00:00:02     18-FEB-11      
        BP Key: 4   Status: AVAILABLE  Compressed: NO  Tag: TAG20110218T085045
        Piece Name: 
/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_02_18/o1_mf_ncsnf_TAG20110218T085
045_6ow2755o_.bkp
  Control File Included: Ckp SCN: 514735       Ckp time: 18-FEB-11
  SPFILE Included: Modification time: 18-FEB-11

Если в выводимой информации требуется отображать время, можно определить формат даты, используя переменную среды NLS_DATE_FORMAT:

[oracle@alfa ~]$ export NLS_DATE_FORMAT='DD-MON-RRRR HH24:MI:SS'

1-4. Симуляция отказа

Следующий пример демонстрирует симуляцию отказа базы данных, путём переименования одного из файлов базы данных, и последующее восстановление базы данных из резервной копии.

Просмотр расположения файлов базы данных

Для начала определим местоположение будущего переименованного файла (example01.dbf). Это можно сделать с помощью команды RMAN report schema:

RMAN> report schema;
Report of database schema
List of Permanent Datafiles
===========================
File Size(MB) Tablespace           RB segs Datafile Name
---- -------- -------------------- ------- ------------------------
1    480      SYSTEM               ***     /u02/oradata/orcl/system01.dbf
2    25       UNDOTBS1             ***     /u02/oradata/orcl/undotbs01.dbf
3    240      SYSAUX               ***     /u02/oradata/orcl/sysaux01.dbf
4    5        USERS                ***     /u02/oradata/orcl/users01.dbf
5    100      EXAMPLE              ***     /u02/oradata/orcl/example01.dbf
List of Temporary Files
=======================
File Size(MB) Tablespace           Maxsize(MB) Tempfile Name
---- -------- -------------------- ----------- --------------------
1    20       TEMP                 32767       /u02/oradata/orcl/temp01.dbf

Остановка базы данных

Остановим базу данных:

RMAN> shutdown immediate;     
database closed
database dismounted
Oracle instance shut down
Recovery Manager complete.

Переименование файла базы данных

Для симуляции отказа базы данных переименуем файл example01.dbf:

[oracle@alfa /]$ cd /u02/oradata/orcl
[oracle@alfa orcl]$ mv example01.dbf example01.bk

Запуск базы данных

Стартуем повреждённую базу данных:

[oracle@alfa orcl]$ rman target /
Recovery Manager: Release 10.2.0.3.0 - Production on Mon Feb 21 08:03:59 2011
Copyright (c) 1982, 2005, Oracle.  All rights reserved.
connected to target database (not started)
RMAN> startup;
Oracle instance started
database mounted
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of startup command at 02/21/2011 08:04:35
ORA-01157: cannot identify/lock data file 5 - see DBWR trace file
ORA-01110: data file 5: '/u02/oradata/orcl/example01.dbf'

База данных не сможет быть открыта пока файл данных example01.dbf не будет восстановлен.

1-5. Восстановление базы данных

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

Восстановление всех файлов базы данных из копии

Для восстановления базы данных необходимо смонтировать экземпляр и запустить команду restore database:

RMAN> startup mount;
connected to target database (not started)
Oracle instance started
database mounted
RMAN> restore database;
Starting restore at 21-FEB-11
allocated channel: ORA_DISK_1
channel ORA_DISK_1: sid=157 devtype=DISK
channel ORA_DISK_1: starting datafile backupset restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
restoring datafile 00001 to /u02/oradata/orcl/system01.dbf
restoring datafile 00002 to /u02/oradata/orcl/undotbs01.dbf
restoring datafile 00003 to /u02/oradata/orcl/sysaux01.dbf
restoring datafile 00004 to /u02/oradata/orcl/users01.dbf
restoring datafile 00005 to /u02/oradata/orcl/example01.dbf
channel ORA_DISK_1: reading from backup piece 
/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_02_18/o1_mf_nnndf_TAG20110218T085
045_6ow25qd1_.bkp
channel ORA_DISK_1: restored backup piece 1
piece 
handle=/u01/app/oracle/flash_recovery_area/ORCL/backupset/2011_02_18/o1_mf_nnndf_TAG20110
218T085045_6ow25qd1_.bkp tag=TAG20110218T085045
channel ORA_DISK_1: restore complete, elapsed time: 00:00:36
Finished restore at 21-FEB-11

Команда восстановила файлы данных из резервной копии.

Применение изменений к файлам базы данных

Следующим шагом осуществляется применение изменений в базе данных произошедших в интервал времени с момента создания резервной копии и до времени сбоя:

RMAN> recover database;
Starting recover at 21-FEB-11
using channel ORA_DISK_1
starting media recovery
media recovery complete, elapsed time: 00:00:03
Finished recover at 21-FEB-11

Открытие базы

База данных восстановлена. Теперь её можно открыть для использования:

RMAN> alter database open;
database opened

Комментарии   

#3 MS Visio 11.04.2016 13:17
Да, хорошая статья, спасибо
#2 Сергей Жилин 26.06.2015 05:17
Цитирую Альберт:
Привет,

Сделал всё по шагам на тестовой БД, всё получилось! Отличная статья! Хотелось бы увидеть как копировать бд в бд,


alldba.ru/index.php/stati/oracle/334-dubl-rman-1
#1 Альберт 26.06.2015 02:21
Привет,

Сделал всё по шагам на тестовой БД, всё получилось! Отличная статья! Хотелось бы увидеть как копировать бд в бд,

You have no rights to post comments