Oracle DBA Forum  

Вернуться   Oracle DBA Forum > Clustering | High Ability > Oracle > Data Guard (standby)

Ответ
 
Опции темы Опции просмотра
  #11  
Старый 06.05.2011, 16:58
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Проверка работы Data Guard

Переключаем логи на primary, они должны будут начать применяться на standby

\\\\\\\\\\\ primary


SQL> alter system switch logfile;
SQL> alter system switch logfile;
SQL> alter system switch logfile;


SQL> archive log list

Код:
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     82
Next log sequence to archive   84
Current log sequence           84





\\\\\\\\\\Standby


SELECT sequence#, first_time, next_time, applied
FROM v$archived_log
ORDER BY sequence#;

Код:
SEQUENCE# FIRST_TIME         NEXT_TIME          APPLIED
---------- ------------------ ------------------ ---------
        78 30-MAY-11          30-MAY-11          YES
        79 30-MAY-11          30-MAY-11          YES
        80 30-MAY-11          30-MAY-11          YES
        81 30-MAY-11          30-MAY-11          YES
        82 30-MAY-11          30-MAY-11          YES
        83 30-MAY-11          30-MAY-11          IN-MEMORY
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 30.05.2011 в 14:59.
Ответить с цитированием
  #12  
Старый 06.05.2011, 17:10
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Перевод STANDBY в READ ONLY:

Соединяемся со STANDBY и выдаем:

SQL> alter database recover managed standby database cancel;

Media recovery complete.

Теперь логи все еще поступают на STANDBY, но она уже не «подкатывается».

SQL> alter database open read only;

Database altered.

Теперь с базой можно работать, но только в режиме чтения.

Вернуть базу в режим «подката» логов можно следуя тому же алгоритму, что был описан ранее.


=======================


Starting Up a Physical Standby Database

SQL> STARTUP MOUNT;


// Перезапустить процесс применения журналов.
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;

To start real-time apply, issue the following statement:
SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;



============================

Shutting Down a Physical Standby Database


# Issue the following query to find out if the standby database is performing Redo Apply or real-time apply. If the MRP0 or MRP process exists, then the standby database is applying redo.

SQL> SELECT PROCESS, STATUS FROM V$MANAGED_STANDBY;

# If log apply services are running, cancel them as shown in the following example:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

# Shut down the standby database.

SQL> SHUTDOWN;
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 30.05.2011 в 18:04.
Ответить с цитированием
  #13  
Старый 30.05.2011, 13:11
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

Переключение с основной (primary) БД на резервную (standby) без потери данных (SWITCHOVER)


http://wiki.oracle.com/page/11gR2+Da...+project+Part7

// primary


[[email protected] ~]$ sqlplus / as sysdba

SQL> select switchover_status from v$database;

Код:
SWITCHOVER_STATUS
--------------------
TO STANDBY

