четверг, 27 июня 2013 г.

Инструкция для создания StandBy

Конфигурация с учетом использования ASM, предполагается что сервер уже работает в режиме archivelog


Подготовка primary сервера

включаем FORCE LOGGING
ALTER DATABASE FORCE LOGGING;
добавляем стэндбай логи, на случай смены роли сервера, добавляем сколько нужно
ALTER DATABASE ADD STANDBY LOGFILE ('+ARCH') SIZE 50M; 
Настраиваем в tnsnames записи об primary и standby
Настраиваем параметры оракла
DB_NAME=primary
DB_UNIQUE_NAME=primary 
LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,stanby)'
LOG_ARCHIVE_DEST_1= 'LOCATION=+ARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=primary'
LOG_ARCHIVE_DEST_2= 'SERVICE=standby ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=standby' LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
добавляем параметры на случай смены ролей
FAL_SERVER=standby
DB_FILE_NAME_CONVERT='standby','primary'
LOG_FILE_NAME_CONVERT='standby','primary'
STANDBY_FILE_MANAGEMENT=AUTO

Подготовка standby сервера 

на primary делаем полный backup 
~> rman target / 
RMAN>CONFIGURE CHANNEL DEVICE TYPE DISK FORMAT '/oracle_backup/DB_UNIQ_NAME/%U'; 
RMAN>backup device type disk database; 
cнимаем копию контролфайла для стэндбая
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/standby.ctl';
снимаем копию инитфайла для стэндбая
CREATE PFILE='/tmp/initSTANDBY.ora' FROM SPFILE;
Переносим все на стэндбай сервер: бэкап вместе с директорией, контролфайл, инитфайл и орапвдфайл
Редактируем initSTANDBY.ora
DB_NAME=primary
DB_UNIQUE_NAME=standby
CONTROL_FILES='/place/for/standby.ctl'
LOG_ARCHIVE_CONFIG='DG_CONFIG=(primary,stanby)'
LOG_ARCHIVE_DEST_1= 'LOCATION=+ARCH VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=standby'
LOG_ARCHIVE_DEST_2= 'SERVICE=primary ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=primary' LOG_ARCHIVE_DEST_STATE_1=ENABLE
LOG_ARCHIVE_DEST_STATE_2=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
LOG_ARCHIVE_MAX_PROCESSES=30
FAL_SERVER=primary
DB_FILE_NAME_CONVERT='primary', 'standby'
LOG_FILE_NAME_CONVERT='primary','standby'
STANDBY_FILE_MANAGEMENT=AUTO
Восстанавливаем базу
sqlplus>STARTUP NOMOUNT
~> rman target /
RMAN>restore database;
После восстановления переводим в режим подкачки логов
sqlplus>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

вариант бэкапа
BACKUP DATABASE
  INCLUDE CURRENT CONTROLFILE FOR STANDBY 
  PLUS ARCHIVELOG;

Активация стэндбая 

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
ALTER DATABASE ACTIVATE STANDBY DATABASE;
После этого можно открыть БД для доступа пользователей в режиме чтения-записи:
ALTER DATABASE OPEN; 


Настройка rman для удаления архивлогов


CONFIGURE ARCHIVELOG DELETION POLICY TO APPLIED ON ALL STANDBY

Режим switchover 

Primary переводится в режим standby A
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN; SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
Standby переводится в primary
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH;
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SHUTDOWN IMMEDIATE;
STARTUP;
Ну и на теперь текущем standby включается накат логов 
sqlplus>ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT;

Режим FAILOVER

Перекинуть руками архивлоги по возможности.
Standby переводится в primary
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH; 
либо при проблемах
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE FINISH FORCE; 
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;
SHUTDOWN IMMEDIATE;
STARTUP; 

Комментариев нет:

Отправить комментарий