Читайте, с помощью каких инструментов можно создать бэкап или восстановить утерянную базу 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;
Все происходит без ошибок. НО! Если я выполняю шаг 2 (удаляю файлы из onlinelog), то таблица BIG_TABLE возвращается. Если же делаю те же самые шаги, но без пункта 2., то таблицы у вновь открытой базы по прежнему нет. Почему так происходит? Как восстановить backup не удаляя вручную файлы? (странная штука).