Установка режима архивации

Проверка установки режима архивации

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

sqlplus / as sysdba

Для того чтобы увидеть состояние базы данных, можно воспользоваться следующим SQL запросом:

SQL> select log_mode from v$database;

Результат NOARCHIVELOG  означает что архивации базы данных отключена.

Перевести базу данных в режим ARCHIVELOG вы можете следующими командами в sql*plus (команды должны выполняться в строгой последовательности):

SQL> shutdown immediate;

SQL> startup mount;

SQL> alter database archivelog;

SQL> alter database open;

Здесь происходит остановка базы данных, запуск в режиме монтирования, перевод в режим архивирования и открытие базы данных в нормальном режиме.

Скрипт для выполнения резервной копии БД работающей в режиме archivelog

Для выполнения копирования базы данных в автоматическом режиме нужно создать скрипт backup.cmd с содержимым:

@echo off

chcp 1251

rman target / @backup.script > backup_%date%.log

exit

Здесь  командный файл запускает rman ,выполняет скрипт backup.script и записывает результаты в лог файл backup_%date%.log (например backup_11.04.2013.log)

Создать рядом же текстовый файл backup.script с содержимым:

run {

CONFIGURE RETENTION POLICY TO REDUNDANCY 7;

CONFIGURE CONTROLFILE AUTOBACKUP ON;

CONFIGURE BACKUP OPTIMIZATION ON;

CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET;

backup as compressed backupset database plus archivelog;

delete noprompt obsolete;

}

Параметр CONFIGURE RETENTION POLICY TO REDUNDANCY 7  указывает избыточность хранения объектов резервных копий. Например, мы хотим держать семь полных резервных копий БД.

Параметр CONFIGURE CONTROLFILE AUTOBACKUP ON включает автоматический бэкап контрольных файлов и файла параметров сервера.

Параметр CONFIGURE BACKUP OPTIMIZATION ON включает оптимизацию при резервном копировании.

Параметр CONFIGURE DEVICE TYPE DISK BACKUP TYPE TO COMPRESSED BACKUPSET  включает сжатие и образующаяся резервная копия будет по умолчанию резервным набором.

Настройка  планировщика заданий.

В расположенном справа меню Действия нажмите Создать задачу. В окне Создание задачи введите название новой задачи и ее описание.  Переключитесь на вкладку Триггеры, нажмите кнопку Создать и назначьте дату, время и частоту выполнения задачи.

 

Перейдите на вкладку Действия и нажмите кнопку Создать.

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

 

Обычное восстановление с помощью RMAN.

Для восстановления базы нужно подключиться с помощью утилиты RMAN из командной строки от oracle- пользователя и выполнить следующие команды (команды должны выполняться в строгой последовательности):

rman target /

Rman> startup force mount;

Запуск базы в режиме монтирования

Rman> restore database;

Восстановление базы

Rman> recover database;

Восстановление журналов до установленной контрольной точки

Rman> alter database open;

Открытие базы в нормальном режиме.

 

Восстановление используя автобэкапы контрольных файлов с помощью RMAN.

rman target /

RMAN> startup nomount;

Запуск базы данных без монтирования

RMAN> restore controlfile from autobackup;

Восстановление  контрольных файлов

RMAN> alter database mount;

Запуск базы в режиме монтирования

RMAN> restore database;

Восстановление базы

RMAN> recover database;

Восстановление журналов до установленной контрольной точки

RMAN> alter database open resetlogs;

Открытие базы в нормальном режиме с опцией resetlogs. При использовании опции resetlogs нумерация архивных журналов и контрольных точек начинается сначала.

 

Восстановление БД Oracle на новом сервере с помощью RMAN.

1.  Установка СУБД Oracle

2. Настраиваем listener.ora

—      После установки Oracle необходимо настроить службу Listener Oracle.  Для этого  необходимо запустить Net Configuration Assistance из меню пуск или netca из консоли.

—      Выбираем Add listener, в Listener name оставляем значение по умолчанию Listener

—      Выбираем протокол TCP .

—      оставляем стандартный порт 1521

—    отказываемся от настройки другого Listener и жмем finish

3. Настраиваем sqlnet.ora

Если не существует файл C:\app\product\11.2.0\dbhome_1\NETWORK\ADMIN \ sqlnet.ora создать и добавить в него строку:

SQLNET.AUTHENTICATION_SERVICES = (NTS)

4. Создаем каталог базы. Например: C:\oradata\MURGB

5. Скопировать RMAN-бэкапы с FRA. Например: в каталог C:\FRA.

Желательно указать путь как было в spfile, чтобы не указывать пути при восстановлении.

6. Создаем базу с именем MURGB и с паролем SYS:

