Как и чем создать Backup в Oracle



Чтобы после сбоя в системе (например, отказа жесткого диска) восстановить базу нужно иметь под рукой резервную копию.

(Нет резервной копии — прощай работа ))

Чем свежее копия, тем лучше.

Более того: резервная копия базы должна быть полной и непротиворечивой.

С полнотой все просто. В резервной копии должны быть файлы:

  • файлы данных (data files)
  • управляющий файл (controlfile)
  • архивные журнальные файлы (archived redo logs)
  • файл параметров (spfile)
  • файл паролей.

А с непротиворечивостью есть некоторые заморочки, поскольку просто так скопировать файлы нельзя.

Можно остановить базу, а затем скопировать файлы с помощью команд операционной системы. Такая резервная копия называется холодным бэкапом (cold backup).

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

Если же база находится в режиме ARCHIVELOG, то кроме холодного бэкапа есть еще два варианта для создания горячих бэкапов (hot backup):

  1. Использовать команды BEGIN BACKUP и END BACKUP и команды операционной системы (так называемые user-managed backups).
    1. Использовать утилиту Recovery Manager (RMAN).

    Второй вариант является более предпочтительным, так как RMAN кроме копий файлов (Image copy) может создавать резервные наборы или бэкапсеты (Backup set — группа из нескольких файлов базы данных). Бэкапсеты удобны для записи на ленточные накопители.




    RMAN также позволяет делать инкрементальные бэкапы, то есть создавать не полную копию БД, а сохранять только изменения с момента создания предыдущего бэкапа. В отличие от полного бэкапа (Level 0), который хранит все блоки БД, инкрементальный бэкап содержит только блоки, которые были изменены с момента создания бэкапа того же уровня или более низкого.

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

    1. Создание полного бэкапа уровня 0 по воскресеньям.
    2. Ежедневно создаются инкрементальные бэкапы уровня 2.
    3. В среду создается бэкап уровня 1, который включает все блоки, которые были изменены с момента создания резервной копии уровня 0.


    Интересная фишка: начиная с версии Oracle 10g в RMAN появилась возможность после создания инкрементального бэкапа применить его к ранее созданному бэкапу. В результате время на создание бэкапа остается небольшим, а полная копия базы уже не требует длительного применения архивных журнальных файлов.

    Упомяну о некоторых полезных функциях RMAN:

    • информацию о резервных копиях может хранится как в управляющем файле так и во внешней базе данных (Recovery Catalog)
    • Recovery Manager позволяет выполнять компрессию резервных копий и взаимодействовать через дополнительные библиотеки с ленточными носителями
    • командой DUPLICATE можно создать копию базы как напрямую из работающей базы данных, так и из полного бэкапа на диске
    • с помощью Recovery Manager можно проверить базу на наличие поврежденных (corrupted) блоков.

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

    Backup также полезен для создания клонов основной базы для целей тестирования и разработки.

    В общем, система резервного копирования должна быть настроена для любой промышленной базы данных. Если не позаботиться заранее, то последствия потери данных могут быть очень серьезными. И обязательно: протестируйте её!


    Сергей Греховодов,
    автор курсов по обучению Oracle





    Опубликован: 04 декабря 2014, 10:45


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

    1. Сколько стоит сделать резервную копию оракловой базы?

      Умеете делать резервную копию оракловой базы? Вопрос далеко-далеко не праздный (если вы уже знаете, как делать копию, то, наверное, догадываетесь, о чём пойдёт речь, правильно — о времени). Тема резервного копирования для администраторов оракла — одна из ключевых.

    2. Как обычно повышают производительность базы

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

    3. Как создавать дампы в Oracle с помощью Data Pump

      Если нужно перенести объекты схемы из одной базы в другую, то проще всего это сделать с помощью технологии Oracle Data Pump. Прежде чем вникать в детали работы с Data Pump, давайте уточним: у нас есть физические резервные копии и логические дампы.


    • # 1

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

      Странно а как же импорт - экспорт?

      2. во всех пунктах подписки примеры какие то неживые.
      нет самого главного механики как это делается, есть только общие фразы.
      почему не расмотреть при отключенном архив логе imp system/* full=yes log=imp%date.log ?

      Дамп и бэкап как бы разные вещи.

    • # 2

      принято спасибо буду усваивать!

    Комментарии к этой заметке больше не принимаются.