Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Потеряна лог группа #3 Возможно ли востановление?  [new]
SDF
Guest
Всего логгрупп 4 штуки, в каждой по два файла.
При запуске вот эти ошибки если нет совсем лога:
ORA-00313: open failed for members of log group 3 of thread 1
ORA-00312: online log 3 thread 1: 'E:\DATABASE\LOG5.ORA'
ORA-00312: online log 3 thread 1: 'E:\DATABASE\LOG6.ORA'

и если подсовываю какой-то левый старый лог:
ORA-00314: log 3 of thread 1, expected sequence# doesn't match
ORA-00312: online log 3 thread 1: 'E:\DATABASE\LOG5.ORA'
ORA-00312: online log 3 thread 1: 'E:\DATABASE\LOG6.ORA'

Что можно сделать?
Спасибо.
6 июл 04, 17:38    [788249]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
SDF
Guest
поясню:
Пытаюсь восстановиться с холодного бэкапа, но в бэкап не вошла 3 и 4 лог группа, файлы LOG5,LOG6,LOG7,LOG8
6 июл 04, 17:41    [788256]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
denm
Member

Откуда: { empty }
Сообщений: 2792
Последние транзакции потеряны.

RECOVER DATABASE UNTIL CANCEL
6 июл 04, 17:47    [788273]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
SDF
Guest
Архивлоги в холодный бэкап не входят.
6 июл 04, 17:53    [788303]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
denm
Member

Откуда: { empty }
Сообщений: 2792
Потерянные логи были текущими на момент бэкапа?
Или они все-таки сархивировались, но их нет в вашем бэкапе?
6 июл 04, 18:02    [788327]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
nata1111
Member

Откуда:
Сообщений: 1800
recover database
cancel
alter database open resetlogs
6 июл 04, 18:10    [788368]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
new13
Guest
> Пытаюсь восстановиться с холодного бэкапа, но в бэкап не вошла 3 и 4 лог группа, файлы LOG5,LOG6,LOG7,LOG8

А зачем логи нужны при холодном архивировании (при корректной остановке базы)?!
7 июл 04, 01:30    [788908]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
Markelenkov
Member

Откуда:
Сообщений: 2312
new13
А зачем логи нужны при холодном архивировании (при корректной остановке базы)?!


https://www.sql.ru/forum/actualthread.aspx?bid=3&tid=84043&pg=2#674617
7 июл 04, 08:54    [789067]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
SDF
Guest
denm
Потерянные логи были текущими на момент бэкапа?
Или они все-таки сархивировались, но их нет в вашем бэкапе?


Да, похоже что они были текущими на момент остановки базы для холодного бэкапа.
7 июл 04, 08:59    [789072]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
raven13
Member

Откуда:
Сообщений: 668
Что дает

SELECT group#, status, member FROM v$logfile;
SELECT group#, members, status, archived FROM v$log;

Oracle 9i OCP DBA
7 июл 04, 09:31    [789136]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
new13
Guest
Markelenkov
new13
А зачем логи нужны при холодном архивировании (при корректной остановке базы)?!


https://www.sql.ru/forum/actualthread.aspx?bid=3&tid=84043&pg=2#674617

Уважаемый, вы предлагаете делать shutdown abort и не напрягаться?! :)

Вообще согласен, что онлайновые логи не лишние при холодном бэкапе, но можно жить и без них.
7 июл 04, 10:19    [789287]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
denm
Member

Откуда: { empty }
Сообщений: 2792
что-то я не понял предупреждение из документации:

--------------------------------------------------------------------------------
WARNING:

Oracle recommends that you do not back up a current online log, because if you restore that backup, the backup will appear at the end of the redo thread. Because additional redo may have been generated in the thread, when you attempt to execute recovery by supplying the redo log copy, recovery will erroneously detect the end of the redo thread and prematurely terminate, possibly corrupting the database.
--------------------------------------------------------------------------------

