Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
 Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
База 8.1.7 NOARCHIVELOG, бэкапа нет, располагалась на 5 винтах.
Один винт помер. Отвез на восстановление данных. Данные восстановили, из 7 с лишним миллионов LBA не прочитались 17.
Те данные, что были на битом винте, от 26 числа вечера, те что с остальных, 27 число утро. Т.е. сбой произошел ночью или утром.
Запускаю базу.
SVRMGR> startup mount pfile=d:\oradb\rab1\initrab1.ora;
ORACLE instance started.
Total System Global Area                       1239398428 bytes
Fixed Size                                          75804 bytes
Variable Size                                   551116800 bytes
Database Buffers                                688128000 bytes
Redo Buffers                                        77824 bytes
Database mounted.
SVRMGR> alter database open;
alter database open
*
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 50368 change 500684014 time 05/27/2014 08:07:12
ORA-00312: online log 3 thread 1: 'D:\ORADB\RAB1\LOG03.ORA'


AlertLog
Dump file d:\oradb\rab1\bdump\rab1ALRT.LOG
Tue Jun 03 10:52:08 2014
ORACLE V8.1.7.0.0 - Production vsnsta=0
vsnsql=e vsnxtr=3
Windows 2000 Version 5.1 Service Pack 3, CPU type 586
Starting up ORACLE RDBMS Version: 8.1.7.0.0.
System parameters with non-default values:
  processes                = 200
  resource_limit           = TRUE
  shared_pool_size         = 530000000
  large_pool_size          = 0
  java_pool_size           = 5242880
  control_files            = d:\oradb\rab1\control01.ctl, d:\oradb\rab1\control02.ctl, d:\oradb\rab1\control03.ctl
  db_block_buffers         = 84000
  db_block_size            = 8192
  compatible               = 8.1.7.0.0
  log_buffer               = 32768
  log_checkpoint_interval  = 10000
  log_checkpoint_timeout   = 1800
  db_files                 = 1020
  db_file_multiblock_read_count= 20
  dml_locks                = 200
  max_enabled_roles        = 30
  remote_login_passwordfile= EXCLUSIVE
  global_names             = TRUE
  distributed_transactions = 10
  instance_name            = rab1
  service_names            = rab1
  open_links               = 4
  sort_area_size           = 1048576
  sort_area_retained_size  = 0
  db_name                  = rab1
  open_cursors             = 100
  os_authent_prefix        = 
  optimizer_mode           = CHOOSE
  text_enable              = TRUE
  parallel_max_servers     = 5
  background_dump_dest     = d:\oradb\rab1\bdump
  user_dump_dest           = d:\oradb\rab1\udump
  max_dump_file_size       = 10240
  oracle_trace_collection_name= 
PMON started with pid=2
DBW0 started with pid=3
LGWR started with pid=4
CKPT started with pid=5
SMON started with pid=6
RECO started with pid=7
Tue Jun 03 10:52:10 2014
alter database  mount
Tue Jun 03 10:52:14 2014
Successful mount of redo thread 1, with mount id 676429086.
Tue Jun 03 10:52:14 2014
Database mounted in Exclusive Mode.
Completed: alter database  mount
Tue Jun 03 10:52:25 2014
alter database open
Tue Jun 03 10:52:26 2014
Beginning crash recovery of 1 threads
Tue Jun 03 10:52:26 2014
Thread recovery: start rolling forward thread 1
Recovery of Online Redo Log: Thread 1 Group 3 Seq 431908 Reading mem 0
  Mem# 0 errs 0: D:\ORADB\RAB1\LOG03.ORA
ORA-368 signalled during: alter database open...


LOG03.ORA располагался на том самом битом винте, логи по одному в группе.
кроме того там лежали
CONTROL01.CTL
PARUS.DAT
DATA0.ORA
LOG01.ORA
LONG.ORA

SVRMGR> select * from v$log;
GROUP#     THREAD#    SEQUENCE#  BYTES      MEMBERS    ARC STATUS           FIRST_CHAN FIRST_TIM
---------- ---------- ---------- ---------- ---------- --- ---------------- ---------- ---------
         1          1     431905   52428800          1 NO  INACTIVE          500639387 26.05.14
         2          1     431906   52428800          1 NO  INACTIVE          500644540 26.05.14
         3          1     431908   52428800          1 NO  CURRENT           500670751 26.05.14
         4          1     431907   52428800          1 NO  INACTIVE          500660427 26.05.14
4 rows selected.


