Резервное копирование Oracle. Бэкап базы Oracle с Bacula Enterprise.

Содержание

Резервное копирование Oracle использованием Bacula Enterprise Edition

В данном документе описаны правила и процедуры, которые необходимо соблюдать для резервного копирования Oracle на уровне предприятий с помощью ПО Bacula Enterprise Edition. Документ также включает различные сценарии восстановления бэкапа Oracle.

Обзор резервного копирования Oracle

Bacula Enterprise Edition использует уникальный плагин бэкапа Oracle, который позволяет упростить резервное копирование Oracle и его восстановление. Плагин позволяет использовать передовые методы для «горячего» и «холодного» резервного копирования Oracle и восстановления данных и конфигураций, хранимых на серверах 10 и 11 поколений. Плагин бэкапа базы Oracle позволяет восстанавливать Oracle на конкретный момент времени (до контрольной точки), фильтровать объекты во время резервного копирования Oracle и их восстановления. Он также позволяет создавать бэкапы Oracle с информацией о конфигурации, например параметров. Плагин бэкапа БД Oracle поддерживается платформами Linux 32/64 бит, поддерживаемыми Oracle, а также БД Oracle 10.x, 11.x.

Прочие преимущества резервного копирования Oracle с помощью Bacula:

  • При использовании режима RMAN, плагин позволяет создавать инкрементальные и дифференциальные бэкапы Oracle на уровне блоков.
  • Функция отслеживания изменений RMAN, используемая для последующих инкрементальных бэкапов, существенно улучшает создание резервных копий, записывая измененные блоки каждого файла данных в файл отслеживания изменений.
  • Администратор БД не должен владеть навыками работы с БД Oracle или уметь создавать сложные скипты для бэкапа Oracle.
  • Данный плагин для создания и восстановления бэкапов Oracle предназначен также для создания резервных копий информации о конфигурации, например параметров.

В данном документе представлены различные способы и стратегии резервного копирования Oracle с использованием ПО Bacula Enterprise Edition и соответствующего плагина.

Глоссарий бэкапа Oracle