Поясните, plz, кто врубается.
7 июл 04, 10:30    [789325]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
new13
Guest
If you lose the current group, and the database is not closed cleanly (either it is
open, or it has crashed), then you will have to restore an old backup and do
point in time recovery, followed by open resetlogs. You will lose all transactions
that were in the lost log.

Вот это мне уже не нравится :(
7 июл 04, 10:40    [789368]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
Gluk (Kazan)
Member

Откуда:
Сообщений: 9365
2 denm

Насколько я понял, здесь говориться известная вещч, что не следует архивировать online redo логи. И объясняется почему. По той причине,
что их не следует включать в резервную копию их и рекомендуется
зеркалировать.
7 июл 04, 10:43    [789380]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
Violina
Member

Откуда: Санкт-Петербург
Сообщений: 3662
to denm

Не уверена что до конца понимаю, но преположение у меня есть.

Because additional redo may have been generated in the thread


Пока вы его копируете, в него могут писаться текущие изменения, так он является CURRENT. (По аналогии горячего копирования когда файл копируется и в тоже время в него что то пишется).

Насколько я помню, как поступать

можно сделать бэкап, потом сделать log switch и забэкапить его

либо

сделать archive log current и забэкапить только арклоги

to new13

Вот это мне уже не нравится :(


Ну а что вы хотели, откуда Oracle должен взять данные чтобы синронизировать базу при recovery если current redo log пропал.

Смотрите

_allow_resetlogs_corruption=true

Вот интересные threads в том числе и по этой теме

Для чего нужны журнальные файлы со статусом ACTIVE?

Что делает оракл при ....BEGIN BACKUP
7 июл 04, 10:46    [789384]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
sanek842
Member

Откуда: Тюмень
Сообщений: 1433
так понимаю берется холодный бэкап, но там недостает пару групп журналов
Так?

тогда можн так

SQL> startup
ORACLE instance started.

Total System Global Area   93089952 bytes
Fixed Size                   282784 bytes
Variable Size              79691776 bytes
Database Buffers           12582912 bytes
Redo Buffers                 532480 bytes
Database mounted.
ORA-00313: open failed for members of log group 2 of thread 1
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\TEST\REDO2\REDO02.LOG'
ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\TEST\REDO1\REDO02.LOG'


SQL> alter database clear unarchived logfile group 2;

Database altered.

SQL> alter database open;

Database altered.
SQL> 

тут 2 группа была текущей
7 июл 04, 11:22    [789518]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
SDF
Guest
Да, именно так у меня и есть. Сейчас попробую сделать по вашему способу.
7 июл 04, 13:40    [790233]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
SDF
Guest
Всё решилось, спасибо sanek842 !
7 июл 04, 16:32    [791165]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
new13
Guest
А совет Наты типа не устроил?!
7 июл 04, 16:50    [791241]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
Oracle newbie
Member

Откуда: Пересек границу МКАДа. Очнулся в Лондоне.
Сообщений: 1019
2 sanek842
sanek842
тут 2 группа была текущей

Вы точно проверили что группа была CURRENT ? И его не было на файловой системе?

Есть подозрение что все таки был очищен не CURRENT redo group или же существовал файл той же группы .

2 new13
Предложение nata1111 было верным, но есть нюанс.
Если это не CURRENT group то ее можно восстановить способом предложенным sanek842 . Если потеряна CURRENT redo group и нет больше файлов этой группы даже более новых, то только RESETLOGS.

LOGFILE CLEAR предпочтительнее, так как при этом не делается реинкарнация БД.то есть там где есть возможность нужно использовать LOGFILE CLEAR . если же нету, то RESETLOGS.

Кстати говоря предложение LOGFILE CLEAR работает если взять просто rego log c БД но с другими sequence# (см. сообщение автора, он это пытался сделать , но не до конца. Он просто скопировал более новые redo на старые и хотел чтобы все работало. В этом случае ему стоило сделать LOGFILE CLEAR и после очистки redo log у него случилось бы счастье).
поэтому предпочтительнее чтобы redo logs мультиплексировались .важно чтобы он был той же группы и с той же БД.



Успехов.

Savenkov Vitaly,
Oracle Technical Support, FORS DC.
7 июл 04, 17:27    [791424]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
sanek842
Member

Откуда: Тюмень
Сообщений: 1433
Oracle newbie

Есть подозрение что все таки был очищен не CURRENT redo group или же существовал файл той же группы

был current ( да их вообще можно было все удалить )

вся фишка в чем, SDF брал холодный бэкап и сразу пытался его открыть , а поскольку холодный бэкап - это копирование файлов на нормально закрытой базе, то SCN на всех файлах были равны, т.е. заголовки синхронизированы, поэтому и открылось нормально после очистки, тут online журналы нужны были скорее формально ( только чтоб они были ) а не для восстановления, вот мы их и пересоздали заново раз их нет.
Другое дело, иной случай ( наверное про который вы подумали ), если вся эта беда ( потеря текущих Redo ) случилась бы на открытой базе, да еще и в момент активности, + падение экземпляра ( например, сбой дискового контроллера ), и мы подымали бы ее, основную базу, вот здесь 100% пришлось бы делать неполное восстановление


Кстати говоря предложение LOGFILE CLEAR работает если взять просто rego log c БД но с другими sequence#

Там брать ничего не нужно, эта команда абсолютно равнозначна этим следом идущим:
1. alter database drop logfile group ..
2. физическое удаление файлов если они есть
3. alter database add logfile group ..

;)
8 июл 04, 07:26    [792181]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
Oracle newbie
Member

Откуда: Пересек границу МКАДа. Очнулся в Лондоне.
Сообщений: 1019
2 sanek842
2 sanek842
Там брать ничего не нужно, эта команда абсолютно равнозначна этим следом идущим:
1. alter database drop logfile group ..
2. физическое удаление файлов если они есть
3. alter database add logfile group

;)

