Резервне копіювання та відновлення даних бази Oracle Database. Універсальне програмне забезпечення для резервного копіювання для пк та серверів

Основні характеристики:

Образ Диска, Бекап на NAS, Бекап Відкритих Файлів (VSS), Безстрокова Ліцензія
Starting from € 29

FREE BACKUP SOFTWARE FOR SERVER AND WORKSTATIONS

BACKUP FREE AND PROFESSIONAL SOLUTIONS

Iperius is a complete Windows utility for data backup. Ви можете використовувати Freeware version (також для Windows Server) до back up files до NAS, externs disks, RDX drives, etc. без будь-якого терміну обмеження - або вибирається для версії електронної пошти, з повним набором функцій та розширеними характеристиками: копіювання Open Files (VSS), Drive Image for disaster recovery, backup of ESXi and Hyper-V virtual machines, SQL Server and MySQL Database backup , Exchange Server backup, backup to LTO Tape, backup to Cloud (Google Drive, Amazon S3, etc.), backup to FTP/SFTP . Початок від Iperius Free, послідовність повної версії може бути застосована до тестування всіх нюансів software.

Iperius Console

KEEP UNDER CONTROL ALL THE BACKUPS IN A SHOT

Iperius Console is the advanced tool for centralized management and monitoring of your computers and backup. Використовуючи кожний dedicated desktop application or just the web portal, ви можете побачити результати ваших backup operations, examine details any errors, set and customize backup schedulings and also run backup jobs remotely. Консолі встановлюються добре з усіма продукціями Iperius Suite, дозволяючи також remotely update Iperius Backup до останньої версії. Великий обсяг інформації забезпечений keeps users updated o status of every PC and Server where Iperius is installed, making Iperius Console є надзвичайно useful IT Monitoring tool, both for your customers and your company.

Бла бла бла. Завжди потрібно робити бекапи, інакше буде як на картинці "Він цмокнув базу і не робив бекапи".

Бекапи повинні виконуватися автоматично згідно з встановленими правилами. Адміністратор повинен втручатися, якщо щось пішло не так, а не щоразу, коли знадобився бекап.

Бекапи слід зберігати на іншому сервері, бажано не в тому самому приміщенні. Якщо такої можливості немає, слід зберігати на якомусь іншому диску, відмінному від того, де зберігаються файли бази даних.

Резервне копіювання баз даних Oracle передбачає створення резервних копій файлів даних, керуючих файлів та файлів архівних журналів. До складу запасного набору можуть включатися файли spfile, init.ora, listener.ora і tnsnames.ora.

Резервне копіювання виконується:

  • Засобами операційної системи.
  • Засобами RMAN (Recovery Manager).

Для централізованого зберігання бекапів великої кількості баз даних Oracle пропонує використовувати Oracle Catalog - ще одна база, створена спеціально для бекапів (Що в ній зберігається поки сказати не можу. Не використовував ніколи). Чомусь я думав, що в ній зберігаються бекапи. Але чогось став сумніватися у цьому.

Крім бекапів, можна експортувати потрібну схему у файл. Після за бажання її можна також імпортувати. При цьому не потрібні інші файли, крім самого файлу дампа.

Режими ARCHIVELOG та NOARCHIVELOG

Oracle записує всі зміни, які вносяться в блоки даних, що знаходяться в пам'яті, в оперативні журнали повторного виконання (online redo logs), і робить це, як правило, перед їх записом у файли бази даних. Під час відновлення Oracle використовує зафіксовані у файлах цих журналів зміни для приведення бази даних в актуальний стан. Oracle підтримує два режими для керування такими файлами.

  • Режим архівування журналів (ARCHIVELOG). У цьому режимі Oracle зберігає (архівує) заповнені журнали повторного виконання. Отже, наскільки давно не виконувалося резервне копіювання, якщо використовується режим ARCHIVELOG, базу даних завжди можна буде відновити до будь-якої точки в часі за допомогою архівних журналів.
  • Режим без архівування журналів (NOARCHIVELOG). У цьому режимі заповнені журнали повторного виконання перезаписуються, а не зберігаються. Це означає, що у разі використання режиму NOARCHIVELOG виконувати відновлення можна буде тільки з резервної копії і що всі інші зміни, які були внесені до бази даних після виконання резервного копіювання, будуть втрачатися. Цей режим забезпечує можливість відновлення тільки після відмови екземляра бази даних. У разі виникнення неполадок з носієм (наприклад, втрата диска), що функціонує в режимі NOARCHIVELOG, базу даних можна буде відновити тільки з резервної копії і, звичайно, з втратою всіх змін, які були внесені до неї після створення цієї резервної копії.

