Restore point - использование точек восстановления базы данных Oracle

Как создать точку восстановления базы данных Oracle Restore point и применить ееТочка восстановления (restore point) является псевдонимом SCN-номера и избавляет от необходимости разыскивать и записывать SCN-номера или метки времени, которые необходимо использовать для операций ретроспективного отката баз данных Oracle (Flashback Database) и ретроспективного отката таблиц (Flashback Table). Предположим, что планируется применить какой-то новый пакет или процедуру, которая приведет к изменению большого объема данных. Тогда перед выполнением этой операции может быть удобно создать точку восстановления на случай, если в будущем потребуется аннулировать ее последствия. Если необходимость вернуться обратно к исходным данным действительно возникнет, достаточно будет лишь сослаться на эту точку восстановления в операции Flashback Database или Flashback Table. Точно таким же образом точки восстановления можно применять и в операциях восстановления до состояния на определенный момент времени в прошлом (PITR).

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

  • ретроспективный откат таблиц;
  • ретроспективный откат базы данных;
  • восстановление работоспособности базы данных.

На заметку! Для того чтобы пользоваться точками восстановления, нужно обязательно иметь как минимум версию Oracle Database 10 g Release 2, эксплуатировать базу данных в режиме архивирования журналов (ARCHIVELOG) и использовать область пакетного восстановления.


Ниже показано, как создать точку восстановления:

SQL> CREATE RESTORE POINT test;
Restore point created.
SQL> 

Удалить точку восстановления можно с помощью такой команды:

SQL> DROP RESTORE POINT test;
Restore point dropped.
SQL> 

 

Гарантированные точки восстановления

Точка восстановления, продемонстрированная в предыдущем примере, называется обычной точкой восстановления (ordinary restore point). Обычная точка восстановления предоставляет удобный способ для указания предыдущего SCN-номера или момента во времени при выполнении операции ретроспективного отката или восстановления. Однако она не гарантирует, что база данных будет хранить все журналы Flashback Database, необходимые для успешного проведения операции ретроспективного отката базы данных при любых обстоятельствах. Поэтому помимо обычной еще также разрешено создавать и гарантированную точку восстановления (guaranteed restore point), которая точно гарантирует возможность отката базы данных до указанного в ней SCN- номера или времени. Все, что требуется — это иметь в области пакетного восстановления достаточно места для хранения журналов, необходимых для принудительного применения такой точки.

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

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

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


Совет. Для гарантированных точек восстановления используется отдельный механизм ведения журналов, отличный от механизма ведения журналов Flashback, который служит для операций ретроспективного отката базы данных (Flashback Database). Поэтому их можно применять как с, так и без включения механизма ведения журналов Flashback, но область пакетного восстановления, однако, для них нужно конфигурировать обязательно.


Создается гарантированная точка восстановления так же, как и обычная, но только с добавлением к ней конструкции GUARANTEE FLASHBACK: 

SQL> CREATE RESTORE POINT test_guarantee GUARANTEE FLASHBACK DATABASE;
Restore point created.
SQL>

Удаляется гарантированная точка восстановления абсолютно аналогично обычной.

После создания гарантированной точки восстановления использовать ее для восстановления базы данных через операцию Flashback Database можно так:

RMAN> FLASHBACK DATABASE TO RESTORE POINT test_guarantee; 

 

Просмотр точек восстановления

Для просмотра информации об имеющихся в базе данных точках восстановления применяется представление V$RESTORE_POINT. Типичный запрос к этому представлению выглядит следующим образом: 

SQL> SELECT name, scn, storage_size, time, guarantee_flashback_database
FROM v$restore_point;
NAME           SCN        STORAGE_SIZE     TIME                      GUARANTEE
------------------------------------------------------------------------------
TEST_GUARANTEE 1685977    199409664        09-MAY-08 02.10.55.00 PM        YES
TEST           4039395    0                30-JUN-08 05.49.02.00 AM         NO
SQL>

Приведенный выше вывод показывает, что в базе данных присутствуют две точки восстановления, одна из которых является обычной, а вторая — гарантированной. Столбец SCN сообщает о том, когда каждая из этих точек восстановления была создана. Благодаря этому, если вдруг возникнет необходимость провести восстановление, достаточно будет указать во время операции восстановления лишь имя желаемой точки восстановления, а не сам SCN-номер или календарное значение времени. Что касается столбца STORAGE_SIZE, в котором отображается информация о том, сколько пространства (в байтах) требуется для поддержания точки восстановления, то в нем видно, что для обычной точки это пространство составляет 0, а для гарантированной — около 200 Мбайт.

Как уже известно, выяснять то, работает ли база данных в режиме Flashback Database, можно с помощью следующего запроса: 

SQL> SELECT flashback_on FROM v$database;
FLASHBACK_ON
------------
NO

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

SQL> SELECT flashback_on FROM v$database;
FLASHBACK_ON
-------------------
RESTORE POINT ONLY
SQL>

Здесь видно, что даже при отключенной функции Flashback Database создание точек восстановления позволяет гарантировать наличие возможности ретроспективного отката базы данных. После включения функции Flashback Database базу данных можно будет вернуть обратно к тому состоянию, в котором она находилась на указанный в гарантированной точке восстановления момент времени или SCN-номер. Журналы, поддерживаемые в области пакетного восстановления благодаря наличию гарантированной точки восстановления, сделают возможным выполнение такого ретроспективного отката базы данных, даже несмотря на полное отсутствие каких-либо журналов Flashback за данный период времени.

Обратите внимание, что гарантированная точка восстановления дает возможность выполнения только операции ретроспективного отката базы данных (Flashback Database), но не операции восстановления до состояния на определенный момент времени (Point-In-Time Recovery — PITR) или операции ретроспективного отката таблицы (Flashback Table), поскольку для успешного выполнения последних требуется, чтобы в наличии были необходимые файлы резервных копии и данные отмены. Однако гарантированные точки восстановления вполне могут использоваться для приближения к тому SCN-номеру или значению времени, которое требуется для проведения операции PITR или Flashback Table.


На заметку! Хотя и можно выполнять ретроспективный откат базы данных до гарантированной точки восстановления, даже если функция Flashback Database изначально не была включена и, следовательно, никакие журналы Flashback не велись, это позволяет производить восстановление только в точности до гарантированной точки восстановления. Если необходимо выполнить восстановление до более ранней точки, потребуется выполнить процедуру восстановления до состояния на определенный момент времени в прошлом вместе с соответствующими файлами резервных копий и архивных журналов.


 

Вас заинтересует / Intresting for you:

Ищем и исправляем ошибки в баз...
Ищем и исправляем ошибки в баз... 3824 просмотров Александров Попков Tue, 21 Nov 2017, 13:18:05
Восстановление в базе данных O...
Восстановление в базе данных O... 2851 просмотров Antoniy Mon, 29 Jan 2018, 16:31:55
Механизм Flashback Data Archiv...
Механизм Flashback Data Archiv... 2831 просмотров Светлана Комарова Tue, 21 Nov 2017, 13:18:05
Восстановление баз данных Orac...
Восстановление баз данных Orac... 6335 просмотров Дэн Tue, 21 Nov 2017, 13:18:05
Войдите чтобы комментировать