Архивиране и възстановяване със софтуер RMAN, Oracle, статии, програмиране -

Програма RMAN се появи във версия 8 на СУБД Oracle като един инструмент за всички платформи за организиране на архивиране и възстановяване на данни на физическо ниво. В сравнение с традиционните основни възможности за архивиране и възстановяване в Oracle, RMAN има няколко предимства, които го правят почти незаменим в някои ситуации (например при големи количества данни). За съжаление, наличието на тези предимства не лишава RMAN от редица съществени недостатъци: собствена система от концепции, собствен команден език и интерфейс за комуникация с администратора. И двете са направени в лошите традиции на разработчиците на Oracle - не съвсем логично, объркващо и непоследователно - което прави тази програма трудна за овладяване. Целта на тази статия е да помогне за преодоляване на тези недостатъци за ползите от RMAN.

Възможностите на RMAN включват следното:

Архивиране/възстановяване на нива на изпълнение с RMAN:

  • база данни
  • пространства за маси
  • файлове от табличното пространство
  • файлове с услуги на база данни (контрол, архив)

Основните понятия на RMAN включват следното:

Синтаксисът на командния език RMAN във версия 9 има определени разлики от версия 8, но всички основни конструкции се запазват. В допълнение, RMAN за версия 9 позволява редица опростявания за писане на команди.

Възможността за работа с RMAN също е включена в най-новите OEM версии, без да е необходимо познаване на командния език.

В текста по-долу за краткост ще се даде предпочитание на синтаксиса на версия 9. В допълнение, за простота, ние обмисляме да работим без директорията RMAN.

RMAN НОКАТАЛОГ
RMAN> CONNECT TARGET вътрешен/oracle
RMAN> ИЗКЛЮЧВАНЕ НЕЗАБАВНО
RMAN> СТАРТОВ МОНТАЖ
RMAN> РАБОТА 2> РАЗПРЕДЕЛЕТЕ КАНАЛ d1 ТИП ДИСК;
3> РЕЗЕРВЕН ПЪЛЕН ФОРМАТ 'd: \ oracle \ oradata \ teacher \ rman-backup \ rman_% d_% U.bus'
4> БАЗА ДАННИ;
4 >>
RMAN>

Файлът RMAN_ TEACHER _02DGA6F0_1_1.BUS се появи в директорията D: \ ORACLE \ ORADATA \ TEACHER \ RMAN-BACKUP (действителното име може да варира). Сега можете да изтриете файлове с таблични пространства и да извършите възстановяване:

RMAN> РАБОТА 2> РАЗПРЕДЕЛЕТЕ КАНАЛ d1 ТИП ДИСК;
3> ВЪЗСТАНОВЯВАНЕ НА БАЗАТА ДАННИ;
4> ВЪЗСТАНОВИТЕ БАЗАТА ДАННИ;
5> ALTER DATABASE ОТВОРЕН;
6 >>

Основата е възстановена и отворена.

Във версията 9 на RMAN, горната съкратеност може да се направи по следния начин:

RMAN> ФОРМАТ НА РЕЗЕРВНАТА БАЗА ДАННИ
2> 'd: \ oracle \ oradata \ teacher \ rman-backup \ rman_% d_% U.bus';

и възстановяването е такова:

RMAN> ВЪЗСТАНОВЯВАНЕ НА БАЗАТА ДАННИ;
RMAN> ВЪЗСТАНОВИТЕ БАЗАТА ДАННИ;
RMAN> ALTER DATABASE ОТВОРЕН;

Това предполага използването на подразбиращия се канал по подразбиране, така че вече не е необходимо да го декларирате.

Освен това във версия 9 се появи командата CONFIGURE, с помощта на която (наред с други неща) можете да свържете посоката и маската на името на файла за архивния набор с канала:

RMAN> ФОРМАТ НА ТИП НА УСТРОЙСТВОТО ЗА КОНФИГУРИРАНЕ НА КАНАЛ
2> 'd: \ oracle \ oradata \ teacher \ rman-backup \ rman_% d_% U.bus';

В този случай командата за архивиране може да изглежда още по-проста:

RMAN> РЕЗЕРВНА БАЗА ДАННИ;

Ако и двете са готови, действията по архивиране се появяват както обикновено. Пример в синтаксис версия 9.0:

RMAN> ФОРМАТ НА РЕЗЕРВНАТА БАЗА ДАННИ
2> 'd: \ oracle \ oradata \ teacher \ rman-backup \ rman_% d_% t_% U.bus';

Пример в синтаксис версия 9.0:

RMAN> РЕЗЕРВНА TABLESPACE система, потребители ФОРМАТ
2> 'd: \ oracle \ oradata \ teacher \ rman-backup \ rman_% d_% t_% U.bus';

Пример в синтаксис версия 9.0:

RMAN> РЕЗЕРВНИ ДАННИ 1, 2;

RMAN> РЕЗЕРВЕН ФОРМАТ
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> КОНТРОЛ НА ТЕКУЩОТО РЕЗЕРВНО РЪКОВОДСТВО;