У режимі ARCHIVELOG працюють майже всі виробничі бази даних. Режим NOARCHIVELOG використовується тільки тоді, коли є можливість відновити дані з інших джерел, або коли база даних поки що знаходиться тільки на стадії розробки або тестування і тому не потребує відновлення її даних з точністю до хвилини.

Резервне копіювання всієї або частини бази даних

Піддавати резервному копіюванню можна як всю базу даних так і тільки її частину, на кшталт табличного простору або файлу даних, що входить до її складу. Зверніть увагу, що у випадку, коли база даних функціонує в режимі NOARCHIVELOG, здійснювати резервне копіювання лише частини бази даних, що також називається частковим резервним копіюванням (partial database backup), не можна, якщо всі ті табличні простори і файли, які підлягають резервному копіюванню, не є доступними тільки для читання. Виконувати резервне копіювання всієї бази даних, також зване повним резервним копіюванням (whole database backup), можна як режимі ARCHIVELOG, і у режимі NOARCHIVELOG.

Найчастіше виконується повне резервне копіювання. Воно передбачає копіювання як всіх файлів даних, але ще одного важливого файла – управляючого. Без файлу, що управляє Oracle, не буде відкривати базу даних, тому для відновлення крім резервних копій всіх файлів даних, необхідно також обов'язково володіти і новою резервною копією файлу, що управляє.

Узгоджене (consistent) та неузгоджене (inconsistent) резервне копіювання

Узгоджене резервне копіювання (consistent backup) призводить до створення узгоджених резервних копій і вимагає проведення відновлення. При застосуванні резервної копії для відновлення бази даних або її частини (наприклад, табличного простору або файлу даних), спочатку зазвичай потрібно відновити дані з резервної копії (тобто процедуру RESOTRE), а потім – відновлення працездатності бази даних (тобто . процедуру RECOVER). У разі узгодженого резервного копіювання жодного з цих відновлювальних кроків виконувати не потрібно. У разі неузгодженого резервного копіювання (inconsistent backup) виконання цих відновлювальних кроків завжди є обов'язковим.

Oracle надає кожній транзакції унікальний системний номер зміни (System Change Number - SCN). Кожна фіксація, наприклад, буде проводити збільшення цього номера. Всякий раз, коли Oracle встановлює контрольну точку, всі дані, що змінилися в оперативних файлу даних записуються на диск. І щоразу, коли це відбувається. Oracle виконує оновлення контрольної точки потоку (thread checkpoint) у файлі, що управляє. Під час цього оновлення Orale робить так, щоб усі доступні для читання та запису файли даних та керуючі файли узгоджувалися з тим самим SCN-номером. База даних вважається узгодженою тоді, коли SCN-номери, що зберігаються в заголовках всіх файлів даних, є ідентичними і збігаються з інформацією про заголовки файлів даних, що міститься в файлах, що управляють. Головне запам'ятати, що той самий SCN-номер повинен обов'язково бути присутнім у всіх файлах даних і керуючому файлі (або файлах). Присутність ідентичного SCN- номера означає, що у файлах даних містяться дані за один і той же проміжок часу. Якщо дані є узгодженими, жодні кроки по відновленню після повернення (або копіювання) набору файлів резервних копій на колишнє місце не знадобляться.

Для створення узгодженої резервної копії бази даних необхідно або закривати (звичайною командою SHUTDOWN або SHUTDOWN TRANSACTIONAL, але не командою SHUTDOWN ABORT), або зупиняти (за допомогою команди акуратного завершення роботи) та запускати знову в режимі монтування.

