Читайте, с помощью каких инструментов можно создать бэкап или восстановить утерянную базу Oracle Database. Рассмотрим как встроенные в базу инструменты так и сторонние приложения. Oracle Database хранит все файлы созданной базы в файлах данных. Часто, для восстановления данных определённой базы, достаточно восстановить её файлы данных и импортировать их в Oracle Database.

Структура базы данных Oracle Database


В процессе работы экземпляр базы данных Oracle Database использует несколько групп файлов, которые следует архивировать для последующего восстановления. Это:

Файлы данных и табличных пространств (*.DBF).

Название файлов данных и табличных пространств, а также пути к ним можно посмотреть с помощью SQL Plus если выполнить следующий запрос:

SELECT t.name “Tablespace”, f.name “Datafile” FROM v$tablespace t, v$datafile f WHERE t.ts# = f.ts# ORDER BY t.name;

В результате работы этого запроса получится подобный отчет:

Файлы конфигурации базы данных (*.ora).

Конфигурационные файлы базы данных Oracle имеют расширение *.ora и расположены в папке:
C:oraclexeapporacleproduct11.2.0serverdbs

Управляющие файлы базы данных (*.DBF).

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

Также, чтобы определить названия и пути к управляющим файлам в SQL Plus необходимо выполнить запрос:

SELECT value FROM v$parameter WHERE name = ‘control_files’;

Файлы журналов транзакций (*.LOG).

Чтобы узнать имена онлайновых журналов транзакций и пути к ним, необходимо в SQL Plus выполнить следующий запрос:

SELECT member FROM v$logfile;

В результате работы этого запроса получится подобный отчет:

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

SELECT destination FROM v$archive_dest where status=’VALID’;

В результате работы этого запроса получится отчет:

Как правило, это файлы с расширением *.ora, имя которых начинается с символов PWD.
Например: PWDXE.ora

Итак, для сохранения, архивирования или бэкапа базы данных Oracle Database, копии именно указанных групп файлов следует создавать, а это:

  • *.DBF – файлы данных, табличных пространств и управляющие файлы базы данных. Расположены:
    C:oraclexeapporacleoradataXE
  • *.ora – файлы конфигурации базы данных и файлы паролей.
    Файлы конфигурации:
    C:oraclexeapporacleproduct11.2.0serverdbs
    Файлы паролей (PW…ora):
    C:oraclexeapporacleproduct11.2.0serverdatabase
  • *.LOG – файлы журналов транзакций:
    C:oraclexeapporaclefast_recovery_areaXEONLINELOG

где, ХЕ – это название базы данных в нашем случае.

Резервная копия базы данных Oracle Database

Резервную копию базы данных Oracle Database можно создать двумя способами:

  • Архивации средствами операционной системы.
  • Используя встроенные инструменты Oracle Application Express – Import / Export.

Архивация средствами операционной системы

Архивация средствами операционной системы подразумевает «ручное» копирование всех рабочих файлов базы данных, таких как:

  • Файлы табличных пространств.
  • Управляющие файлы.
  • Файлы журналов транзакций.
  • Файлы конфигурации.

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

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

Архивация и восстановление при помощи инструментов Export / Import

Архивацию и восстановление базы данных Oracle Database можно производить с помощью стандартных механизмов Экспорта и Импорта в Oracle. Для повышения надежности сохранности данных необходимо периодически, в зависимости от интенсивности работы с базой, производить полный экспорт. При достаточно интенсивном внесении изменений в данные, необходимо делать экспорт один раз в неделю.

Откройте Oracle Application Express и выберите меню Application Builder / Export

Укажите тип экспорта: рабочее пространство полностью или одну из его составляющих

Установите формат файла для экспорта данных и нажмите кнопку Export Workspace (справа)

После указания места сохранения файла экспорта данных, они будут сохранены в SQL-файле.

Импорт файла, созданного раннее архива, осуществляется аналогичным образом:

Откройте Oracle Application Express и выберите меню Application Builder / Import

Выберите файл для импорта и укажите его тип

Установите импортированную базу данных

Восстановление утерянной базы данных Oracle Database

В случае удаления или утери по какой-то из причин базы данных Oracle Database, её можно восстановить, восстановив файлы с помощью Hetman Partition Recovery и восстановить их способом, описанном в разделе «Архивация средствами операционной системы».

Запустите Hetman Partition Recovery и проанализируйте с её помощью диск на котором находилась база данных

Дождитесь окончания процесса анализа и перейдите с помощью программы в папку с необходимыми файлами базы Oracle Database

Замените файлы базы Oracle Database на восстановленные.

Для примера, восстановления файлов базы данных описан процесс восстановления файлов *.DBF. Но учтите, что для восстановления всех данных работоспособной базы, также необходимо восстановить соответствующие *.ORA и *.LOG файлы.