Тут я точно не согласен . CURRENT redo group удалить нельзя. Поэтому и возникло сомнение насчет того что была очищена CURRENT group и ее не было на диске. Не могли бы Вы еще раз проверить? Спасибо.

Успехов.

Savenkov Vitaly,
Oracle Technical Support, FORS DC.
8 июл 04, 09:53    [792413]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
sanek842
Member

Откуда: Тюмень
Сообщений: 1433
ну тут как,
если удалить файлы current redo группы на ОТКРЫТОЙ базе, то прежде чем делать clear нужно переключиться( alter system switch logfile )
а если БД закрыта ( удалить их из холодного бэкапа ), то еще проще

ну вот
SQL> connect / as sysdba
Connected to an idle instance.
SQL> startup
ORACLE instance started.

Total System Global Area   93089952 bytes
Fixed Size                   282784 bytes
Variable Size              79691776 bytes
Database Buffers           12582912 bytes
Redo Buffers                 532480 bytes
Database mounted.
Database opened.

SQL> r
  1  select l1.group#,archived,l1.status,member
  2  from v$log l1,v$logfile l2
  3* where l1.GROUP#=l2.GROUP# and l1.status='CURRENT'

    GROUP# ARC STATUS           MEMBER
---------- --- ---------------- ---------------------------------------------

2 NO CURRENT E:\ORACLE\ORADATA\TEST\REDO2\REDO02.LOG 2 NO CURRENT E:\ORACLE\ORADATA\TEST\REDO1\REDO02.LOG SQL> alter database clear unarchived logfile group 2; alter database clear unarchived logfile group 2 * ERROR at line 1: ORA-01624: log 2 needed for crash recovery of thread 1 ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\TEST\REDO2\REDO02.LOG' ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\TEST\REDO1\REDO02.LOG' SQL> shutdown Database closed. Database dismounted. ORACLE instance shut down. SQL> host del E:\ORACLE\ORADATA\TEST\REDO2\REDO02.LOG SQL> host del E:\ORACLE\ORADATA\TEST\REDO1\REDO02.LOG SQL> startup ORACLE instance started. Total System Global Area 93089952 bytes Fixed Size 282784 bytes Variable Size 79691776 bytes Database Buffers 12582912 bytes Redo Buffers 532480 bytes Database mounted. ORA-00313: open failed for members of log group 2 of thread 1 ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\TEST\REDO2\REDO02.LOG' ORA-00312: online log 2 thread 1: 'E:\ORACLE\ORADATA\TEST\REDO1\REDO02.LOG' SQL> alter database clear unarchived logfile group 2; Database altered. SQL> alter database open; Database altered. SQL>

