|
|
ru.linux- RU.LINUX --------------------------------------------------------------------- From : Aleksey Goryansky 2:478/25 23 Apr 2003 18:08:59 To : Alexander Subject : Linux Oracle Standby Database -------------------------------------------------------------------------------- * *Ответ на письмо от 23 апр 03 15:00, когда *Alexander, 2:5020/400 писал к Aleksey Goryansky: * >> В oracle есть возможность создать stand-by database. У меня работает. A> А поделись, пожалуйста, опытом. У меня такая задача надвинулась. У нас в ходу вот такая дока. Создание STANDBY DB. Основной технологией восстановления работоспособности базы данных выбрана технология поддержания базы данных горячего резерва (в дальнейшем - STANDBY DB), которая описана ниже в данной инструкции. Технология включает в себя создание на резервном сервере базы данных, идентичной рабочей. В случае необходимости, при потере работоспособности рабочей БД, резервная база данных может стать рабочей в течение 10 минут. Для того, чтобы создать резервную БД (STANDBY DB), необходимо 1. остановить рабочую БД (PRIMARY DB) командой SHUTDOWN IMMEDIATE. 2. Создать на STANDBY- сервере каталоги для STANDBY DB, аналогичные PRIMARY БД. Скопировать все файлы базы данных PRIMARY DB на STANDBY DB с полным повторением путей. 3. В файле конфигурации PRIMARY DB init.ora добавить строки log_archive_start = true log_archive_dest_1 = "location=<путь с каталогу archive на PRIMARY DB>" (Hапример, "location= /oracle/oradata/data/base/arch") log_archive_dest_2 = "service=<имя сервиса STANDBY DB> (такое же, как в tnsname.ora) reopen=10" (Hапример, "service=STAND reopen=10") В tnsname.ora PRIMARY DB добавить данные о STANDBY DB В файле конфигурации STANDBY DB init.ora добавить строки standby_archive_dest = /oracle/oradata/data/base/arch log_archive_dest = /oracle/oradata/data/base/arch 4. Запустить экземпляр PRIMARY DB командами: STARTUP MOUNT ALTER DATABASE ARCHIVELOG; (если БД не в режиме архивирования) ALTER DATABASE OPEN; Создать управляющий файл (control file) для STANDBY DB: ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/stand.ctl'; 5. Hа STANDBY сервере: копируется созданный control file и arhivelogs (если они есть). 6. Запустить экземпляр STANDBY DB в режиме ожидания: STARTUP NOMOUNT PFILE=<путь к файлу init.ora> (например /oracle/product/admin/base/pfile/initbase.ora ) ALTER DATABASE MOUNT STANDBY DATABASE; RECOVER STANDBY DATABASE; (если нужно вручную докатывать архивные логи) RECOVER MANAGED STANDBY DATABASE (если нужно, чтобы архивные журналы докатывались автоматически, что обычно и делается); Активация STANDBY DB. Чтобы активировать STANDBY DB, необходимо подключиться к Standby БД пользователем internal и выполнить команду RECOVER MANAGED STANDBY DATABASE CANCEL; ALTER DATABASE ACTIVATE STANDBY DATABASE; SHUTDOWN IMMEDIATE; STARTUP MOUNT PFILE=<путь к файлу init.ora> (например /oracle/product/admin/base/pfile/initbase.ora); ALTER DATABASE OPEN READ WRITE; Следует помнить, что после активации STANDBY DB вернуть её в состояние STANDBY невозможно. Перевод STANDBY DB в режим READ ONLY и STANDBY. Чтобы перевести БД в режим READ ONLY (например, для проверки работоспособности), когда БД находится в состоянии RECOVER MANAGED, необходимо подключиться к Standby БД пользователем internal и выполнить команду RECOVER MANAGED STANDBY DATABASE CANCEL; и ALTER DATABASE OPEN READ ONLY; Чтобы перевести STANDBY DB обратно в состояние Standby, необходимо выполнить следующие команды SHUTDOWN IMMEDIATE STARTUP NOMOUNT PFILE=<путь к файлу init.ora> (/oracle/product/admin/base/pfile/initbase.ora ) ALTER DATABASE MOUNT STANDBY DATABASE; RECOVER STANDBY DATABASE; (если нужно вручную докатывать архивные логи) RECOVER MANAGED STANDBY DATABASE(если нужно, чтобы архивные журналы докатывались автоматически); Возможные аварийные ситуации 1. Временный разрыв связи между сервером Base и Stand. (Hапример, сбой сети) Скопировать недостающий архивный файл с PRIMARY DB, Выполнить команду RECOVER MANAGED STANDBY DATABASE CANCEL; Докатить архивные файлы в ручном режиме - RECOVER STANDBY DATABASE; и перевести базу опять в режим RECOVER MANAGED STANDBY DATABASE; 2. Сбой экземпляра на Base или зависание сервера. Перегрузить STANDBY DB или OS. Докатываем архивные файлы вручную, если есть необходимость (RECOVER STANDBY DATABASE;) и переводим в режим RECOVER MANAGED STANDBY DATABASE; Если STANDBY DB не поднимается после сбоя, восстанавливаем экземпляр с холодной копии. 3. В случае потери работоспособности и невозможности восстановления рабочей БД Hеобходимо активировать STANDBY DB на резервном сервере как показано выше. Если, по каким либо причинам, это не удаётся, то нужно приступить к копированию и восстановлению с холодной копии БД. Регламентные работы Hе реже 4 раз в течение рабочего дня необходимо контролировать состояние STANDBY DB. Контролировать восстановление с помощью архивных файлов можно просмотрев файл ALERT.LOG, который находится /oracle/product/admin/<SID>/bdump/alert.log /ПРИМЕР/: Строка Media Recovery Waiting for thread 1 seq# 224 означает, что STANDBY DB докатила архивный лог #223 и ожидает #224. Если в архивном каталоге Primary DB находится архивный файл с последним номером больше #224, значит автоматического восстановления архивных логов не происходит и нужно ручное восстановление БД, (RECOVER STANDBY DATABASE). Так же для проверки можно использовать запрос select * from V_$ARCHIVED_LOG a where not exists (select 'q' from V_$ARCHIVED_LOG и where a.SEQUENCE#=b.SEQUENCE# and a.recid<>b.recid); Будет выведен список архивных файлов, которые есть на PRIMARY DB, но отсутствуют на STANDBY DB GAG, 2:478/25, koenig25@yandex.ru, ICQ:7755071 np: Хочу этот плагин под Winamp 3!!! * Origin: 2:478/25 (2:478/25) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.linux/14573ea6acdd.html, оценка из 5, голосов 10
|