Резервирование и восстановление базы данных с помощью Oracle Recovery Manager (RMAN)

Oracle Recovery Manager (RMAN) – это ещё один инструмент создания резервной копии базы данных Oracle Database. Отличается он от других инструментов тем, что с его помощью создаётся полная копия всей базы данных, а не только данных из неё. А также, что немаловажно, Oracle Recovery Manager совмещает в себе функциональность SQL Command Line одновременно освобождая пользователя от полной зависимости от её команд. Устанавливается данный инструмент на компьютер одновременно и вместе с установкой Oracle Database.

Чтобы создать резервную копию базы с помощью Oracle Recovery Manager (RMAN):

Запустите файл Backup.bat в папке
C:oraclexeapporacleproduct11.2.0serverin

или выберите Backup Database среди приложений в меню Пуск

Дождитесь окончания выполнения бэкапа базы данных инструментом RMAN

В результате в папке с названием даты создания резервной копии базы будет создан файл бэкапа с расширением *.BKP

Чтобы восстановить базу данных из резервной копии базы с помощью Oracle Recovery Manager (RMAN):

Запустите файл Restore.bat в папке
C:oraclexeapporacleproduct11.2.0serverin

или выберите Restore Database среди приложений в меню Пуск

Дождитесь окончания выполнения базы данных из созданного раннее бэкапа инструментом RMAN

К слову, в случае утери или удаления файла бэкапа базы данных Oracle Database, *.BKP файл бэкапа можно также восстановить с помощью Hetman Partition Recovery, после чего восстановить описанным выше способом в базе данных используя Oracle Recovery Manager (RMAN).

Похожие статьи

  • Как восстановить повреждённую или удалённую базу 1С (на примере «1С: Предприятие 8.3»)В статье показаны способы восстановления базы 1С с помощью встроенных в программу инструментов или сторонних приложений. Как создать и восстановить резервную копию базы данных. Для большинства пользователей продуктов компании 1С, повреждение или у.
  • Ошибка INACCESSIBLE BOOT DEVICE в Windows 10, 8, 7Читайте о причинах возникновения ошибки INACCESSIBLE BOOT DEVICE, а также о том, как её исправить. Ошибка INACCESSIBLE BOOT DEVICE является одной из критичных BSOD ошибок операционной системы Windows. Существует несколько причин появления этой ош.
  • Как удалить вирус, создающий ярлыки файлов и папок на флешке, карте памяти или USB дискеЧитайте, как удалить вирус преобразующий файлы и папки в ярлыки. Как восстановить данные, которые утеряны в результате деятельности такого вируса. Ваши файлы и папки на USB флешке или карте памяти стали ярлыками? USB флешка или карта памяти после .
  • Как восстановить MySQL Root парольВ данной статье рассмотрим способ восстановления MySQL root пароля, путём сброса старого и установки нового, в случае если старый пароль утерян или забыт. Забыли пароль MySQL root пользователя? Не беспокойтесь, его можно восстановить. Подключаясь .
  • Как восстановить файлы с зашифрованного диска TrueCrypt или VeraCrypt?Читайте, как восстановить удаленные файлы с контейнера TrueCrypt или VeraCrypt, как смонтировать и разблокировать зашифрованный диск для доступа к файлам. Если вы ищете простой и эффективный способ зашифровать все данные компьютера начиная от сист.

Partition Recovery™

Надежное возвращение удаленных данных.

Универсальная программа для восстановления данных с жесткого диска, карты памяти или USB флешки.

Internet Spy™

Просмотр истории браузеров и сохраненных паролей.

Сканирует файлы браузеров и отображает информацию о проведенном в Интернете времени.

Office Recovery™

Восстановление удаленных офисных документов.

Безопасное восстановление документов, электронных таблиц, презентаций в пошаговом режиме.

Из Самары обратился заказчик, с жалобой на появившуюся при запуске БД Oracle, ошибку, которая возникла после отключения электропитания.

Для восстановления базы данных Оракл надо понимать устройство её структуры. В общем приближении БД Oracle состоит из табличных файлов, логов транзакций, которые описывают все изменения и т.н. контрол-файлов (контролей), которые хоть и не являются критически важными, но их корректное содержимое участвует при сборке базы на старте. В случае возникновения Power Loss, создаётся некий Chekpoint, отражённый в REDO.LOG, который при повторном включении БД можно закоммитить (commit).

Как обычно, оборудование было под надзором мега-сисадмина, а значит всё крайне запущено. Данные хранились на Raid массиве Raid 1 (mirror) состоящем из двух дисков, но на момент инцидента один диск уже давным давно был поломан, и в массиве не участвовал.