oradim -new -sid MURGB -syspwd sys -startmode auto

7. Далее подключаемся к RMAN и выполняем следующие команды:

RMAN TARGET /

Подключение rman из командной строки с полномочиями SYSDBA

RMAN> SET DBID 2272089540

Устанавливаем идентификатор базы данных.

RMAN> STARTUP FORCE NOMOUNT

Запуск базы данных без монтирования и без файла параметра

RMAN> RESTORE SPFILE FROM ‘C:\FRA\MURGB\AUTOBACKUP\2013_04_01\O1_MF_S_811592437_8OL9SQ0H_.BKP’;

Восстановление файлов параметров сервера с указанием пути к бэкапу.

RMAN> SHUTDOWN IMMEDIATE;

Остановка базы данных

RMAN> STARTUP NOMOUNT;

Запуск базы данных без монтирования включая файл параметров

RMAN> RESTORE CONTROLFILE FROM AUTOBACKUP;

Восстановление  контрольных файлов

или если путь к автобэкапу другой то:

RMAN> RESTORE CONTROLFILE FROM ‘C:\FRA\MURGB\AUTOBACKUP\2013_04_01\O1_MF_S_811592437_8OL9SQ0H_.BKP’;

RMAN> ALTER DATABASE MOUNT;

Запуск базы в режиме монтирования

если путь к бэкапсету другой то указать:

RMAN> CATALOG BACKUPPIECE ‘C:\FRA\MURGB\BACKUPSET\2013_04_01\O1_MF_NNNDF_TAG20130401T101609_8OL9KB8S_.BKP’;

RMAN> LIST BACKUP;

Просмотр созданных резервных копий

RMAN> RESTORE DATABASE;

Восстановление базы

RMAN> RECOVER DATABASE;

Восстановление журналов до установленной контрольной точки

RMAN> ALTER DATABASE OPEN RESETLOGS;

Открытие базы в нормальном режиме с опцией resetlogs. При использовании опции resetlogs нумерация архивных журналов и контрольных точек начинается сначала.

 

Возможные проблемы:

Не совпадение DBID:

RMAN> LIST BACKUP;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of list command at 04/05/2013 16:05:13

RMAN-06189: current DBID 2272089542 does not match target mounted database (2272

089540)

Решение: задать идентификатор базы данных.

RMAN> SHUTDOWN IMMEDIATE

RMAN> STARTUP NOMOUNT

RMAN> SET DBID 2272089540

RMAN> ALTER DATABASE MOUNT;

RMAN> LIST BACKUP;

 

Не совпадение нумерации архивных журналов и контрольных точек:

RMAN> RECOVER DATABASE;

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of recover command at 04/05/2013 15:51:34

RMAN-06054: media recovery requesting unknown archived log for thread 1 with sequence 1 and starting SCN of 2208740

Решение: Восстановить базу со значением контрольной точки 1.

RMAN> RECOVER DATABASE UNTIL SEQUENCE 1;

 

Дополнительно:

Скрипт просмотра дата и редо лог файлов в sqlplus:

SELECT FILE# AS «File/Grp#», NAME FROM V$DATAFILE UNION

SELECT GROUP#,MEMBER FROM V$LOGFILE;

Пример скрипта восстановления с новым именем базы (SID) и путями к файлам базы данных. Номера datafile у всех разные.

RMAN> @C:\rman.txt

RMAN> run{

set newname for datafile 1 to ‘C:\ORADATA\MURGB\SYSTEM01.DBF’;

set newname for datafile 2 to ‘C:\ORADATA\MURGB\SYSAUX01.DBF’;

set newname for datafile 3 to ‘C:\ORADATA\MURGB\UNDOTBS01.DBF’;

set newname for datafile 4 to ‘C:\ORADATA\MURGB\SPR01.DBF’;

set newname for datafile 5 to ‘C:\ORADATA\MURGB\SPR_IND01.DBF’;

set newname for datafile 6 to ‘C:\ORADATA\MURGB\USERS01.DBF’;

set newname for datafile 7 to ‘C:\ORADATA\MURGB\USERS02.DBF’;

set newname for datafile 8 to ‘C:\ORADATA\MURGB\USERS03.DBF’;

set newname for datafile 9 to ‘C:\ORADATA\MURGB\USR_IND01.DBF’;

set newname for datafile 10 to ‘C:\ORADATA\MURGB\USR_IND02.DBF’;

set newname for datafile 11 to ‘C:\ORADATA\MURGB\USR_IND03.DBF’;

SET UNTIL SCN 745212;

RESTORE DATABASE;

SWITCH DATAFILE ALL;

RECOVER DATABASE;

}