В документе используются следующие термины:

  • ARC (Архивный журнал регистраций) – стандартные метод, используемый для обеспечения целостности данных. Основная идея ARC заключается в том, что изменения, вносимые в файлы данных (в которых находятся таблицы и индексы), будут записаны только после того, как изменения будут зарегистрированы в журнале, то есть после того как записи в журнале, описывающие изменения, будут перенесены в постоянное хранилище.
  • PITR Восстановление Oracle до заданной контрольной точки (PITR) восстанавливает БД до конкретного момента времени, а затем использует инкрементальные бэкапы и откаты для восстановления БД до указанной точки. PITR восстановление иногда называют неполным, так как в результате PITR восстановления БД восстанавливается до конкретного момента, а сама процедура не использует все файлы журнала резервного копирования Oracle.
  • RMAN Диспетчер восстановления Oracle или утилита RMAN, командная строка и инструмент на базе Oracle Enterprise Manager – метод резервного копирования и восстановления БД, рекомендуемый компанией Oracle. Утилита RMAN создана для работы непосредственно с сервером. Утилита позволяет определять поврежденные блоки данных во время резервного копирования и восстановления БД. Утилита RMAN оптимизирует производительность и потребление памяти во время создания бэкапа путем уплотнения файлов и сжатия набора резервных копий.
    http://docs.oracle.com/cd/B28359_01/backup.111/b28270/toc.htm
  • EXP/IMP Утилиты экспорта (exp) /импорта (imp) Oracle используются для выполнения логического резервного копирования/восстановления БД. При экспорте, создается дамп объектов БД в виде бинарного файла, который потом может быть импортирован в другую БД Oracle.
  • Data Pump Технология Oracle Data Pump – это более современная, быстрая и гибкая альтернатива утилитам “exp” и “imp”, которые использовались в предыдущих версиях Oracle. К сожалению, этот новый метод не поддерживает вывод данных непосредственно в файл FIFO. Поэтому использование инструментов Data Pump требует, чтобы вы сначала создали дамп данных на диске, а затем считали эти данные с помощью Bacula Enterprise File Daemon. Текущая версия плагина бэкапа Oracle не поддерживает технологию Data Pump.
  • SBT По умолчанию RMAN посылает все бэкапы Oracle в особый системный каталог на диске. Вы также можете сконфигурировать RMAN таким образом, чтобы бэкапы создавались на других носителях, например, магнитных лентах, с помощью SBT модуля. Bacula в этом случае будет выступать в качестве Диспетчера носителей (Media Manager), а данные будут передаваться напрямую от RMAN в Bacula.
  • libobk Интерфейс SBT реализован на базе файла библиотеки libobk.
  • Tablespace БД разделена на логические хранилища называемые табличными пространствами, которые группируются на основе логической структуры. Например, табличные пространства, как правило, группируют все прикладные объекты с целью упрощения администрирования.
  • Схема – это совокупность объектов БД. Схемой владеет пользователь БД. Схема имеет то же имя, что и ее пользователь. Объекты схемы – это логические структуры, которые напрямую связаны с данными БД. Объекты схемы включают такие структуры, как таблицы, виды, индексы. (Между табличным пространством и схемой нет связи. Объекты одной схемы, могут находиться в различных табличных пространствах, а табличные пространства могут содержать объекты их различных схем.)
  • Инстанс Сервер БД Oracle состоит из БД Oracle и инстанса БД Oracle. Каждый раз при запуске БД выделяется системная глобальная область (SGA) и запускаются фоновые процессы Oracle. Комбинация фоновых процессов и буферов памяти называется инстансом Oracle.
  • SID Системный ID Oracle (SID) используется для идентификации БД в системе. По этой причине в одной системе не может существовать больше одной БД с уникальным SID. Как правило SID задается переменной “ORACLE_SID”. Как вариант, вы можете найти этот идентификатор в первом поле (before 🙂 конфигурационного файла /etc/oratab.
  • Копия Каждый раз при открытии БД с помощью команды ALTER DATABASE OPEN RESETLOGS создается такая копия.
  • SCN Системный номер изменения (SCN) — номер в Oracle, который увеличивается последовательно с каждым изменением, вносимым в БД: вставкой, обновлением, удалением. Номер SCN также увеличивается в результате взаимодействия БД.
  • Восстановление Oracle – действие, приводящее к извлечению данных из бэкапа. После восстановления БД, возможно, потребуется вернуть ее к исходному состоянию, то есть откатить вперед до определенной контрольной точки.
  • Возвращение к исходному состоянию – это процедура обновления восстановленного файла данных с использованием архивных журналов регистрации операций «redo» и текущих журналов регистраций, то есть с применением изменений, внесенных в БД после создания бэкапа.
  • Функция Proxy Copy – это функция утилиты RMAN, которая не поддерживается текущей реализацией интерфейса SBT ПО Bacula Enterprise.

Условные обозначения

  • <SID> Значения, заключенные в скобки < > вводятся пользователями, например, <SID> необходимо заменить на текущий номер ORACLE_SID. Если ваш номер ORACLE_SID является тестовым TEST, файл, записанный как init<SID>.ora будет выглядеть как initTEST.ora.
  • % означает, что команда должна быть запущена обычным пользователем.
  • # означает, что команда должна быть запущена через учётную запись привилегированного пользователя.
  • RMAN> означает, что команда должна быть запущена внутри сессии rman.
  • SQL> означает, что команда должна быть запущена внутри сессии sqlplus.
  1. Бэкап Oracle с плагином

Выбор метода бэкапа Oracle: Дамп или утилита RMAN

В таблице ниже показаны преимущества методов восстановления бэкапов, поддерживаемые плагином Bacula Enterprise для Oracle. Чтобы выбрать тот или иной метод, руководствуйтесь такими возможностями, как возможность восстановления бэкапа Oracle до заданной контрольной точки, возможность фильтрации объектов во время резервного копирования или восстановления. Также пользователь может комбинировать методы создания дампа и использования утилиты RMAN PITR для одного кластера.

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

Функция Дамп RMAN RMAN SBT
Возможность восстановления одного объекта (таблица, схема…) Да Нет Нет
Возможность восстановления одного файла (индекс, БД, таблица…) Нет Да Да
Скорость создания бэкапа Oracle Низкая Высокая Высокая
Скорость восстановления Низкая Высокая Высокая *
Размер бэкапа Oracle Малый Большой Большой
Размер на локальном диске при создании бэкапа Ничего Весь бэкап Ничего
Размер на локальном диске при восстановлении Ничего Весь бэкап Необходимые объекты
Возможность восстановления до контрольной точки Нет Да Да
Поддержка инкрементального/дифференциального бэкапа Oracle Нет Да Да
Параллельное восстановление Да Да Да
Онлайн бэкап Oracle Да Да Да
Согласованность Да Да Да
Возможность восстановления до предыдущей основной версии Oracle Нет Нет Нет
         

Таблица 1. Способы восстановления Oracle

* При использовании интерфейса RMAN SBT скорость восстановления будет зависеть от различных элементов, таких как тип носителя (магнитная лента или диск), скорость передачи по сети, доступность устройства с демоном-хранителем, и т.д… В ПО Bacula Enterprise версии 6.4 и выше устройство с демоном-хранителем может использовать тот же том диска для множества параллельных восстановлений. Таким образом, существует возможность одновременного выполнения нескольких задач по восстановлению и резервному копированию Oracle.

Конфигурирование RMAN SBT

В данном разделе руководства пользователя описывается правильная установка и конфигурирование SBT интерфейса Bacula Enterprise с помощью Oracle и RMAN.

При создании бэкапа Oracle или запуске резервного копирования из RMAN, RMAN потребуется связаться с централизованным директором Bacula Enterprise Director для получения информации о файлах и томах, или для запуска резервного копирования или восстановления Oracle. Для установления связи потребуются общие командные файлы FIFO и b-консоль.

При использовании плагина oracle-sbt-fd, директор не сможет запустить резервное копирование Oracle из b-консоли или из расписания. Только утилита RMAN сможет инициировать сессию и запустить резервное копирование. Примите во внимание тот факт, что вы по-прежнему запускаете стандартное системное резервное копирование Oracle, а затем используйте RunScript для автоматического вызова RMAN.

Конфигурирование Bacula. При использовании интерфейса SBT необходимо установить b-консоль (консоль Bacula). Консоль должна позволять подключаться к централизованному директору и получать доступ к локальному клиенту, задаче резервного копирования Oracle и прочим характеристикам пула.

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

 

резервное копирование oracle

Рисунок 1. Бэкап Oracle при взаимодействии между RMAN и Bacula

 

Пользователь “oracle” ОС Unix должен иметь возможность отобразить b-консоль и считать соответствующий конфигурационной файл bconsole.conf, который не является конфигурацией по умолчанию. Вы можете скопировать бинарный и конфигурационный файл в папку /opt/bacula/oracle с помощью следующих команд Unix:

Важно: Возможно, после каждого обновления Bacula Enterprise вам потребуется копия бинарной b-консоли.

Выполнение параллельных задач при бэкапе БД Oracle

Чтобы запустить резервное копирование Oracle или восстановление с помощью нескольких каналов, вам необходимо гарантировать, что все необходимые ресурсы плагина бэкапа БД Oracle правильно сконфигурированы с помощью команды Maximum Concurrent Jobs, чтобы позволить выполнение параллельных задач.

  • Director: Director (ex: 100)
  • Director: Client (ex: 10)
  • Director: Job (ex: 10)
  • Director: Storage (ex: 10)
  • Storage: Storage (ex: 100)
  • Storage: Device (ex: 10 или 10 устройств, сгруппированных в виртуальный переключатель Virtual Changer)
  • Client: FileDaemon (ex: 10)

Чтобы обеспечить параллельное выполнение задач резервного копирования и восстановления с помощью одного и того же ресурса Director Storage, конфигурация должна использовать дисковод Virtual Changer. Информация об особой конфигурации изложена в технической документации Disk Backup.

Ограничения, связанные с носителями

Oracle требует, чтобы Диспетчер носителей (Media Manager) Bacula Enterprise не объединял потоки данных от двух параллельных API сессий в одном и том же последовательном устройстве. Это значит, что, если вы используете накопитель на основе магнитной ленты для бэкапа БД Oracle, вы должны использовать различные ленточные накопители для каждой параллельной задачи резервного копирования. Данное ограничение не относится к дисковым накопителям. Данное ограничение предполагает особо длительное восстановление.

Конфигурирование Bacula SBT

libobk можно сконфигурировать с помощью файла /opt/bacula/oracle/sbt.conf или /opt/ bacula/etc/sbt.conf или с помощью команды RMAN SEND. В таблице 2 приведены используемые дескрипторы:

 

Параметр Описание Пример
client Имя клиента Bacula client=oracle-fd
restoreclient Имя клиента Bacula, используемое для восстановления restoreclient=oracle-fd
job Команда b-консоли с аргументами

bconsole=»/tmp/bconsole -n»

 

restorejob Имя задачи восстановления Bacula. Если задано несколько задач восстановления в вашей конфигурации, а данный параметр не используется, плагин SBT автоматические выберет первую заданную задачу восстановления. restorejob=RestoreFiles
waitjobcompletion Ожидание завершения задачи в конце SBT сессии. По умолчанию сессия завершается как можно быстрее. Примите во внимание тот факт, что данный параметр нужно использовать только при запуске резервного копирования из утилиты RMAN. waitjobcompletion
update Тип обновления (локальный каталог). Если имя файла присутствует в локальном каталоге, плагин отвечает непосредственно RMAN не связываясь я директором Bacula Director. Используйте команду update=force, чтобы принудительно задать проверку Bacula Director. update=force
jobopt Дополнительный параметр задачи jobopt=»spooldata=no»
backupdir Папка локального каталога backupdir=/opt/bacula/oracle
ctrlfile Основной путь к управляющему файлу ctrlfile=/tmp/oracle
ctrltimeout Пауза при подключении к Bacula ctrltimeout=300
retry Количество попыток при подключении к Bacula

retry=30

 

localdir Локальная папка файла данных, который проверит SBT плагин до вызова задачи восстановления Bacula.

Localdir=/tmp/@ORACLE/sbt

 

catalog Имя каталога Bacula catalog=»MyCatalog 2»
trace Путь к файлу файл трассировки trace=/tmp/log.txt
debug Уровень отладки

debug=50

 

Таблица 2. Конфигурация SBT libobk

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

Эти настройки можно перезаписать с помощью команды RMAN SEND.

Команда SEND ограничена 512 байтами, поэтому, можно использовать несколько команд SEND, чтобы задать все параметры. Будет лучше избегать длинные пути при использовании SBT интерфейса.

Конфигурирование FileSet

Плагин бэкапа базы Oracle SBT (oracle-sbt) принимает параметры в Job FileSet, как описано в таблице 3.

Параметр Дамп Описание Пример
unix_user oracle Пользователь Unix для команд Oracle

unix_user=rob

 

ctrlfile

/opt/bacula/oracle

 

Путь к управляющему файлу, общий для плагина и утилиты RMAN.

 

Ctrlfile=/tmp/base

 

Таблица 3. Параметры плагина Oracle SBT

Тестирование конфигурации sbt.conf

Чтобы протестировать конфигурацию плагина Bacula Enterprise Oracle SBT, привилегированный пользователь может использовать следующие команды:

При возникновении ошибки подключения, появится сообщение. Пока вы не сконфигурируете правильно настройки подключения, нет смысла запускать резервное копирование Oracle RMAN.

Внутренний каталог Bacula SBT

Файл libobk ПО Bacula Enterprise использует локальный каталог для хранения информации обо всех файлах. Эта информация может устаревать. Поэтому вы можете использовать параметр update=force в файле sbt.conf или команду SEND для принудительного поиска каталога Bacula.

Каталог по умолчанию хранится в /opt/bacula/oracle/bacula-sbt.cat и может быть частью обычного бэкапа системы.

Способность сохранения бэкапа Oracle RMAN

При использовании плагина RMAN SBT Bacula Enterprise, способность сохранения бэкапа Oracle, заданная утилитой RMAN, должна соответствовать тому Bacula или сохранению задания в памяти. Когда RMAN пошлет команды на удаление файлов бэкапа, Bacula не будет пытаться что-либо очищать или удалять.

Примеры бэкапов Oracle

В следующем примере описан одновременный запуск 3 параллельных задач Bacula по созданию резервных копий. При этом утилита RMAN будет посылать в них данные, используя так называемый циклический алгоритм. Если утилита RMAN не сможет связаться с Bacula по одному или более каналам, RMAN автоматически отправит данные в доступный канал. Это значит, что, если ваше хранилище или централизованный директор заняты (ограничены количеством устройств или настройками максимального количества параллельных задач), RMAN найдет выход из положения автоматически.

В этом примере RMAN использует 3 задачи Bacula для восстановления 3 файлов.

Конфигурация режима RMAN

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

Текущая версия плагина бэкапа БД Oracle поддерживает только БД, запущенные с активным режимом ARCHIVELOG.

Конфигурация ARCHIVELOG в Oracle

Чтобы использовать режим создания бэкапов Oracle с RMAN, БД необходимо запустить в режиме ARCHIVELOG. Чтобы проверить, как сконфигурирована ваша БД, вы можете использовать следующую команду SQL.

Чтобы активировать режим архивирования для БД, вы можете использовать команду ALTER DATABASE ARCHIVELOG в состоянии SYSDBA.

  • Остановите работу БД с помощью команды SHUTDOWN
  • Создайте бэкап БД
  • Отредактируйте файл init<SID>.ora, чтобы сконфигурировать местоположение архивного журнала регистрации
  • Запустите БД не открывая с помощью команды STARTUP MOUNT
  • Измените режим архивирования с помощью команды ALTER DATABASE ARCHIVELOG; и откройте ее с помощью команды ALTER DATABASE OPEN;
  • Остановите работу БД с помощью команды SHUTDOWN IMMEDIATE
  • Еще раз создайте бэкап БД, так как изменение ARCHIVELOG обновит управляющие файлы и превратит старые бэкапы в непригодные для использования. Плагин Bacula Enterprise для Oracle создаст RMAN бэкап, помещенный во вложенную папку в месте, где находится архивный журнал регистрации, указанном в файле init<SID>.ora.

Оптимизация инкрементального бэкапа Oracle

Функция отслеживания изменений утилиты RMAN для создания инкрементальных бэкапов Oracle повышает эффективность таких бэкапов путем записи изменённых блоков в каждом файле данных в файл отслеживания изменений. Если функция отслеживания изменений активна, утилита RMAN использует файл отслеживания изменений для определения измененных блоков для создания инкрементальных бэкапов. Таким образом, отпадает необходимость в сканировании каждого блока в файле данных.

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

Следующая команда SQL, запущенная как sysdba, позволяет активировать функцию отслеживания изменений и использовать местоположение “/path/to/file” в качестве местоположения архивного журнала регистрации. (Примите во внимание тот факт, что файл должен находиться в действующей папке, в которую пользователь Oracle может записывать данные).

Способность сохранения бэкапа RMAN

При использовании режима RMAN вместе с плагином Bacula Enterprise для Oracle, каждая задача Bacula будет запускать RMAN для создания набора резервных копий. Мы рекомендуем сконфигурировать утилиту RMAN, чтобы удалять старые файлы спустя определенное время. Несмотря на то, что данную операцию можно выполнять сразу после завершения создания бэкапа, мы рекомендуем хранить данные на диске дольше, чтобы не возникали затруднения с возможностью восстановления Oracle до контрольных точек. Следующая команда поможет задать период хранения файлов Oracle равный 7 дням. Этого времени должно хватить при условии, что вы выполняете резервное копирование Oracle по меньшей мере раз в 7 дней.

Более подробную информацию вы найдете в руководстве к утилите RMAN

docs.oracle.com/cd/B28359_01/backup.111/b28270/rcmconfb.htm#i1019318

Конфигурирование плагина Oracle для RMAN

В случае использования функции PITR восстановления утилиты RMAN, плагин Bacula для Oracle потребует активации режима Accurate. Вы должны активировать режим Accurate в ресурсе задачи. Примите во внимание факт, что в сочетании с плагином, функция Accurate используется для того, чтобы гарантировать, что все новые файлы, будут сохраняться плагином Bacula, но не будут помечаться как удаленные, поскольку, скорее всего, они могут еще пригодиться.

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

Параметр Описание По умолчанию Пример
mode Необходимо активировать PITR бэкап в режиме RMAN Дамп mode=rman
Oracle_user Привилегированный пользователь Unix Oracle oracle oracle_user=oracle10
sid Oracle SID   SID=XE
Oracle_SID Oracle SID   Oracle_SID=XE
Oracle_HOME Oracle HOME   ORACLE_HOME=/opt/oracle/…
verbose Вывод RMAN отображается как 0 в задаче   verbose=1
sbt[1] Использование SBT в RMAN   sbt
ctrlfile Основной путь к управляющим файлам при использовании SBT   ctrlfile=/tmp/oracle
       

Таблица 4. Параметры плагина для Oracle в режиме RMAN

[1] Параметр SBT доступен в Bacula Enterprise версии 6.4.3 и выше

Ограничения, касающиеся расписания в режиме RMAN

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

Другой способ предполагает конфигурирование политики RMAN Retention Policy таким образом, чтобы она включала предыдущие архивные журналы регистрации. Например:

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

Настройка скриптов RMAN

Плагин Bacula Enterprise для Oracle позволяет настраивать скрипты для создания бэкапов RMAN путем создания специального файла в /opt/bacula/etc:

  • rman
  • rman
  • rman

Вы также можете добавить в эти файлы специальные действия:

В данном примере, плагин Bacula Enterprise для Oracle включит бэкап всех архивных журналов регистраций, созданных за последние два дня. Данное действие позволит вам устранить все пробелы между последним инкрементальным бэкапом и текущим полным бэкапом (смотрите раздел 1.3.5). Если сконфигурируете политику сохранения Retention Policy, полный бэкап автоматически включит архивные журналы, созданные в промежутке между бэкапами, резервная копия которых не создавалась.

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

В данном примере, бэкап с использованием RMAN исключит два табличных пространства “cwmlite” и “example”[1]. Данные настройки сохраняются в конфигурации RMAN и будут использоваться во всех сессиях с участием RMAN.

Важно: Вы не можете изменить конфигурацию дисковода, в противном случае вы сбросите предыдущую конфигурацию, созданную Bacula, и прервете выполнение задачи.

Конфигурация дампа

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

[1] Чтобы отменить исключение, используйте команду CONFIGURE EXCLUDE FOR TABLESPACE cwmlite CLEAR;

В данном примере, плагин определит бэкап всех БД на сервере. Инстансы будут определены с помощью информации, содержащейся в /etc/oratab. Вы также можете задать параметры ORACLE_HOME и ORACLE_SID в командной строке плагина.

В примере выше, плагин создаст бэкап баз данных bacula и master.

В режиме дампа, плагин для Oracle также допускает использование дополнительных параметров, задаваемых через командную строку плагина. Смотрите таблицу ниже:

Параметр По умолчанию Описание Пример
mode Дамп Сконфигурируйте метод создания бэкапа с помощью плагина mode=dump
dump_opt CONSISTENT=Y GRANTS=y Эта строка будет передана в команду экспорта dump_opt=»»
unix_user oracle Пользователь Unix для запуска команд Oracle unix_user=rob
oracle _user / as sysdba Пользователь Oracle для запуска команд Oracle

oracle_user=”scott/tiger”

 

use_sudo   Используйте команду “sudo” вместо запуска команд Oracle use_sudo
compress Y Использование сжатия при экспорте Да/Нет

compress=N

 

schema   Создание бэкапа схемы, соответствующей данной строке

schema=PROD*

 

instance   Создание бэкапа инстансов (SID), соответствующих данной строке

instance =PROD*

 

sid   Инстанс (SID) бэкапа sid=PROD
Oracle_HOME   Oracle HOME используется с sid ORACLE_HOME=/ora
       

Таблица 5. Параметры плагина для Oracle в режиме дампа

В данном примере, плагин для бэкапа Oracle будет использовать аккаунт Unix с именем “rob” для выполнения дампа бэкапа таблицы под названием “temp”. Плагин для резервного копирования Oracle должен «понимать», что аккаунт “rob” является участником группы администратора БД Unix, чтобы получить прямой доступ к Oracle с помощью параметра “/ as sydba”.

Проверка доступа к БД

Вы можете использовать команду estimate для проверки правильности конфигурации плагина для Oracle.

Примите во внимание факт, что все файлы, бэкап которых был создан с помощью плагина Bacula для Oracle, находятся в псевдо каталоге с именем /@ORACLE/.

Чтобы использовать sudo оболочку, необходимо прокомментировать:

поставив знак # перед выражением в файле /etc/sudoers.

Оценка информации с помощью команды estimate

Команда estimate отобразит всю информацию, найденную плагином для Oracle. Примите во внимание факт, что в режиме дампа, плагин Bacula не сможет рассчитать размер дампа для БД и отобразит значение 1. В режиме RMAN PITR плагин Bacula не будет использовать RMAN для создания набора резервных копий, поэтому он отобразит лишь системные файлы и область пакетного восстановления.

Бэкап файлов в режиме RMAN

В режиме RMAN плагин Bacula Enterprise для Oracle не будет создавать каталог в псевдо каталог с именем /@ORACLE/, а создаст его в исходном месте. Например:

Плагин также создаст некоторые дополнительные файлы на случай возникновения аварийной ситуации. К таким файлам, например, относятся datafiles.txt или logfiles.txt (смотрите таблицу 6).

Файл Описание
dbid.txt ID БД текущего инстанса
tnsname.ora Бэкап ORACLE_HOME/network/admin/tnsname.ora
control<SID>.txt Последний управляющий файл, созданный после бэкапа
init<SID>.ora Файл параметров для текущего инстанса
last_control_file Файл, содержащий имя последнего бэкапа управляющего файла
datafiles.txt Список всех файлов данных
logfiles.txt Список всех лог-файлов
tempfiles.txt Список всех временных файлов
restore_query_file.txt Специальный файл, необходимый для автоматического восстановления
orpw<SID> Файл с паролем для текущего инстанса
c-0000-YYYYMMDD-00 Управляющий файл
9tncsu2b_1_1 Набор резервных копий

Таблица 6. Файлы, создаваемые во время создания бэкапа с использованием RMAN

Уровни бэкапов RMAN

Согласно определению Bacula Enterprise, задачи могут иметь различные уровни:

Full (полный бэкап) Бэкап, включающий все файлы. Он соответствует уровню INCREMENTAL LEVEL 0 RMAN. Этот уровень позволит утилите RMAN создавать последующие инкрементальные бэкапы.

Incremental (инкрементальный бэкап) Бэкап, включающий все файлы, измененные с момента запуска последнего полного, дифференциального или инкрементального бэкапа. Соответствует уровню INCREMENTAL LEVEL 1 или INCREMENTAL FROM SCN RMAN. В зависимости от текущего состояния каталога RMAN, Bacula выберет тот или иной уровень, основываясь на последовательности номера SCN.

Differential (дифференциальный бэкап) Бэкап, включающий все файлы, измененные с момента запуска последнего полного бэкапа. Соответствует уровню INCREMENTAL LEVEL 1 CUMULATIVE RMAN.

Пример результата выполнения задачи резервного копирования Oracle

Плагин Bacula Enterprise для Oracle в качестве результата выполнения задачи отобразит полный результат выполнения команды RMAN.

бэкап oracle

Резервная информация в режиме дампа

Плагин для Oracle создаст следующие файлы для главного инстанса MAIN, у которого есть одна БД “test”.

 

Файл Контекст Описание
users.sql глобальный Список пользователей, их паролей, специальных парметров
datafiles.txt глобальный Список файлов данных, только для справки
tempfiles.txt глобальный Список временных файлов данных, только для справки
logfiles.txt глобальный Список лог-файлов данных, только для справки
tnsnames.ora глобальный Содержимое tnsnames.ora
listener.ora глобальный Содержимое файла конфигурации обработчика запросов
orapw<SID> глобальный Файл с паролем для текущего инстанса
init.ora глобальный Файл конфигурации Oracle
user.sql схема Определение схемы с информацией о параметрах GRANT, PASSWORD, …
data.dmp схема Данные БД в формате экспорта, содержит все необходимое для восстановления
tables.sql схема Определение таблиц и индексов в формате SQL

 

Сценарии восстановления Oracle

Перед тем, как запустить процедуру восстановления Oracle или возврата к исходному состоянию, мы настоятельно рекомендуем создать резервную копию вашей БД.

Восстановление с помощью инстанса RMAN SBT

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

В примере выше, RMAN восстановит БД до определенной контрольной точки, заданной командой UNTIL. Более подробную информацию вы найдете в документации к Oracle RMAN.

docs.oracle.com/cd/B28359_01/server.111/b28294/rman.htm#i1024051

Если вы восстанавливаете файлы с помощью RMAN в локальный каталог, а параметр localdir определен в файле sbt.conf, плагин RMAN выполнит поиск каталога localdir перед тем, как запустить сессию восстановления с помощью Bacula. Если запрашиваемый файл будет найден, RMAN сможет использовать его напрямую.

Восстановление Oracle с помощью RMAN и bs_oracle_restore.pl

После того, как вы восстановите содержимое бэкапа RMAN в вашу систему (Рис. 2), используя b-консоль и команду restore, или BAT/BWeb, плагин Bacula Enterprise для Oracle позволит вам автоматизировать некоторые операции RMAN с помощью оболочки под названием bs_oracle_restore.pl. Этот скрипт управляется с помощью меню и позволяет:

  • Восстанавливать исходную БД Oracle до определенной контрольной точки
  • Клонировать БД, неважна доступна ли она все еще или нет (опция в режиме бета-тестирования)

Как только вы восстановите содержимое бэкапа до заданной контрольной точки, вы должны будете запустить скрипт bs_oracle_restore.pl с помощью файла restore_query_file.txt в качестве аргумента.

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

В следующем примере вы найдете файл с именем restore_query_file.txt в каталоге, в который вы восстановили файлы с помощью плагина Bacula. Если ваш бэкап находился в /u01/flash/Test.2012-06-06_12-00-00, и вы восстановили его с помощью where=/tmp, файл restore_query_file.txt должен находиться в /tmp/u01/flash/Test.2012-06-06_12-00-00/restore_query_file.txt

восстановление oracle

Рис. 2 Выбор файла RMAN при восстановлении с использованием BWeb

 

Скрипт восстановления Oracle можно вызвать вместе с функцией тестирования, чтобы получить доступ к процедурам восстановления, которые в настоящий момент тестируются Bacula Systems.

Восстановление БД Oracle до контрольной точки (Восстановление PITR)

RMAN может выполнять восстановление всей БД до конкретного указанного момента во времени, номера SCN, или регистрационного номера транзакции в журнале. Данный тип восстановления иногда называют неполным восстановлением, так как в результате восстановления утилита не использует не всю доступную информацию журналов регистрации операций «redo».

Оболочка восстановления bs_oracle_restore.pl определит из файлов, восстановленных с помощью Bacula Enterprise, параметры, которые вы сможете использовать во время восстановления БД до исходного состояния.

Оболочка bs_oracle_restore.pl просканирует каталог резервных копий, а затем определит нужную копию, чтобы восстановить файлы нужным образом. В конце процесса восстановления БД должна иметь статус “OPEN”. Оболочка bs_oracle_restore.pl все шаги, необходимые для восстановления БД. Если вы знакомы с работой утилиты RMAN, вы, возможно, захотите выполнить эти действия вручную.

Использование скрипта bs_oracle_restore.pl без первоначального восстановления БД В некоторых случаях, резервные копии, созданные с помощью RMAN, все еще храняться на диске. Вы можете пропустить восстановление с помощью плагина Bacula и напрямую запустить скрипт bs_oracle_restore.pl script. Для этого, воспользуйтесь параметром -D и контрольной точкой, указывающей на область пакетного восстановления, в которой находятся файлы, сгенерированные во время создания последнего бэкапа.

Прямое восстановление Oracle с помощью RMAN

Как только вы восстановите ваши файлы с помощью плагина Bacula, вам необходимо будет просканировать каталог резервных копий, чтобы включить файлы в каталог RMAN.

Затем, вам следует зарегистрировать все бэкапы. Вы можете перечислить их с помощью:

Примите во внимание тот факт, что команда LIST BACKUP может отображать информацию о конкретных объектах, таких как:

  • Архивный журнал регистрации
  • Файлы данных
  • Управляющие файлы…

Чтобы запустить процесс восстановления, БД должна иметь статус «открытой».

Затем вы можете задать условие UNTIL и начать восстановление.

Утилита RMAN является очень эффективным инструментом со множеством функций. Более подробная информация доступна в документации по RMAN, доступной по адресу docs.oracle.com

Восстановление Oracle с использованием дампа

Восстановление пользователя Чтобы восстановить пользователя/схему в инстанс Oracle, вам необходимо выбрать файл users.sql, расположенный в /@ORACLE/<SID>/users.sql.

Затем, используя where=/ или where= плагин загрузит этот SQL файл в вашу БД. Если некоторые роли уже существуют, появится сообщение об ошибке в журнале регистрации заданий. Также можно восстановить файл users.sql file в локальный каталог, отредактировать и загрузить его с помощью sqlplus, чтобы восстановить любую выбранную часть файла.

Восстановление одной БД Чтобы восстановить одну схему с помощью плагина Bacula Enterprise для Oracle, вам необходимо выбрать схему каталога во время команды восстановления, выбор должен содержать файл данных (data.dmp) и скрипт создания схемы (user.sql).

Рис. 3 Содержимое БД с дампом в BWeb

Как только будет выбран каталог БД, вы сможете использовать параметр where для восстановления схемы в новую схему с другим именем. Чтобы создать новое имя схемы, вам нужно приравнять параметр where к одному слову, которое содержит символы A..Z, 0-9, и _. Затем плагин Bacula создаст указанную схему и восстановит в нее данные.

Мы рекомендуем вам всегда использовать в названии схем заглавные буквы. Плагин Bacula Enterprise для Oracle воссоздаст новую схему, используя имя, которое вы указали в параметре where=. Если вы будете использовать заглавные и строчные буквы в имени, может возникнуть ситуация, при которой вам придется заключить имя схемы в кавычки, чтобы получить к ней доступ.

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

Если вы зададите параметр, равный never, плагин Bacula проверит список схем и прервет задачу, если текущая восстанавливаемая схема уже существует.

Не рекомендуется использовать replace=always, так как функция может перезаписать существующий файл.

Если параметр where – это каталог (содержащий /), плагин Bacula восстановит все файлы в этот каталог. Таким образом вы сможете использовать каталог imp и восстановить только триггеры, таблицы, индексы и т.д.

Восстановление одной таблицы Чтобы восстановить один объект, например, таблицу из созданного вами дампа, вам необходимо сначала восстановить дамп файл в локальный каталог. Затем с помощью инструмента imp импортировать нужный объект. Более подробную информацию вы найдете в документации по импорту объектов в Oracle.

Восстановление дамп файлов в каталог Чтобы восстановить SQL дампы в каталог, вы можете назначить параметру where любой действующий каталог.

Процесс восстановления плагина Bacula создаст следующие папки при восстановлении схемы SYS в Oracle SID XE, и восстановит в нее выбранные файлы.

Восстановление всей БД Чтобы восстановить все БД и конфигурации БД, просто восстановите все файлы, расположенные в /@ORACLE/<service>, используте replace=always и where=/.

Ограничения бэкапа Oracle

Плагины по умолчанию не совместимы с задачами Copy/Migration/VirtualFull.