Резервное копирование и восстановление баз данных
Реферат, 20 Декабря 2015, автор: пользователь скрыл имя
Описание работы
В современном мире через компьютер проходит огромное множество различных данных. Для удобного хранения которых создаются базы данных.
База данных (далее БД) — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).
Файлы: 1 файл
Резервное копирование и восстановление баз данных.docx
— 34.12 Кб (Скачать файл)Содержание
Ведение
В современном мире через компьютер проходит огромное множество различных данных. Для удобного хранения которых создаются базы данных.
База данных (далее БД) — представленная в объективной форме совокупность самостоятельных материалов (статей, расчётов, нормативных актов, судебных решений и иных подобных материалов), систематизированных таким образом, чтобы эти материалы могли быть найдены и обработаны с помощью электронной вычислительной машины (ЭВМ).
Для удобного использования и управления БД, созданы системы управления базами данных (СУБД). Система управления базами данных — совокупность программных и лингвистических средств общего или специального назначения, обеспечивающих управление созданием и использованием баз данных. На данный момент самыми часто используемыми СУБД являются Oracle, Microsoft SQL Server и Firebird/Interbase.
Несмотря на, казалось бы, всю совершенность современных компьютерных технологий, даже современные БД не застрахованы от потери данных. Во избежание потери данных делаются резервные копии баз.
Резервирование - процесс, основанный на сохранении данных и связей БД, для возможности дальнейшего их восстановления.
Восстановление - процесс возобновления работы базы данных, путем её воссоздания из преждевременно созданной резервной копии.
Рассмотрим процессы резервирования и восстановления БД, на основе вышеперечисленных СУБД.
Oracle Database
Для Oracle Database была создана специальная внутренняя программа RMAN, служащая для резервирования и восстановления БД.
Программа RMAN появилась в версии 8 СУБД Oracle как единое для всех платформ средство организации резервного копирования и восстановления данных на физическом уровне. По отношению к традиционным базовым возможностям резервирования и восстановления в Oracle, у программы RMAN есть некоторые преимущества, делающие ее в некоторых ситуациях (например, при больших объемах данных) практически незаменимой. К сожалению, наличие этих преимуществ не лишает RMAN и ряда существенных недостатков: собственной системы понятий, собственного командного языка и интерфейса общения с администратором.
Возможности RMAN
Возможности RMAN включают следующее:
- выполнение полного резервирования и резервирования изменений
- выполнение холодного/горячего резервирования, причем во втором случае табличные пространства не переводятся в режим backup, что позволяет избежать дополнительной нагрузки на журнал
- обнаружение поврежденных блоков
- параллельное выполнения операций ввода/вывода
- автоматическое протоколирование операций копирования и восстановления
Уровни выполнения резервного копирования/восстановления с помощью RMAN:
база данных
табличные пространства
файлы табличных пространств
служебные файлы БД (контрольные, архивные)
Основные понятия
В число основных понятий RMAN входят следующие:
- Канал (channel). Серверный процесс, возникающий при установлении связи с устройством ввода/вывода (диск или магнитная лента) для записи или чтения файлов резервирования
- Целевая БД (target database). БД, для которой снимается резервная копия, или которая восстанавливается по ранее снятой копии
- Каталог (recovery catalog). Отдельная схема в БД (чаще в отдельной БД), которую можно заводить для хранения служебная информации о целевых базах, снятых копиях и процедурах восстановления. Альтернативой каталогу является индивидуальная работа с каждой целевой БД, когда служебная информация помещается в контрольный файл этой БД.
- Копия (RMAN backup). Резервная копия какого-нибудь элемента БД, получаемая командой RMAN backup.
- Резервный набор (backup set). Логически именует набор файлов, сформированных во время резервного копирования.
- Резервный файл (backup piece). Двоичный файл с резервной информацией.
Синтаксис командного языка RMAN в версии 9 имеет определенные отличия от версии 8, но все основные конструкции сохранены. Кроме этого, в RMAN для версии 9 допускается целый ряд упрощений записи команд.
Возможность работы с RMAN включена также в последние версии OEM без необходимости знания командного языка.
В тексте ниже для лаконичности предпочтение будет отдаваться синтаксису версии 9. Кроме этого для простоты рассматривается работа без каталога RMAN.
Пример копирования и восстановления базы данных
Простейший пример снятия резервной копии (холодное копирование – вся БД – работа без каталога) иллюстрируется следующей последовательностью команд (здесь команда CONNECT TARGET соединяет RMAN с СУБД версии 8):
RMAN NOCATALOG
RMAN> CONNECT TARGET internal/oracle
RMAN> SHUTDOWN IMMEDIATE
RMAN> STARTUP MOUNT
RMAN> RUN {
2> ALLOCATE CHANNEL d1 TYPE DISK;
3> BACKUP FULL FORMAT 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%U.bus'
4> DATABASE;
4> }
RMAN>
В каталоге D:\ORACLE\ORADATA\TEACHER\RMAN-BACKUP
появился файл RMAN_ TEACHER _02DGA6F0_1_1.BUS (реальное
имя может варьироваться). Теперь можно
удалить файлы с табличными пространствами
и выполнить восстановление:
RMAN> RUN {
2> ALLOCATE CHANNEL d1 TYPE DISK;
3> RESTORE DATABASE;
4> RECOVER DATABASE;
5> ALTER DATABASE OPEN;
6> }
База восстановлена и открыта.
Упрощения в версии 9
В версии RMAN для версии 9 описанное выше резервирование можно было бы выполнить так:
RMAN> BACKUP DATABASE FORMAT
2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%U.bus';
а восстановление так:
RMAN> RESTORE DATABASE;
RMAN> RECOVER DATABASE;
RMAN> ALTER DATABASE OPEN;
Здесь подразумевается использование неявного канала по умолчанию, так что объявлять его стало необязательно.
Кроме этого в версии 9 появилась команда CONFIGURE, с помощью которой (помимо прочего) можно связать с каналом направление и маску имени файлов для резервного набора:
RMAN> CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT
2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%U.bus';
В этом случае команда снятия резервной копии может выглядеть еще проще:
RMAN> BACKUP DATABASE;
Резервирование файлов базы данных
Горячее полное резервирование БД
Горячее резервирование
- может выполняться в состоянии СУБД OPEN
- может выполняться только при включенном режиме архивирования журналов
Если выполнено и то, и другое, сами действия по резервированию выглядят как обычно. Пример в синтаксисе версии 9.0:
RMAN> BACKUP DATABASE FORMAT
2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus';
Полное резервирование табличного пространства
Пример в синтаксисе версии 9.0:
RMAN> BACKUP TABLESPACE system, users FORMAT
2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus';
Полное резервирование отдельных файлов табличного пространства
Пример в синтаксисе версии 9.0:
RMAN> BACKUP DATAFILE 1, 2;
или
RMAN> BACKUP FORMAT
2> 'd:\oracle\oradata\teacher\rman-backup\rman_%d_%t_%U.bus'
3> 'd:\oracle\oradata\teacher\system01.dbf’,
4> 'd:\oracle\oradata\teacher\users01.dbf’;
Резервирование временного табличного пространства
Если временное табличное пространство локально управляемо, оно автоматически не резервируется. Восстанавливать (воссоздавать) при необходимости его придется самостоятельно.
Резервирование контрольного файла
Обычное резервирование контрольного файла приходится выполнять отдельно. Пример явного резервирования в синтаксисе версии 9.0:
RMAN> BACKUP CURRENT CONTROLFILE;
В версии 9 можно, однако, перевести RMAN в режим, когда копии контрольного файла будут сниматься автоматически при всякой выдаче команд BACKUP или COPY:
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON;
Резервирование оперативных файлов журнала
Оперативные (онлайновые) файлы журнала автоматически не резервируются. Для сохранения либо следует их
а) копировать отдельно, либо
б) перед полным резервированием БД отправлять в архив.
Резервирование архивных копий журнала
Файлы архивных копий журнала резервируются всегда в отдельные от прочих файлы резервного набора и в общем случае их нужно резервировать отдельной командой. Пример в синтаксисе версии 9.0:
RMAN> BACKUP ARCHIVELOG ALL;
Пример того, как в версии 9.0 архивные файлы можно включить в состав резервного набора БД:
RMAN> BACKUP DATABASE FORMAT
2> 'd:\oracle\oradata\teacher\rman-backup\rman_%U.bus'
PLUS ARCHIVELOG;
Резервирование изменений (неполное резервирование)
Для резервирования изменений в Oracle используется традиционная многоуровневая модель с конкретным числом уровней копии 5 (от 0 до 4). Точкой отсчета для копирования изменений обязана стать снятая ранее полная копия БД уровня 0.
Пример резервирования блоков, изменившихся со времени резервирования на уровнях 3, 2, 1 и 0 (разностное, «дифференциального» резервирование) в синтаксисе версии 9:
RMAN> BACKUP INCREMENTAL LEVEL 3 DATABASE;
Пример резервирования блоков, изменившихся со времени последнего резервирования на уровнях 2, 1 и 0 (разностно-накопительное, «кумулятивное» резервирование) с пропуском табличных пространств, закрытых для записи (синтаксис версии 9):
RMAN> BACKUP INCREMENTAL LEVEL 3 CUMULATIVE DATABASE
2> SKIP READONLY;