SVRMGR> select * from v$datafile_header;
FILE#      STATUS  ERROR              FORMAT     REC FUZ CREATION_C CREATION_ TABLESPACE_NAME                TS#        RFILE#     RESETLOGS_ RESETLOG
S CHECKPOINT CHECKPOIN CHECKPOINT BYTES      BLOCKS     NAME
---------- ------- ------------------ ---------- --- --- ---------- --------- ------------------------------ ---------- ---------- ---------- --------
- ---------- --------- ---------- ---------- ---------- --------------------------------------------------------------------------------
         1 ONLINE                              8 NO               4 11.09.02  SYSTEM                                  0          1          1 11.09.02
   500670751 26.05.14      435030  524288000      64000 D:\ORADB\RAB1\PARUSSYS.ORA
         2 ONLINE                              8 NO           34469 11.09.02  PARUS_MAIN                              1          2          1 11.09.02
   500670751 26.05.14      433952 1,8570E+10    2266880 D:\ORADB\RAB1\PARUS.DAT
         3 ONLINE                              8 NO       177230007 07.12.05  LONG                                   36          3          1 11.09.02
   500670751 26.05.14       28055  112230400      13700 D:\ORADB\RAB1\LONG.ORA
         4 ONLINE                              8 NO       429777104 05.01.11  TEMPORARY                              24          4          1 11.09.02
   500670751 26.05.14        6238 3904897024     476672 D:\ORADB\RAB1\TEMPORARY.ORA
         5 ONLINE                              8 NO       170351017 04.11.05  DATA0                                  27          5          1 11.09.02
   500670751 26.05.14       29314  524533760      64030 D:\ORADB\RAB1\DATA0.ORA
         6 ONLINE                              8 NO       473286720 13.02.13  DATA3_NEW                              37          6          1 11.09.02
   500670751 26.05.14        2522 2,5395E+10    3100000 D:\ORADB\RAB1\DATA3.ORA
         7 ONLINE                              8 NO       473287707 13.02.13  INDX3_NEW                              38          7          1 11.09.02
   500670751 26.05.14        2521 2,0316E+10    2480000 D:\ORADB\RAB1\INDX3_NEW.ORA
        10 ONLINE                              8 NO       170351031 04.11.05  INDX0                                  28         10          1 11.09.02
   500670751 26.05.14       29311 1121402880     136890 D:\ORADB\RAB1\INDX0.ORA
        11 ONLINE                              8 NO       134260363 28.02.05  ROLLBACK                               23         11          1 11.09.02
   500670751 26.05.14       32423 2717204480     331690 D:\ORADB\RAB1\ROLLBACK.ORA
        13 ONLINE                              8 NO       170391893 04.11.05  DATA1                                  29         13          1 11.09.02
   500670751 26.05.14       29307 1,2901E+10    1574800 D:\ORADB\RAB1\DATA1.ORA
        14 ONLINE                              8 NO       170391571 04.11.05  INDX1                                  30         14          1 11.09.02
   500670751 26.05.14       29306 5445222400     664700 D:\ORADB\RAB1\INDX1.ORA
        15 ONLINE                              8 NO       170391970 04.11.05  DATA2                                  31         15          1 11.09.02
   500670751 26.05.14       29305 4464640000     545000 D:\ORADB\RAB1\DATA2.ORA
        16 ONLINE                              8 NO       170391983 04.11.05  INDX2                                  32         16          1 11.09.02
   500670751 26.05.14       29304 1,4107E+10    1722000 D:\ORADB\RAB1\INDX2.ORA
13 rows selected.


Пробовал различные вариации с RECOVER DATABASE, открыть с RESETLOGS и параметром _allow_resetlogs_corruption = true
падает Oracle.

Что делать?
3 июн 14, 09:26    [16110326]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Не надо _reset_log_corruption

У тебя проблема с журнальными файлами
Если база опустилась не SHUTDOWN [TRANSACTION/IMMEDIATE], а прибитием процессов, то да, могут быть проблемы
В любом случае, необходимо рассказать всю предысторию, чтоб не получать ответов типа "пересоздай контролфайл и открой с RESETLOGS"
3 июн 14, 09:33    [16110356]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
Вячеслав Любомудров
Не надо _reset_log_corruption

У тебя проблема с журнальными файлами
Если база опустилась не SHUTDOWN [TRANSACTION/IMMEDIATE], а прибитием процессов, то да, могут быть проблемы
В любом случае, необходимо рассказать всю предысторию, чтоб не получать ответов типа "пересоздай контролфайл и открой с RESETLOGS"


не помнит народ как потушил сервер, но подозреваю что без shutdown
3 июн 14, 09:35    [16110365]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Что говорит простой RECOVER DATABASE?
3 июн 14, 09:38    [16110377]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
Вячеслав Любомудров,
SVRMGR> recover database;
ORA-00283: recovery session canceled due to errors
ORA-00368: checksum error in redo log block
ORA-00353: log corruption near block 50368 change 500684014 time 05/27/2014 08:07:12
ORA-00312: online log 3 thread 1: 'D:\ORADB\RAB1\LOG03.ORA'