При виконанні неузгодженого резервного копіювання виходить, що файли резервної копії містяться дані за різні проміжки часу. Справа в тому, що більшість виробничих систем не допускається переривати для проведення узгодженого резервного копіювання. Натомість необхідно, щоб ці бази даних працювали 24 години на добу 7 днів на тиждень. Це, отже, означає, що резервне копіювання цих баз даних має виконуватися оперативному режимі, тобто. доки вони залишаються відкритими для транзакцій. Зміна файлів даних користувачами під час резервного копіювання якраз і призводить до отримання неузгоджених резервних копій. Виконання неузгодженого резервного копіювання означає отримання якихось неправильних резервних копій. Однак під час відновлення лише повернення таких резервних копій на колишнє місце недостатньо. Крім повернення їх на колишнє місце, потрібно також обов'язково застосувати всі архівні та оперативні журнали повторного виконання, які були створені в проміжку з моменту виконання резервного копіювання і до моменту, до якого необхідно відновити базу даних. Oracle зчитуватиме ці файли і автоматично застосовуватиме до файлів цих резервних копій всі необхідні зміни.

Оскільки при відритій базі даних можна здійснювати лише неузгоджене резервне копіювання, для більшості виробничих баз даних застосовуються стратегії саме з процедурами неузгодженого резервного копіювання в основі.

Резервне копіювання відкритої та закритої бази даних

Резервне копіювання відкритої бази даних (open backup), також зване оперативним (online backup) або гарячим резервним копіюванням (hot/warm backup), передбачає створення резервних копій при відкритій та доступній для користувачів базі даних. Виконувати оперативне резервне копіювання всієї бази даних (як і тільки табличного простору або файлу даних, що належить їй) можна тільки в тому випадку, якщо база даних функціонує в режимі ARCHIVELOG. Проводити його, коли база даних функціонує у режимі NOARCHIVELOG, не можна.

Резервне копіювання закритої бази даних (closed backup), також зване холодним резервним копіюванням (cold backup), передбачає створення резервних копій при закритій (зупиненій) базі даних. Таке резервне копіювання завжди призводить до створення узгоджених резервних копій, якщо база даних не була зупинена командою SHUTDOWN ABORT.

Фізичне та логічне резервне копіювання

З технічної точки зору процедури резервного копіювання Oracle можна поділити на логічні та фізичні. Під логічним резервним копіюванням (logical backup) мається на увазі створення резервних копій за допомогою утиліти Data Pump Export, які містять логічні об'єкти на кшталт таблиць та процедур. Ці резервні копії зберігаються в особливому двійковому форматі, і дані з них можуть вилучатися тільки за допомогою утиліти Data Pump Import.

Під фізичним резервним копіювання (physical backup) мається на увазі створення резервних копій ключових файлів бази даних Oracle, тобто. файлів даних, файлів архівних журналів повторного виконання та керуючих файлів. Ці резервні копії можуть зберігатися як на дискових, так і на стрічкових накопичувачах

Рівні резервного копіювання