SQL> select max(sequence#) from v$log;

Код:
MAX(SEQUENCE#)
--------------
           100
// secondary



[[email protected] ~]$ sqlplus / as sysdba

SQL> select switchover_status from v$database;

Код:
SWITCHOVER_STATUS
--------------------
NOT ALLOWED

SQL> select max(sequence#) from v$log;

Код:
MAX(SEQUENCE#)
--------------
           100
===============================================

// secondary

SQL> SELECT client_process, process, sequence#, status from v$managed_standby;

// primary

SELECT thread#, sequence#, status from v$log;

Необходимо убедиться, что redo current, и все redo журналы были применены к standby database.


Необходимо, чтобы процесс MRP0 с тем же sequence был в статусе APPLYING_LOG

Если Вы не видете MRP0 line, значит, применение не запущено.

Если Вы видите статус WAIT_FOR_GAP, тогда, Вы недолжны делать switch over, пока проблема не будет решена.

Если Вы видите статус WAIT_FOR_LOG, тогда Вы не работаете в режиме применения в реальном времени, либо установлены задержки (DELAY) в применении. Если были установлены задержки в применении, необходимо остановить процесс применения и перестартовать его с использованием параметра NODELAY, иначе switchover не будет завершен.

====================

// primary

SQL> alter system archive log current;

// Инициирование перехода основной базы данных к роли физической резервной базы данных
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;


[[email protected] ~]$ tail -100f /u01/app/oracle/diag/rdbms/primary/primary/trace/alert_primary.log


// secondary

[[email protected] ~]$ tail -100f /u01/app/oracle/diag/rdbms/standby/standby/trace/alert_standby.log


[[email protected] ~]$ sqlplus / as sysdba
SQL> SELECT switchover_status from v$database;

Код:
SWITCHOVER_STATUS
--------------------
TO PRIMARY
// Статус должен быть TO PRIMARY. После этого можно переключиться к основной базе данных.
SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;
SQL> ALTER DATABASE OPEN;

--------------------------------------


// primary

[[email protected] ~]$ sqlplus / as sysdba
SHUTDOWN IMMEDIATE;
Код:
ORA-01092: ORACLE instance terminated. Disconnection forced

quit
sqlplus / as sysdba
STARTUP MOUNT;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT;


// secondary

alter system switch logfile;


select switchover_status from v$database;

Код:
SWITCHOVER_STATUS
--------------------
TO STANDBY
// primary



select switchover_status from v$database;

Код:
SWITCHOVER_STATUS
--------------------
NOT ALLOWED


================================================== =




SQL> set pagesize 1000
SQL> col comp_name format a36
SQL> col version format a12
SQL> col status format a8
SQL> col owner format a12
SQL> col object_name format a35
SQL> col name format a25

select NAME,sequence#, STAMP,ARCHIVED,APPLIED,DELETED,STATUS,REGISTRAR, to_char(COMPLETION_TIME, 'dd-mon-rr hh24:mi:ss') completion_time from v$archived_log order by sequence#;
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 30.05.2011 в 17:56.
Ответить с цитированием
  #14  
Старый 30.05.2011, 14:07
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

FAILOVER

1) Включаем FlashBack на каждом сервере

Код:
SQL> SELECT flashback_on FROM v$database;

FLASHBACK_ON
------------------
NO

shutdown immediate;
startup mount;
ALTER DATABASE FLASHBACK ON;
alter database open;


SQL> SELECT flashback_on FROM v$database;

Код:
FLASHBACK_ON
------------------
YES


// standby

Код:
SQL> SELECT name, value, time_computed FROM v$dataguard_stats WHERE name like '%lag%';

NAME                      VALUE                                                   TIME_COMPUTED
------------------------- ---------------------------------------------------------------- ------------------------------
transport lag             +00 00:00:00                                            05/30/2011 17:39:27
apply lag                                                                         05/30/2011 17:39:27

// primary

shutdown abort;


// standby


// Для остановки резервной базы данных, нужно сначала остановить применение журналов. Нужно задать запрос к представлению V$MANAGED_STANDBY. Если в нем будет перечилен сервис примееннения журанлов, его надо уничтожить следующией командой.
ALTER database recover managed standby database cancel;


// Если резервная база данных была сконфигурирована с реезерными журнальными файлками:
ALTER database recover managed standby database FINISH;

// Если резервных журнальных файлов нет, выполните:
ALTER database recover managed standby database FINISH skip standb logfile;


ALTER database commit to switchover to primary with session shutdown;
ALTER database OPEN;



// primary - поднимаем как standby

STARTUP MOUNT;


SQL> SELECT TO_CHAR(standby_became_primary_scn) FAILOVER_SCN from v$database;

Код:
FAILOVER_SCN
----------------------------------------
961994

FLASHBACK DATABASE TO SCN 961994;

ALTER database convert to PHYSICAL STANDBY;
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;

// Запустить процесс применения журналов
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 30.05.2011 в 18:02. Причина: FAILOVER
Ответить с цитированием
  #15  
Старый 30.05.2011, 17:51
Marley Marley вне форума
Senior Member
 
Регистрация: 19.09.2009
Сообщений: 7,211
По умолчанию

select switchover status from v$database;
  • NOT ALLOWED - Текущая база данных не является основной базой данных с резервной базой данных
  • PREPARING DICTIONARY - Эта логическая резервная база данных посылает свои жyрнальные данные в основнвую базу данных и остальные резервные базы данных для подготовки планового переключения.
  • PREPARING SWITCHOVER - Используется в логических резервных конфигурациях, когда журнальные данные принимаются для планового переключения.
  • RECOVERY NEEDED - эта резервная база данных не получила запроса на плановое переключение.
  • SESSION ACTIVE - в основной базе данных имеются активные сеаны SQL; они должны быть отключены перед продолжением.
  • SWITHOVER PENDING - является допустимым для резервных баз данных, в которых запрос на плановое пеерключение из основной базы данных был получен, но не обработан.
  • SWITCHOVER LATENT - плановое переключение не было завершено и было возвращено к основной базе данных
  • TO LOGICAL STANBY - основной базой данных был получен полный словарь из логитческой резервной базы данных.
  • TO PRIMARY - Данная резервная база данных может переключаться к роли основной базы данных.
  • TO STANDBY - Данная основная база данных может переключаться к роли резервной базы данных.
__________________
Чат форума (требуется аккаунт на github или twitter)

Последний раз редактировалось Marley; 13.08.2011 в 22:10.
Ответить с цитированием
Ответ

Метки
data guard, failover, oracle, standby, switchover

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 03:49. Часовой пояс GMT +3.


Powered by vBulletin®