Резервне копіювання та відновлення даних бази Oracle Database
Oracle Database зберігає всі файли створеної бази в файлах даних. Незважаючи на те, що всі дані логічно містяться в табличних просторах, фактично вони є вмістом файлів на жорсткому диску комп’ютера. Так, кожна таблиця бази даних зберігається у вигляді рядків конкретного файлу даних. Часто, для відновлення даних певної бази, достатньо відновити її файли даних і імпортувати їх в Oracle Database.
- Структура бази даних Oracle Database
- Резервна копія бази даних Oracle Database
- Відновлення втраченої бази даних Oracle Database
- Резервування і відновлення бази даних за допомогою Oracle Recovery Manager (RMAN)
- Питання та відповіді
- Коментарі
Структура бази даних 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:\oraclexe\app\oracle\product\11.2.0\server\dbs -
Контрольні файли бази даних (*.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)
Як правило, це файли з розширенням *.ora, ім'я яких починається з символів PWD.
Наприклад: PWDXE.oraШлях: C:\oraclexe\app\oracle\product\11.2.0\server\database
Отже, для збереження, архівування або бекапа бази даних Oracle Database, копії саме зазначених груп файлів слід створювати, а це:
-
*.DBF - файли даних, табличних просторів та керуючі файли бази даних. Вони розташовані:
C:\oraclexe\app\oracle\oradata\XE -
*.ora – файли конфігурації бази даних та файли паролів.
Файли конфигурації:
C:\oraclexe\app\oracle\product\11.2.0\server\dbs
Файли паролів (PW…ora):
C:\oraclexe\app\oracle\product\11.2.0\server\database -
*.LOG – файли журналів транзакцій:
C:\oraclexe\app\oracle\fast_recovery_area\XE\ONLINELOG
де, ХЕ – це назва бази даних, в нашому випадку.
Характеристика | Опис |
---|---|
Формат | .DBF (dBASE) |
Типи даних | Числа, текст, дати, логічні значення |
Максимальна кількість полів | Залежить від версії формату. Наприклад, у dBASE IV - до 255 полів |
Розмір запису | Зазвичай фіксований для кожного запису і визначається кількістю полів і їх розмірами |
Розмір файлу | Залежить від кількості записів та полів. Зазвичай файли невеликі, до кількох мегабайт |
Заголовок файлу | Містить метадані: кількість записів, структуру таблиці (поля), дату та інші параметри |
Типи полів |
- **Character**: Текстові поля (рядки) - **Numeric**: Числові поля - **Date**: Датовані поля - **Logical**: Логічні значення (TRUE/FALSE) |
Сумісність | Підтримується багатьма програмами, зокрема різними СУБД, такими як MySQL, PostgreSQL, LibreOffice Calc, Microsoft Access |
Програмне забезпечення | dBASE, FoxPro, Clipper, Excel, LibreOffice, DBF Viewer, Access |
Структура заголовка | Заголовок складається з 32 байт, які містять інформацію про кількість полів, типи полів, кількість записів тощо |
Кодування | Зазвичай використовується ASCII або різні кодування, зокрема для підтримки локалізацій |
Розширення файлів | Зазвичай один файл має розширення `.DBF`, але можуть бути пов'язані додаткові файли, наприклад, `.MDX` для індексів |
Додаткові файли | Індексні файли (наприклад, `.NDX` або `.MDX`), які зберігають індекси для швидкого доступу до даних |
Резервна копія бази даних Oracle Database
Резервну копію бази даних Oracle Database можна створити двома способами:
- Архівації засобами операційної системи.
- Використовуючи вбудовані інструменти Oracle Application Express – Import / Export.
Спосіб 1. Архівація засобами операційної системи
Архівація засобами операційної системи має на увазі «ручне» копіювання всіх робочих файлів бази даних, таких як:
- Файли табличних просторів.
- Управляючі файли.
- Файли журналів транзакцій.
- Файли конфігурації.
В даному випадку, процес архівації полягає в простому копіюванні керуючих файлів, файлів табличних просторів, конфігурації, архівних журналів транзакцій в резервну директорію або на резервний сервер. Архівація проводиться при зупиненому екземплярі бази даних, при цьому робота користувачів з нею неможлива.
Для відновлення пошкодженої при збої бази даних, її необхідно зупинити і переписати резервні копії робочих файлів і журналів транзакцій на колишнє місце.
Спосіб 2. Копіювання та відновлення за допомогою інструментів 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:\oraclexe\app\oracle\product\11.2.0\server\binабо виберіть Backup Database серед додатків в меню Пуск
-
Дочекайтесь закінчення виконання бекапа бази даних інструментом RMAN
-
В результаті, в папці з назвою дати створення резервної копії бази, буде створений файл бекапа з розширенням *.BKP
Щоб відновити базу даних з резервної копії за допомогою Oracle Recovery Manager (RMAN):
-
Запустіть файл Restore.bat в папці
C:\oraclexe\app\oracle\product\11.2.0\server\binабо виберіть Restore Database серед додатків в меню Пуск
-
Дочекайтесь закінчення виконання бази даних зі створеного раніше бекапа інструментом RMAN
До речі, у разі втрати або видалення файлу бекапа бази даних Oracle Database, *.BKP файл бекапа можна також відновити за допомогою Hetman Partition Recovery, після чого відновити описаним вище способом в базі даних використовуючи Oracle Recovery Manager (RMAN).
Причини втрати даних в базах даних Oracle можуть бути різні. Основні з них:
1. Помилки користувача. Такі помилки, як невірне заповнення форми, неправильне видалення рядків та стовпців, а також неправильне змінення структури таблиць, можуть призвести до втрати даних.
2. Аварійне завершення сеансу. Непередбачуване завершення сеансу, також, може призвести до втрати даних.
3. Аварія сервера. Аварія сервера, яка може бути спричинена шкодоносними програмами, спотворенням системи тощо, також може призвести до втрати даних.
4. Помилки системи. Помилки системи, які стосуються Oracle, також можуть призвести до втрати даних.
Щоб уникнути такої ситуації, слід:
1. Слідкуйте за помилками, які стосуються Oracle.
2. Зробіть резервну копію своєї бази даних.
3. Налаштуйте Oracle Database Vault, щоб уникнути недопустимого доступу.
4. Встановіть Oracle Audit Vault, щоб слідкувати за рухом даних.
5. Використовуйте Oracle Data Guard, щоб створити резервну копію.
Відновлення баз даних Oracle з резервних копій може відбуватися за допомогою наступних кроків:
1. Запустіть режим рекавері Oracle.
2. Створіть резервну копію поточної бази даних.
3. Завантажте резервну копію бази даних.
4. Запустіть процес реконструкції бази даних.
5. Запустіть скрипт, який примусово змінить статус бази даних у «відкрито».
6. Завершено!
1. Створення резервної копії бази даних.
2. Перевірка резервної копії.
3. Відновлення резервної копії.
4. Оновлення структури бази даних.
5. Оновлення даних у резервній копії.
6. Аудит результатів резервного копіювання.
1. Повне копіювання: Цей тип копіювання бази даних включає всі файли, які створені для бази даних, включаючи системні та допоміжні файли.
2. Часткове копіювання: Цей тип копіювання бази даних включає тільки деякі файли, які створені для бази даних, такі як таблиць, індекси, тригери, структури, дані та процедури.
3. Роздільне копіювання: Цей тип копіювання бази даних включає тільки один тип файлу, який може бути створений для бази даних.
4. Архівування: Цей тип копіювання бази даних включає створення структурованого середовища, яке може бути використано для резервного копіювання.
1. Забезпечення повної резервної копії бази даних.
2. Забезпечення можливості відновлення бази даних з резервної копії.
3. Забезпечення можливості відновлення транзакцій, які були виконані після останньої резервної копії.
4. Забезпечення можливості відновлення бази даних до будь-якого раніше заданого часу.
5. Забезпечення структури резервних копій, яка дозволяє створити резервну копію та відновити точку відкату.
6. Забезпечення можливості автоматизованого резервування та відновлення.
7. Забезпечення регулярності резервування та використання сумісних технологій.