http://www.adp-gmbh.ch/ora/data_guard/create_physical_standby_db.html
Cоздать физический Standby
1. Подготовить первичную базу
Проверить, что база находится в ARCHIVELOG:
SQL> ARCHIVE LOG LIST;
SQL> ALTER DATABASE FORCE LOGGING;
создать файл паролей
сконфигурировать параметры для транспортировки REDO на Standby:
LOG_ARCHIVE_CONFIG=DG_CONFIG=(db1,db2)
LOG_ARCHIVE_DEST_1='SERVICE=rdb2 ASYNC DB_UNIQUE_NAME=db2 DELAY=180'
LOG_ARCHIVE_DEST_STATE_1=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
сконфигурировать параметры переключения в standby:
FAL_SERVER=db1 - должен быть на стороне standby и указывать на имя сервиса (и заодно уникальное имя) основной базы
FAL_CLIENT - не обязательно в 11g
DB_FILE_NAME_CONVERT,
STANDBY_FILE_MANAGEMENT
2. Создать Backup первичной базы (с помощью RMON например)
3. Создать controlfile для Standby-базы на первичной базе
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/boston.ctl';
4. Подготовить файл параметров для Standby-базы
CREATE PFILE='/tmp/initboston.ora' FROM SPFILE;
поменять некоторые параметры (
DB_UNIQUE_NAME=db2
и т.д....)
5. Установить Oracle и создать Instance Standby-базы
создать файл паролей
сконфигурировать listener
установить таймаут в SQLNET.ORA: SQLNET.EXPIRE_TIME=2
создать имена Oracle Net service names.
Восстановить базу из backup'а
rman:
nls_date_format=dd-mm-yy hh24:mi:ss
export NLS_LANG=american_america.we8iso8859p15
Стартовать: STARTUP OPEN READ ONLY;
startup mount pfile=rdb_init.ora
6. Включить применение REDO на Standby базе
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION
!! Открыть базу в режиме READ ONLY
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN;
!! Переключить standby базу в режим primary
на primary:
ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH
SESSION SHUTDOWN;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
на standby:
SELECT SWITCHOVER_STATUS FROM V$DATABASE;
- должен быть или TO PRIMARY or SESSIONS ACTIVE
ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
проверить, что все хорошо:
SELECT MESSAGE FROM V$DATAGUARD_STATUS;
select * from v$archive_dest
select * from v$archive_dest_status
если нужно сделать SNAPSHOT STANDBY
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
alter system set db_recovery_file_dest_size = 20G;
alter system set db_recovery_file_dest='/opt/oracle10/flash_recovery_area/rdb4';
ALTER DATABASE CONVERT TO SNAPSHOT STANDBY;
потом обратно:
ALTER DATABASE CONVERT TO PHYSICAL STANDBY;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
|