с таким же успехом можно удалить все логи и до открытия БД их воссаздать

а у вас как?
8 июл 04, 12:27    [793124]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
Oracle newbie
Member

Откуда: Пересек границу МКАДа. Очнулся в Лондоне.
Сообщений: 1019
да, я очень удивлен ибо у меня по другому ;)

SQL> startup mount
ORACLE instance started.

Total System Global Area  236000356 bytes
Fixed Size                   451684 bytes
Variable Size             134217728 bytes
Database Buffers          100663296 bytes
Redo Buffers                 667648 bytes
Database mounted.

SQL> select l1.group#,archived,l1.status,member
  2  from v$log l1,v$logfile l2 where l1.GROUP#=l2.GROUP#;

    GROUP# ARC STATUS           MEMBER
---------- --- ---------------- --------------------------------------------------

1 NO CURRENT /u00/app/oracle/oradata/rat.cold/redo01.log 2 YES INACTIVE /u00/app/oracle/oradata/rat.cold/redo02.log 3 YES INACTIVE /u00/app/oracle/oradata/rat.cold/redo03.log 4 YES INACTIVE /u00/app/oracle/oradata/rat.cold/redo04.log SQL> ho oracle@rat:~/oradata/rat> mv /u00/app/oracle/oradata/rat.cold/redo01.log /u00/app/oracle/oradata/rat.cold/redo01.log_ oracle@rat:~/oradata/rat> mv /u00/app/oracle/oradata/rat.cold/redo02.log /u00/app/oracle/oradata/rat.cold/redo02.log_ oracle@rat:~/oradata/rat> exit SQL> alter database clear unarchived logfile group 1; --это CURRENT group
alter database clear unarchived logfile group 1 * ERROR at line 1: ORA-00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/u00/app/oracle/oradata/rat.cold/redo01.log' ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Additional information: 3 SQL> alter database clear unarchived logfile group 2;--это INACTIVE group -
Database altered. SQL>


Пока что никак не могу прокомментировать, показал только то, что вижу.


Успехов.

Savenkov Vitaly,
Oracle Technical Support, FORS DC.
8 июл 04, 13:26    [793393]     Ответить | Цитировать Сообщить модератору
 Re: Потеряна лог группа #3 Возможно ли востановление?  [new]
sanek842
Member

Откуда: Тюмень
Сообщений: 1433
так я для текущей группы clear делал до открытия базы, поэтому и получилось
:)
попробуйте вот так
SQL> startup mount
ORACLE instance started.

Total System Global Area   93089952 bytes
Fixed Size                   282784 bytes
Variable Size              79691776 bytes
Database Buffers           12582912 bytes
Redo Buffers                 532480 bytes
Database mounted.
SQL> 
SQL> select l1.group#,archived,l1.status,member
  2  from v$log l1,v$logfile l2
  3  where l1.GROUP#=l2.GROUP# and l1.status='CURRENT';

    GROUP# ARC STATUS           MEMBER
---------- --- ---------------- ---------------------------------------------

1 NO CURRENT E:\ORACLE\ORADATA\TEST\REDO2\REDO01.LOG 1 NO CURRENT E:\ORACLE\ORADATA\TEST\REDO1\REDO01.LOG SQL> alter database clear unarchived logfile group 1; Database altered. SQL> alter database open; Database altered.

а на открытой базе ( ваш пример ) переключение нужно сделать, а то не дает ...
вот что и вправду подругому, так это то как она ругается
у меня так ( не дает выполнить команду )
ORA-01624: log 2 needed for crash recovery of thread 1
...
а у вас пытается что то делать
???

почему?

может из-за различия версий ( у меня 9.1.0.4 )
8 июл 04, 14:35    [793705]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Oracle Ответить