Dump file d:\oradb\rab1\bdump\rab1ALRT.LOG
Tue Jun 03 11:39:48 2014
ORACLE V8.1.7.0.0 - Production vsnsta=0
vsnsql=e vsnxtr=3
Windows 2000 Version 5.1 Service Pack 3, CPU type 586
Tue Jun 03 11:39:48 2014
ALTER DATABASE RECOVER   database  
Tue Jun 03 11:39:48 2014
Media Recovery Start
Media Recovery Log 
Recovery of Online Redo Log: Thread 1 Group 3 Seq 431908 Reading mem 0
  Mem# 0 errs 0: D:\ORADB\RAB1\LOG03.ORA
Tue Jun 03 11:40:06 2014
Media recovery buffers written to disk due to log corruption.
Some changes at scn 500684014 may be on disk
Media Recovery failed with error 368
ORA-283 signalled during: ALTER DATABASE RECOVER   database  ...
Tue Jun 03 11:40:06 2014
ALTER DATABASE RECOVER CANCEL
ORA-1112 signalled during: ALTER DATABASE RECOVER CANCEL...
3 июн 14, 09:41    [16110383]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
ДаВот
Guest
lgpswd,
1) Сделать копию всего!!! Очень надеюсь, что все манипуляции которые были проведены, были сделаны после того, как была сделана копия.
2) startup mount
3) узнать scn файлов данных. Дальше могут быть варианты. Надо точно знать эти scn для каждого файла.
4) узнать у 3го redo его последний scn. Дальше могут быть варианты. Надо точно знать последний scn у 3го redo. Он должен быть близко к 500684014 . Судя по всему битый блок почти в самом конце цепочки.
5) идея: поправить 3й redo так, чтобы выкинуть эти битые блоки из восстановления при запуске БД. Но это почти с гарантированным риском потери части изменений хранящихся в этом редо.
И что dbv скажет по 3 му redo? Подберите размер блока для этого запуска dbv.
3 июн 14, 09:47    [16110410]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
ДаВот
Guest
lgpswd,
Пробовал различные вариации с RECOVER DATABASE, открыть с RESETLOGS и параметром _allow_resetlogs_corruption = true
падает Oracle.
А как конкретно падает? И уберите пока _allow_resetlogs_corruption = true .
3 июн 14, 09:51    [16110423]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
Ну тогда действительно попробовать "пересоздай контролфайл и открой с RESETLOGS" (естественно, после копии все, что было)
3 июн 14, 09:54    [16110437]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
ДаВот
lgpswd,
1) Сделать копию всего!!! Очень надеюсь, что все манипуляции которые были проведены, были сделаны после того, как была сделана копия.
2) startup mount
3) узнать scn файлов данных. Дальше могут быть варианты. Надо точно знать эти scn для каждого файла.
4) узнать у 3го redo его последний scn. Дальше могут быть варианты. Надо точно знать последний scn у 3го redo. Он должен быть близко к 500684014 . Судя по всему битый блок почти в самом конце цепочки.
5) идея: поправить 3й redo так, чтобы выкинуть эти битые блоки из восстановления при запуске БД. Но это почти с гарантированным риском потери части изменений хранящихся в этом редо.
И что dbv скажет по 3 му redo? Подберите размер блока для этого запуска dbv.


1) Разумеется сделано
3) см. первый пость, там у всех фалов checkpoint 500670751, или это не то?
4) как узнать последний scn у 3го редо?
5) данные побоку, ночью никто не работал, там и данных то практически нету, ну модет утром кто пару накладных набил

что такое dbv?
3 июн 14, 09:56    [16110447]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
кстати еще, control02.ctl и control03.ctl, которые находились на хороших винтах одинаковы, а control01.ctl соответственно нет. Чек суммы у них разные.
3 июн 14, 09:58    [16110460]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
ДаВот
Guest
lgpswd,
данные побоку
Тогда действительно
"пересоздай контролфайл и открой с RESETLOGS" (естественно, после копии все, что было)
А если "падает", пиши как именно "падает".
3 июн 14, 09:59    [16110470]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
lgpswd
кстати еще, control02.ctl и control03.ctl, которые находились на хороших винтах одинаковы, а control01.ctl соответственно нет. Чек суммы у них разные.
Они должны быть все одинаковы
Скопируй с "хорошего места" в "плохое"
3 июн 14, 10:04    [16110495]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
извиняюсь за глупый вопрос, я не админ, разработчик.
а как пересоздать контрол файлы?
3 июн 14, 10:07    [16110505]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
alter database backup controlfile to trace
И ищешь новый файлик в d:\oradb\rab1\udump
Исправляешь там ненужное и т.д.
Еще раз -- предварительно бэкап всего
Судя по ошибке, у тебя данные могли записаться в датафайлы и им не особенно нужно восстановление
Но может быть и задница, тогда (если с первого раза не пролезет) _allow_resetlog_corruption может помочь, но базу после этого выкидывать на помойку (хотя некоторые живут)
3 июн 14, 10:15    [16110556]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
SVRMGR> alter database open resetlogs;
alter database open resetlogs
*
ORA-01139: RESETLOGS option only valid after an incomplete database recovery


