26окт
Проблемы со standby. Не передаются журнальные файлы на резервную базу данных.
Есть промышленная база данных (primary) и резервная (standby) . Процесс наката журнальных файлов происходил автоматически и без проблем. Случилось так, что standby не работал несколько дней (был выключен). После монтирования резервной базы несколько журнальных файлов не были переданы с primary. В тоже время текущие файлы передаются без проблем. Но накат на standby не происходит, пока не будут получены пропущенные файлы.
В алерте на резервном сервере имеем такое сообщение:
MRP0: Background Managed Standby Recovery process started
Media Recovery Waiting for thread 1 seq# 5769
Fetching gap sequence for thread 1, gap sequence 5769-5771
Trying FAL server: my_db.dpa.km.sta.ua
Wed Oct 24 09:08:47 2007
Completed: ALTER DATABASE RECOVER managed standby database d
Wed Oct 24 09:10:18 2007
Failed to request gap sequence. Thread #: 1, gap sequence: 5769-5771
All FAL server has been attempted.
В алерте на основном сервере имеем такое сообщение:
FAL: Can't identify FAL client, null string supplied
Thread 1, gap sequence 5769-5771
FAL: Can't identify FAL client, null string supplied
Thread 1, gap sequence 5769-5771
Wed Oct 24 16:46:20 2007
FAL: Can't identify FAL client, null string supplied
Thread 1, gap sequence 5769-5771
В представлении v$log_history видно, что последний накатанный файл recid=5768. А в V$RECOVERY_LOG ничего нет для наката. Запрос SELECT * FROM V$ARCHIVE_GAP выдает :
THREAD# LOW_SEQUENCE# HIGH_SEQUENCE#
1 5769 5771
Недостающие файлы вручную скопировали на резервный сервер, выполнили следующие действия:
SQL> recover managed standby database disconnect from session;
Media recovery complete.
SQL> alter database register logfile 'C:\oracle\oradata\my_db\my_db_archive\arc05769.001 ';
Database altered.
SQL> alter database register logfile 'C:\oracle\oradata\my_db\my_db_archive\arc05770.001';
Database altered.
SQL> alter database register logfile 'C:\oracle\oradata\my_db\my_db_archive\arc05771.001';
Database altered.
После чего начался автоматический накат журнальных файлов. В алерте на резервном сервере это выглядит так:
Wed Oct 24 17:55:22 2007
alter database register logfile 'C:\oracle\oradata\my_db\my_db_archive\arc05769.001 '
Wed Oct 24 17:55:22 2007
There are 1 logfiles specified.
ALTER DATABASE REGISTER [PHYSICAL] LOGFILE
Completed: alter database register logfile 'C:\oracle\oradata
Wed Oct 24 17:55:33 2007
Media Recovery Log C:\ORACLE\ORADATA\MY_DB\MY_DB_ARCHIVE\ARC05769.001
Wed Oct 24 17:55:37 2007
alter database register logfile 'C:\oracle\oradata\my_db\my_db_archive\arc05770.001'
Wed Oct 24 17:55:37 2007
There are 1 logfiles specified.
ALTER DATABASE REGISTER [PHYSICAL] LOGFILE
Completed: alter database register logfile 'C:\oracle\oradat
Wed Oct 24 17:55:39 2007
Media Recovery Log C:\ORACLE\ORADATA\MY_DB\MY_DB_ARCHIVE\ARC05770.001
Media Recovery Waiting for thread 1 seq# 5771
Fetching gap sequence for thread 1, gap sequence 5771-5771
Trying FAL server: my_db.dpa.km.sta.ua
Wed Oct 24 17:55:49 2007
alter database register logfile 'C:\oracle\oradata\my_db\my_db_archive\arc05771.001'
Wed Oct 24 17:55:49 2007
There are 1 logfiles specified.
ALTER DATABASE REGISTER [PHYSICAL] LOGFILE
Completed: alter database register logfile 'C:\oracle\oradata
Wed Oct 24 17:55:59 2007
Media Recovery Log C:\ORACLE\ORADATA\MY_DB\MY_DB_ARCHIVE\ARC05771.001
Media Recovery Log C:\ORACLE\ORADATA\MY_DB\MY_DB_ARCHIVE\ARC05772.001
Media Recovery Log C:\ORACLE\ORADATA\MY_DB\MY_DB_ARCHIVE\ARC05773.001
Media Recovery Log C:\ORACLE\ORADATA\MY_DB\MY_DB_ARCHIVE\ARC05774.001
Вот таким образом решили проблему. Если бы recover managed не отработал, то можно было бы накатить командой recover automatic standby database;
Успехов Вам!
Тут немного документации:


