Stand by Oracle

  • 09 дек. 2012 г.
  • 2562 Слова
Пояснильная записка Standby Server
Стоит немного сказать о тех принципах организации БД Oracle, которые понадобятся нам для понимания механизма работы резервного копирования и восстановления данных в СУБД Oracle.
Экземпляр БД Oracle содержит следующие виды файлов:
Управляющие файлы (Control files) — содержат служебную информацию о самой базе данных. Без них не могут быть открыты файлы данных ипоэтому не может быть открыт доступ к информации базы данных.
Файлы данных (Data files) — содержат информацию базы данных.
Оперативные журналы (Redo logs) — содержат информацию о всех изменениях, произошедших в базе денных. Эта информация может быть использована для восстановления состояния базы при сбоях.

Существуют другие файлы, которые формально не входят в базу данных, но важны дляуспешной работы БД.
Файл параметров — используется для описания стартовой конфигурации экземпляра.
Файл паролей — позволяет пользователям удаленно подсоединяться к базе данных для выполнения административных задач.
Архивные журналы — содержат историю созданных экземпляром оперативных журнальных файлов (их автономные копии). Эти файлы позволяют восстановить базу данных. Используя их и резервы базы данных,можно восстановить потерянный файл данных.
Главная идея при создании standby экземпляра состоит в том, чтобы с помощью выполнения транзакций, сохраненных в оперативных или архивных журналах основной БД, поддерживать резервную БД в актуальном состоянии (такой механизм для Oracle называется Data Guard). 
Отсюда следует первое требование к нашей основной базе — она должна быть запущена в archivelogmode. 
Вторым требованием является наличие файла паролей. Это позволит удаленно подключаться к нашей БД в административном режиме. 
Третье требование — это режим force logging. Этот режим нужен для принудительной записи транзакций в redo logs даже для операций, выполняемых с опцией NOLOGGING. Отсутствие этого режима может привести к тому, что на standby базе будут повреждены некоторые файлыданных, т.к. при «накатке» архивных журналов из них нельзя будет получить данные о транзакциях, выполненных с опцией NOLOGGING.
Первоначально нам необходимо установить два сервера Oracle. Для создания Standby нам необходимо чтобы standby экземпляр был идентичен primary экземпляру. Поэтому важно при установки бд на standby выполнять шаги установки в точности как и на primary.
Далее переходим к настройкеprimary бд.
Для начала поверяем соответствие нашей БД необходимым требованиям. 
1. Смотрим, в каком режиме работает наша основная БД:
SQL> select name, open_mode, log_mode from v$database;

NAME OPEN_MODE LOG_MODE
--------- ---------- ------------
TEST READ WRITE ARCHIVELOG
Если вы не видите значения ARCHIVELOG в поле LOG_MODE, выполняем следующие команды:
SQL> shutdown immediate;SQL> startup mount;
SQL> alter database archivelog;
SQL> alter database open;
2. Проверяем наличие файла паролей:

SQL> select * from v$pwfile_users;

USERNAME SYSDB SYSOP
------------------------------ ----- -----
SYS TRUE TRUE

Если вы не видите этот результат, создаем необходимый файл:

$ orapwd file=$ORACLE_HOME\dbs\orapw$ORACLE_SID password=xxxxxxxx force=y

Вместо'xxxxxxxx' необходимо вставить текущий пароль пользователя SYS.
3. Включаем режим force logging:

SQL> alter database force logging;

Переходим к конфигурированию нашей системы. Для начала выполним необходимые настройки на основной базе. Будем сохранять все данные в каталоге\oradata\backup. 

Создаем standby redo logs. Они нужны только на standby базе для записи данных, сохраняемых в redologs на основной базе. На основной базе они нам понадобятся, когда мы будем переключать ее в режим standby и при этом использовать real-time apply redo. Файлы standby redo logs должны быть такого же размера как и online redo logs. Посмотреть размер online redo logs можно с помощью команды:

SQL> select bytes from v$log;

BYTES
----------
52428800
52428800
52428800...
tracking img