Нижче наведено рівні, на яких дозволяється виконувати резервне копіювання баз даних Oracle:

  • Рівень усієї бази даних. Цей рівень передбачає виконання резервного копіювання всіх файлів, зокрема і файлу, що управляє. Виконувати резервне копіювання на рівні всієї бази даних можна як у режимі ARCHIVELOG, так і NOARCHIVELOG.
  • Рівень табличного простору. Цей рівень передбачає виконання резервного копіювання всіх фалів даних, що належать конкретному табличному простору. Виконувати резервне копіювання на такому рівні можна лише у разі використання режиму ARCHIVELOG.
  • Рівень файлу даних. Цей рівень передбачає виконання резервного копіювання єдиного файлу даних. Виконувати резервне копіювання на такому рівні можна лише у разі використання режиму ARCHIVELOG.

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 і розміщені у папці:


    Керуючі файли бази даних (*.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

Отже, для збереження, архівування або бекапу бази даних 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
де ХЕ – це назва бази даних у нашому випадку.

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

Резервну копію бази даних Oracle Database (backup) можна зробити двома способами:

Архівація засобами операційної системи

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

  • Файли табличного простору.
  • Керуючі файли.
  • Файли журналів транзакцій.
  • Конфігураційні файли.

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

Для відновлення пошкодженої під час збою бази даних, її необхідно зупинити та переписати резервні копії робочих файлів та журналів транзакцій на колишнє місце.

Архівація та відновлення за допомогою інструментів Export/Import

Архівацію та відновлення бази даних Oracle Database можна проводити за допомогою стандартних механізмів Експорту та Імпорту до Oracle. Для підвищення надійності безпеки даних необхідно періодично, залежно від інтенсивності роботи з базою, виробляти повний експорт. При досить інтенсивному внесенні змін до даних необхідно робити експорт один раз на тиждень.

Для цього:


Імпорт файлу, створеного раніше архіву, здійснюється аналогічним чином:


Відновлення загубленої бази даних Oracle Database

У разі видалення або втрати з якоїсь причини бази даних Oracle Database, її можна відновити, відновивши файли за допомогою Hetman Partition Recoveryта відновити їх способом, описаним у розділі «Архівація засобами операційної системи».

Для цього:


Наприклад, відновлення файлів бази даних описано процес відновлення файлів *.DBF. Але врахуйте, що для відновлення всіх даних працездатної бази також необхідно відновити відповідні *.ORA і *.LOG файли.

Резервування та відновлення бази даних за допомогою Oracle Recovery Manager (RMAN)

Oracle Recovery Manager (RMAN) – це ще один інструмент створення резервної копії бази даних Oracle Database. Відрізняється він від інших інструментів тим, що з його допомогою створюється повна копія всієї бази даних, а не лише даних із неї. Також, що важливо, Oracle Recovery Manager поєднує в собі функціональність SQL Command Line одночасно звільняючи користувача від повної залежності від її команд. Цей інструмент встановлюється на комп'ютер одночасно і разом з установкою Oracle Database.

Щоб створити резервну копію бази за допомогою RMAN:


Щоб відновити базу даних із резервної копії бази за допомогою Oracle Recovery Manager (RMAN):


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

Здрастуйте, шановні читачі блогу сайт! Представляю вашій увазі статтю про бекап та відновлення бд Oracle. Думаю, цей матеріал буде корисним для адмінів, які виконують бекапи та відновлення на сервері Оракл за допомогою Менеджера Відновлення (RMAN).

Бекап та Відновлення

Для розуміння статті бажано мати уявлення в наступних областях:

  • Концепції реляційних баз даних та основи адміністрування.
  • Середовище ОС, під якою запущено базу Оракл.

Насправді, ця стаття є вступною в серії статей, присвячених основним поняттям бекапу та відновлення. Рекомендую цей матеріал для всіх користувачів, відповідальних за бекап та відновлення. Взагалі, стаття буде цікава всім користувачам, а не лише тим, хто використовує RMAN. Надалі планую розповісти докладніше про технології бекапу, відновлення з використанням Менеджера Відновлення. Користувачам, які управляють бекапом та відновленням без RMAN, буде достатньо ознайомитися з концепціями у цій статті та подальших оглядових постах про бекап та відновлення.

Таким чином, мета пропонованого набору статей – зробити загальний огляд концепцій бекапу та відновлення, розглянути файли бази Оракл, які стосуються бекапу та відновлення, а також вивчити інструменти, доступні для здійснення бекапу та відновлення вашої БД, захисту від втрати інформації та інших помилок.

Отже, що ж таке бекап та відновлення? Бекап та відновленнямає на увазі під собою різні стратегії та процедури, пов'язані із захистом вашої БД від втрати інформації та відновлення БД після будь-якого різновиду втрати даних.

Фізичні та Логічні Бекапи

Бекап– це копія даних з вашої бази даних, яка може бути використана для відновлення. Бекапи можна розділити на фізичні бекапиі логічні бекапи.

Фізичні бекапи – це бекапи фізичних файлів, що використовуються для зберігання та відновлення вашої бази даних, наприклад, файлів даних, контрольних файлів, архівів файлів журналів. Зрештою, кожен фізичний бекап - це копія файлів, що зберігають інформацію про базу даних в іншому місці (на диску. Стрічці і т.п.).

Логічні бекапи містять логічні дані (наприклад, таблиці або процедури, що зберігаються), що експортуються з бази за допомогою утиліти експорту Oracle і зберігаються як бінарний файл – для подальшої можливості імпорту в бд за допомогою відповідно утиліти імпорту Oracle.

Фізичні бекапи є фундаментом будь-якої надійної стратегії бекапу та відновлення, тоді як логічні є корисним доповненням до фізичних бекапів у багатьох випадках, але вони недостатні для задовільного захисту від втрати інформації без фізичних бекапів.

Далі термін "бекап" у цій статті про бекап і відновлення означатиме насамперед саме фізичні бекапи (якщо не конкретизовано, про які бекапи йдеться), і зробити бекапчастини або всієї бд означатиме – зробити один із видів фізичного бекапу. Акцент у статті робиться переважно на фізичних бекапах.

Помилки та збої, що вимагають відновлення з Бекапу

Тоді як існує кілька типів проблем, які можуть перервати нормальне функціонування бд Oracle або операції введення-виводу, зазвичай тільки дві з них вимагають втручання адміну (DBA) та відновлення носіїв: власне збої носіїв (жорстких дисків тощо) та помилки користувачів.

Інші збої можуть вимагати втручання DBA для перезавантаження бази (після збою екземпляра) або виділення додаткового дискового простору (після збою при виконанні sql пропозиції через, наприклад, переповнений файл даних), але ці ситуайції не призведуть, взагалі кажучи, до втрати даних і не вимагатимуть відновлення з бекапу.

Помилки користувачів

Помилки користувачів відбуваються або через помилки в логіці програми, або при відступі від посібника з експлуатації, дані у вашій БД змінюються або видаляються некоректно. Втрати інформації, пов'язані з помилками користувачів, включають такі помилки як видалення важливих таблиць, видалення або зміна вмісту таблиці. Хоча навчання користувачів і ретельне управління привілеями можуть захистити від більшості помилок користувача, ваша стратегія бекапу визначить, як витончено Ви відновите втрачені дані, коли помилка користувача стане причиною втрати інформації.

Вихід з ладу носіїв інформації

Збій носія– це збій під час читання або запису файлу на диску, який потрібний для роботи бази через фізичну проблему з диском. наприклад виведення з ладу головки. Будь-який файл БД може бути пошкоджений через збій носія.

Відповідний спосіб відновлення після збою носія залежить від того, на які файли вплинув збій, а також від доступних типів бекапів.

Рішення Oracle для Бекапу та Відновлення: RMAN та Користувальницькі Бекапи

Для виконання бекапу та відновлення, заснованих на фізичному резервному копіюванні, у вашому розпорядженні є два рішення:

  • Менеджер Відновлення– інструмент (працює з командного рядка, або з графічного інтерфейсу Enterprise Manager), який інтегрується з сесіями, запущеними на сервері Oracle для виконання ряду дій, пов'язаних з бекапом та відновленням, а також для збереження історії про ваші бекапи
  • Традиційний користувальницький бекап та відновлення(тобто здійснюваний та контрольований самим користувачем), коли Ви безпосередньо керуєте файлами, що становлять вашу бд, використовуючи при цьому команди ОС та можливості SQL*Plus, пов'язані з бекапом та відновленням

Обидва методи підтримуються корпорацією Oracle та повністю документовані. Менеджер Відновлення, однак, є кращим рішенням для бекапу та відновлення БД. Він може виконувати ті ж типи бекапу та відновлення, доступні при користувальницькому бекапі та відновленні, але набагато простіше, крім того RMAN забезпечує загальний інтерфейс для завдань бекапу в різних ОС, а також пропонує ряд технологій бекапу, не доступних у методах ручного бекапу.

Більшість статті буде фокусуватися на бекапі та відновленні за допомогою RMAN. Користувальницькі методи бекапу та відновлення я планую описати в майбутніх статтях про бекап та відновлення.

Який би метод Ви не використовували (RMAN або спосіб користувача), ви можете доповнити ваші фізичні бекапи логічними бекапами об'єктів схеми, які здійснюються за допомогою утиліт експорту. Дані, збережені таким чином, можуть бути пізніше імпортовані для створення цих об'єктів після відновлення з фізичного бекапу. Однак, логічні бекапи в цій статті я не розглядатиму (потім я хочу написати окрему статтю про логічні бекапи).

Дякую за увагу! Не пропустіть продовження теми про бекапу та відновлення у майбутніх статтях, які я намагатимуся написати в найближчому майбутньому. Успіхів!.

У цьому документі описані правила та процедури, які необхідно дотримуватись для резервного копіювання 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.

Умовні позначення

  • Значення, укладені у дужки< >вводяться користувачами, наприклад, потрібно замінити на поточний номер ORACLE_SID. Якщо ваш номер ORACLE_SID є тестовим TEST, файл, записаний як init .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 швидкість відновлення залежатиме від різних елементів, таких як тип носія (магнітна стрічка або диск), швидкість передачі по мережі, доступність пристрою з демоном-охоронцем, і т.д. пристрій з демоном-охоронцем може використовувати той же том диска для безлічі паралельних відновлень. Таким чином, існує можливість одночасного виконання кількох завдань з відновлення та резервного копіювання 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 та інших характеристик пулу.

Щоб використовувати консоль з обмеженими можливостями, можна скористатися таким визначенням консолі:

Малюнок 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
localdir Локальна папка файлу даних, який перевірить SBT плагін до виклику завдання відновлення Bacula.

Localdir=/tmp/@ORACLE/sbt

catalog Ім'я каталогу Bacula catalog="MyCatalog 2"
trace Шлях до файлу файл трасування trace=/tmp/log.txt
debug Рівень налагодження

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

Як мінімальні параметри, які необхідно вказати у файлі конфігурації, виступають такі, як клієнт, завдання та b-консоль. Зверніть увагу на те, що необхідно використовувати подвійні лапки, якщо конфігурований елемент містить пробіли (наприклад, b-консоль).

Ці параметри можна перезаписати за допомогою команди RMAN SEND.

Команда SEND обмежена 512 байтами, тому можна використовувати кілька команд SEND, щоб задати всі параметри. Краще уникати довгі шляхи при використанні SBT інтерфейсу.

Конфігурація FileSet

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

Таблиця 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 .ora, щоб налаштувати розташування архівного журналу реєстрації
  • Запустіть БД, не відкриваючи за допомогою команди STARTUP MOUNT
  • Змініть режим архівування за допомогою ALTER DATABASE ARCHIVELOG; та відкрийте її за допомогою команди ALTER DATABASE OPEN;
  • Зупиніть роботу БД за допомогою команди SHUTDOWN IMMEDIATE
  • Ще раз створіть бекап БД, оскільки зміна ARCHIVELOG оновить файли, що управляють, і перетворить старі бекапи на непридатні для використання. Плагін Bacula Enterprise для Oracle створить RMAN бекап, поміщений у вкладену папку в місці, де знаходиться архівний журнал реєстрації, вказаний у файлі init .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 Використання SBT в RMAN sbt
ctrlfile Основний шлях до файлів керування при використанні SBT ctrlfile=/tmp/oracle

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

Потім, використовуючи where=/ або where= плагін завантажить цей SQL файл у вашу базу даних. Якщо деякі ролі вже існують, з'явиться повідомлення про помилку в журналі реєстрації завдань. Також можна відновити файл users.sql file у локальний каталог, відредагувати та завантажити його за допомогою sqlplus, щоб відновити будь-яку вибрану частину файлу.

Відновлення однієї БД Oracle.Щоб відновити одну схему за допомогою плагіна Bacula Enterprise для Oracle, необхідно вибрати схему каталогу під час команди відновлення, вибір повинен містити файл даних (data.dmp) і скрипт створення схеми (user.sql).

Мал. 3 Вміст БД з дампом у BWeb

Як тільки буде обрано каталог БД, ви зможете використовувати параметр where для відновлення схеми нову схему з іншим ім'ям. Щоб створити нове ім'я схеми, потрібно прирівняти параметр where до одного слова, яке містить символи A..Z, 0-9, і _. Потім плагін Bacula створить зазначену схему і відновить дані.

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

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

Якщо ви задасте параметр, рівний never, плагін Bacula перевірить список схем і перерве завдання, якщо поточна схема, що відновлюється, вже існує.

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

Відновлення однієї таблиці Oracle.Щоб відновити один об'єкт, наприклад, таблицю зі створеного вами дампа, вам необхідно спочатку відновити файл дамп в локальний каталог. Потім, за допомогою інструмента imp імпортувати потрібний об'єкт. Більш детальну інформацію ви знайдете у документації з імпорту об'єктів у Oracle.

Відновлення дамп файлів Oracle у каталог.Щоб відновити SQL дампи в каталог, ви можете призначити параметр, де будь-який діючий каталог.

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

Відновлення всієї БД Oracle.Щоб відновити всі бази даних та конфігурації бази даних, просто відновіть всі файли, розташовані в /@ORACLE/ , використовуйте replace=always та where=/.

Обмеження бекапу та відновлення Oracle

Плагіни за промовчанням не сумісні із завданнями Copy/Migration/VirtualFull.