Перебои с электричеством были не редкостью, свет моргал часто, сервер ребутился и продолжал работу. Но серверное железо было настолько старым, что в момент очередного power loss у рэйд контроллера сдохла батарейка и в результате не закрылся лог-файл, что после запуска системы и привело к возникновению ошибки «CTRL-1 inconsistent with file CTRL-2».

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

Получив диски на анализ, начали разбираться что к чему. Сразу смутили даты работы с файлами:

Обращаем внимание на CTL, DBF и LOG файлы.

Саму базу использовала оболочка Petrol (Петрол) — отечественная программа, которая ведёт учёт транзакций по топливным картам и картам лояльности на бензоколонках, что-то типа CRM для АЗС. Эта оболочка работает с Оракулом, который собственно и осуществляет взаимодействие интерфейсной части с базой данных.

Первым делом попытались официально обратиться в саппорт ПО Petrol, для получения сведений об особенностях работы базы и ПО, какие таблицы критичны для работы системы и т.п.. Но там сразу спросили, платил ли пользователь ПО за поддержку? Как казалось, жидокабры из Петрола просят роялти 3 рубля с проданного литра! Учитывая что маржинальность АЗС не намного выше, от такого щедрого предложения пользователь отказался давным-давно и в официальной поддержке было отказано.

По своим каналам вышли напрямую на программиста, из команды разработчиков. От него получили дистрибутив и ответы на вопросы об особенностях структуры базы данных, таблиц и т.п.

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

Отыскав старое железо и добившись по персональному запросу от Оракла старого дистрибутива, который уже давно не лежит на оф. сайте собрали ПК, поставили Win2003Srv, но не смотря на полученные дистрибутивы от Петрола с пол-пинка всё это добро не заработало. Ресёрч показал, что решить задачу с установкой новой версии можно, но сложность работ сильно возрастёт и, самое главное, кратно возрастут сроки выполнения, а они и так уже «горели».

Оставалось одно: добиваться запуска родной серверной операционки, что и было в итоге сделано. Далее разобрали файлы базы на отдельные таблицы. Часть таблиц оказалась повреждена, и довольно быстро выяснилось — почему. Сисадмины не смогли настроить антивирус, который не давал работать софту, поэтому не заморачиваясь, антивирь заблочили. Сервер нахватал троянов которые побили часть таблиц.

Самое весёлое, что сервак работал на статическом IP, и будучи вусмерть дырявым, давал доступ к базам, откуда любой толковый школьник мог получить данные, среди сотен существующих клиентов приклеить своего “левого”, вписать в его учётку выдуманную топливную карту, пин-код, начислить на карту цистерну солярки и заправляться в своё удовольствие.

Далее, ручными запросами (никакой скрипт не давал нужной гибкости управления процессами) типа:

с использованием опции _allow_resetlogs_corruption из повреждённых табличных пространств экспортировали нужные данные а потом так же, руками, проводилась сборка методом импорта во вновь созданные таблицы.

На достаточно мощной железке и SSD процесс сборки занял порядка 7-8 часов машинного времени. Полученные таблицы подсунули в Oracle и по итогам получили работающую на нашем железе операционку и софт. Для облегчения заказчику процесса переезда восстановленной базы Oracle на новую отказоустойчивую систему результат так и передали, вместе с собранным системником. Пример отчёта который Петрол формирует, основываясь на данных, которые содержатся в базе, для демонстрации работоспособности, перед оплатой.

Читать так же:

Флешка Smartbuy или Silicon Power определяется как 2270 pram USB

Процесс восстановления файлов с флешек Smartbuy или Silicon Power если они определяются в системе как 2270 PRAM USB

Новые съёмники голов для HDD и экстракторы дисков-пластин

Прибыла партия оборудования для улучшения технических возможностей нашей лаборатории. Съёмники голов для свежих HDD, оборудование для осмотра и чистки пластин, боксы хранения БМГ и многое другое.

Имеется Oracle XE, работает в режиме noarchivelog, сделал backup базы с помощью

rman> backup database;

На момент создания backup у меня была таблица SCOTT.BIG_TABLE

Далее удаляю таблицу drop table big_table; И опишу шаги восстановления:

    rman> shutdown immediate;

удаляю два файла:

rman> startup mount;

  • rman> restore database;
  • rman> recover database;
  • rman> alter database open resetlogs;
  • Все происходит без ошибок. НО! Если я выполняю шаг 2 (удаляю файлы из onlinelog), то таблица BIG_TABLE возвращается. Если же делаю те же самые шаги, но без пункта 2., то таблицы у вновь открытой базы по прежнему нет. Почему так происходит? Как восстановить backup не удаляя вручную файлы? (странная штука).