я так понимаю что это из-за того что я делал RECOVER DATABASE и он думает что оно еще продолжается?
3 июн 14, 10:24    [16110617]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
kinky cat
Member

Откуда: с дивана23
Сообщений: 1238
lgpswd,
контрольник пересоздал ? приведи лог действий
3 июн 14, 10:29    [16110643]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
kinky cat,

да контрольник пересоздал, лог действий весь в этом топике
3 июн 14, 10:32    [16110664]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18484
recover database until cancel
cancel
3 июн 14, 10:34    [16110684]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
SVRMGR> recover database until cancel;
ORA-00279: change 500684014 generated at 05/27/2014 08:07:12 needed for thread 1
ORA-00289: suggestion : C:\ORACLE\ORA81\RDBMS\ARC31908.001
ORA-00280: change 500684014 for thread 1 is in sequence #431908
Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
cancel
ORA-01547: warning: RECOVER succeeded but OPEN RESETLOGS would get error below
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:\ORADB\RAB1\PARUSSYS.ORA'
SVRMGR> alter database open resetlogs;
alter database open resetlogs
*
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'D:\ORADB\RAB1\PARUSSYS.ORA'

Dump file d:\oradb\rab1\bdump\rab1ALRT.LOG
Tue Jun 03 12:35:48 2014
ORACLE V8.1.7.0.0 - Production vsnsta=0
vsnsql=e vsnxtr=3
Windows 2000 Version 5.1 Service Pack 3, CPU type 586
Tue Jun 03 12:35:48 2014
ALTER DATABASE RECOVER   database until cancel  
Tue Jun 03 12:35:48 2014
Media Recovery Start
Media Recovery Log 
kcrrga: Warning.  Log sequence in archive filename wrapped
to fix length as indicated by %S in LOG_ARCHIVE_FORMAT.
Old log archive with same name might be overwritten.
ORA-279 signalled during: ALTER DATABASE RECOVER   database until cancel  ...
Tue Jun 03 12:35:52 2014
ALTER DATABASE RECOVER    CANCEL  
ORA-1547 signalled during: ALTER DATABASE RECOVER    CANCEL  ...
Tue Jun 03 12:35:52 2014
ALTER DATABASE RECOVER CANCEL
ORA-1112 signalled during: ALTER DATABASE RECOVER CANCEL...
Tue Jun 03 12:36:09 2014
alter database open resetlogs
Tue Jun 03 12:36:10 2014
ORA-1194 signalled during: alter database open resetlogs...
3 июн 14, 10:36    [16110702]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
говорит что сгенерировано изменение 500684014, а мне бы вернуть до 500670751 или можно даже раньше
3 июн 14, 10:42    [16110747]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
Что все так плохо? Или все ушли на обед?
3 июн 14, 11:37    [16111267]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
li_malina
Member

Откуда:
Сообщений: 413
lgpswd
Попробуй очистить текущий журнал база должна быть в состоянии mount
ALTER DATABASE CLEAR LOGFILE GROUP 3;
3 июн 14, 13:02    [16112082]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
lgpswd
Member

Откуда:
Сообщений: 30
li_malina
lgpswd
Попробуй очистить текущий журнал база должна быть в состоянии mount
ALTER DATABASE CLEAR LOGFILE GROUP 3;


SVRMGR> alter database clear logfile group 3;
alter database clear logfile group 3
*
ORA-01624: log 3 needed for crash recovery of thread 1
ORA-00312: online log 3 thread 1: 'D:\ORADB\RAB1\LOG03.ORA'
3 июн 14, 13:08    [16112135]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
ДаВот
Guest
lgpswd, а теперь select * from v$datafile_header;
3 июн 14, 14:05    [16112703]     Ответить | Цитировать Сообщить модератору
 Re: Помогите поднять базу  [new]
ДаВот
Guest
lgpswd,
вернуть до 500670751
В твоем случае строго из бэкапа, которого нет.
3 июн 14, 14:08    [16112732]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3   вперед  Ctrl      все
Все форумы / Oracle Ответить