[ТЕМА ЗАКРЫТА]
04.08.2011 15:41
Mr_Vito
 
отключили свет, база больше не запустилась,
тока не смейтесь архива как всегда нету :(
оракл 8, база супермажная, как запустить?

SQL> startup open
ORACLE instance started.

Total System Global Area 1534600116 bytes
Fixed Size 70580 bytes
Variable Size 289267712 bytes
Database Buffers 1245184000 bytes
Redo Buffers 77824 bytes
Database mounted.
ORA-01113: file 2 needs media recovery
ORA-01110: data file 2: 'F:\ORACLES\ORANTS\ORADATA\RBS01.DBF'

recover не помогает :(
04.08.2011 15:59
Mtirt
 
Насколько я помню, надо добавить в ini-файл строчку _allow_resetlogs_corruption=true
И попробовать перезапустить базу. А потом пересоздать заново RBS и сегменты отката.
04.08.2011 16:00
Mtirt
 
Инструкция от Олега по этому поводу:
https://olegon.ru/showthread.php?t=5...ight=resetlogs
04.08.2011 16:02
Mtirt
 
Ну и заодно сразу перевести на 10-ку, включить архивлоги и настроить RMAN.
04.08.2011 18:54
Mr_Vito
 
1)
recover until cancel;
cancel
alter database open resetlogs;

Код:
SQL> startup open
ORACLE instance started.

Total System Global Area 1534600116 bytes
Fixed Size                    70580 bytes
Variable Size             289267712 bytes
Database Buffers         1245184000 bytes
Redo Buffers                  77824 bytes
Database mounted.
ORA-01578: ORACLE data block corrupted (file # 2, block # 1026)
ORA-01110: data file 2: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\RBS01.DBF'


SQL> shutdown immediate;
ORA-01109: database not open


Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.

Total System Global Area 1534600116 bytes
Fixed Size                    70580 bytes
Variable Size             289267712 bytes
Database Buffers         1245184000 bytes
Redo Buffers                  77824 bytes
Database mounted.
SQL> recover until cancel;
ORA-00279: change 409509172 generated at 08/04/2011 20:26:02 needed for thread
1
ORA-00289: suggestion : C:\ORACLES\ORANTS\RDBMS\ARC00003.001
ORA-00280: change 409509172 for thread 1 is in sequence #3


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: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\SYSTEM01.DBF'


ORA-01112: media recovery not started


SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01578: ORACLE data block corrupted (file # 2, block # 1026)
ORA-01110: data file 2: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\RBS01.DBF'


SQL> recover database using backup controlfile;
ORA-00279: change 409509174 generated at 08/04/2011 20:30:25 needed for thread
1
ORA-00289: suggestion : C:\ORACLES\ORANTS\RDBMS\ARC00001.001
ORA-00280: change 409509174 for thread 1 is in sequence #1


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
F:\oracles\orants\ORADATA\czabota\REDO01.LOG
ORA-00339: archived log does not contain any redo
ORA-00334: archived log: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\REDO01.LOG'


SQL> recover database using backup controlfile;
ORA-00279: change 409509174 generated at 08/04/2011 20:30:25 needed for thread
1
ORA-00289: suggestion : C:\ORACLES\ORANTS\RDBMS\ARC00001.001
ORA-00280: change 409509174 for thread 1 is in sequence #1


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
F:\oracles\orants\ORADATA\czabota\REDO03.LOG
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel


SQL> disconnect
Disconnected from Oracle8i Enterprise Edition Release 8.1.6.3.0 - Production
JServer Release 8.1.6.3.0 - Production
SQL> connect sys/qqq@czabota as sysdba;
ERROR:
ORA-03113: end-of-file on communication channel
теперь только перезапуск сервиса базы поможет :(

2)
ALTER DATABASE CLEAR LOGFILE 'filename';
alter database open;

не стал делать так как не понял зачем чистить логфайл если он живой
3)
recover database using backup controlfile;
подсовываем редо-логи (просматривая необходимые sequence через v$log и v$logfile)
alter database open;

попробовал см выше, не помогает :(

4) если уж совсем дело плохо, можно попробовать _allow_resetlogs_corruption=true
startup mount
alter system clear logfile;
recover database until cancel using backup controlfile ;
cancel
alter database open resetlogs;

попробовал,
тот же самый результат :(
один в один, даже ничего не изменилось :(

едиственное выругалась
SQL> alter system clear logfile;
alter system clear logfile
*
ERROR at line 1:
ORA-02065: illegal option for ALTER SYSTEM

что еще можно сделать?
04.08.2011 20:09
OlegON
 
Ошибочка вышла, та дока - по убитому redo. А у тебя RBS. Шанс получить труп очень велик, если была какая-то неоткаченная транзакция на system, например. Но суть действительно в том, чтобы подсунуть какой-то параметр, сейчас плющит вспомнить его называние, там список RBS, которые могут быть битыми или оффлайновыми, не помню (тут это было). После чего пихаешь в этот список свой убитый RBS, молишься, стартуешь базу и если она открывается, то быстренько ее экспортируешь. Заодно получаешь повод перейти, наконец, на 10ку, если версия позволяет. Или хоть на 9ку, если нет. Ну и научись, наконец, делать бекапы...
04.08.2011 20:49
Mr_Vito
 
если пересоздать контрольники без rbs,
что нить получится?
04.08.2011 21:12
Mr_Vito
 
вообще ничего не получилось с пересозданием контрольников:

Код:
SQL> connect sys/qqq@czabota as sysdba;
Connected to an idle instance.
SQL> startup nomount;
ORACLE instance started.

Total System Global Area 1534600116 bytes
Fixed Size                    70580 bytes
Variable Size             289267712 bytes
Database Buffers         1245184000 bytes
Redo Buffers                  77824 bytes
SQL> @matrix12.sql;
SP2-0310: unable to open file "matrix12.sql"
SQL> @c:\matrix12.sql;

Control file created.

alter database open resetlogs
*
ERROR at line 1:
ORA-01194: file 1 needs more recovery to be consistent
ORA-01110: data file 1: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\SYSTEM01.DBF'


SP2-0734: unknown command beginning "AL1TER TAB..." - rest of line ignored.
SP2-0734: unknown command beginning "## 'F:\ora..." - rest of line ignored.
SQL> recover
ORA-00283: recovery session canceled due to errors
ORA-01610: recovery using the BACKUP CONTROLFILE option must be done


SQL> recover database using backup controlfile;
ORA-00279: change 409489166 generated at 08/04/2011 10:07:28 needed for thread
1
ORA-00289: suggestion : C:\ORACLES\ORANTS\RDBMS\ARC99232.001
ORA-00280: change 409489166 for thread 1 is in sequence #299232


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
F:\oracles\orants\ORADATA\czabota\REDO03.LOG
ORA-00310: archived log contains sequence 299230; sequence 299232 required
ORA-00334: archived log: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\REDO03.LOG'


SQL> recover database using backup controlfile;
ORA-00279: change 409489166 generated at 08/04/2011 10:07:28 needed for thread
1
ORA-00289: suggestion : C:\ORACLES\ORANTS\RDBMS\ARC99232.001
ORA-00280: change 409489166 for thread 1 is in sequence #299232


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
F:\oracles\orants\ORADATA\czabota\REDO01.LOG
ORA-00310: archived log contains sequence 299231; sequence 299232 required
ORA-00334: archived log: 'F:\ORACLES\ORANTS\ORADATA\CZABOTA\REDO01.LOG'


SQL> recover database using backup controlfile;
ORA-00279: change 409489166 generated at 08/04/2011 10:07:28 needed for thread
1
ORA-00289: suggestion : C:\ORACLES\ORANTS\RDBMS\ARC99232.001
ORA-00280: change 409489166 for thread 1 is in sequence #299232


Specify log: {<RET>=suggested | filename | AUTO | CANCEL}
F:\oracles\orants\ORADATA\czabota\REDO02.LOG
Log applied.
Media recovery complete.
SQL> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-00600: internal error code, arguments: [25012], [1], [2], [], [], [], [],
[]


SQL> recover
Media recovery complete.
SQL> alter database open;
alter database open
                  *
ERROR at line 1:
ORA-03113: end-of-file on communication channel


SQL>
файлик был такой:
Код:
CREATE CONTROLFILE Set Database "czabota" RESETLOGS NOARCHIVELOG
    MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXDATAFILES 254
    MAXINSTANCES 1
    MAXLOGHISTORY 9529
LOGFILE
  GROUP 1 'F:\oracles\orants\ORADATA\czabota\REDO01.LOG' SIZE 3072K,
  GROUP 2 'F:\oracles\orants\ORADATA\czabota\REDO02.LOG' SIZE 3072K,
  GROUP 3 'F:\oracles\orants\ORADATA\czabota\REDO03.LOG' SIZE 3072K
DATAFILE
  'F:\oracles\orants\ORADATA\czabota\SYSTEM01.DBF',
  'F:\oracles\orants\ORADATA\czabota\INDX01.DBF',
  'F:\oracles\orants\ORADATA\czabota\INDX02.DBF',
  'F:\oracles\orants\ORADATA\czabota\INDX03.DBF',
  'F:\oracles\orants\ORADATA\czabota\INDX04.DBF',
  'F:\oracles\orants\ORADATA\czabota\INDX05.DBF',
  'F:\oracles\orants\ORADATA\czabota\TOOLS01.DBF',
  'F:\oracles\orants\ORADATA\czabota\TEMP01.DBF',
  'F:\oracles\orants\ORADATA\czabota\TEMP02.DBF',
  'F:\oracles\orants\ORADATA\czabota\USERS01.DBF',
  'F:\oracles\orants\ORADATA\czabota\USERS02.DBF',
  'F:\oracles\orants\ORADATA\czabota\USERS03.DBF',
  'F:\oracles\orants\ORADATA\czabota\USERS04.DBF'
CHARACTER SET CL8MSWIN1251
/
alter database open resetlogs;
что еще можно сделать?
еще пробовал убивать rbs через:
ALTER DATABASE datafile rbs offline DROP
результат тот же :(

помогите пожалуйста, архив оказался только за 11 месяц 2007 года :((((
05.08.2011 01:46
OlegON
 
а почему бы не попробовать так, как я сказал?
05.08.2011 07:12
Mr_Vito
 
я просто не понял, что надо сделать :(
какой параметр, и как подсунуть?
05.08.2011 07:17
Mtirt
 
Список номеров неиспользуемых RBS-сегментов.
Только я тоже не помню название параметра.
05.08.2011 07:39
Mtirt
 
Если хорошо поискать, то у нас найдется всё: https://olegon.ru/showthread.php?t=5...E3%EC%E5%ED%F2
05.08.2011 09:15
Mr_Vito
 
прописал я это параметр _corrupted_rollback_segments ничего не изменилось :(
05.08.2011 09:17
Mtirt
 
Я не совсем поняла, что именно ты делал после того как прописал этот параметр.
И как именно ты его прописал...
И на что ругается сейчас.
05.08.2011 15:04
Mr_Vito
 
добавил в pfile
_corrupted_rollback_segments = ( RBS0, RBS1, RBS2, RBS3, RBS4, RBS5, RBS6 )
сделал стартап опен
а дальше все как и выше, база опять ругнулась на rbs :(
recover не проходит :(
05.08.2011 15:31
Mtirt
 
А в каком состоянии она останавливается? В mount?
Попробуй создать в этом состоянии сегментов.
А потом открыть.
05.08.2011 23:23
OlegON
 
Сделал. Открыл, пометил все corrupted, создал новые rbs в новом табличном пространстве, старое не успел грохнуть - у них не сервак, а помойка, то ли повис, то ли связь пропала... Но ошибка больше не возникала, вроде.
08.08.2011 23:06
Mr_Vito
 
После восстановления сделал экспорт, а затем импорт в 9 оркл
супермаг запустился, но не могу отобрать приходные накладные, супермаг при отборе, даже за несколько дней, уходит в себя с надписью "скоро буду"
правда не подвисает. надеюсь оптимайзер соберет статистику и к утру доки будут обираться.

Оптимайзером, нашел ошибки:
Код:
09.08.11 00:04:24 -- SUPERMAG.SMOFFICELOG:SMCOFFICELOG_ACTION enabling
09.08.11 00:04:25 -- OLEGON-ERROR! : Query:srvsupermag:czabota:java.sql.SQLException: ORA-00604: error
 occurred at recursive SQL level 1
ORA-06550: line 8, column 16:
PL/SQL: ORA-00600: internal error code, arguments: [12830], [SUPERMAG], [SMOFFICELOG], [], [], [], [],
 []
ORA-06550: line 8, column 4:
PL/SQL: SQL Statement ignored

09.08.11 00:04:25 -- SUPERMAG.SMSTAFF:SMSTAFF_LOGINQUOTE enabling
09.08.11 00:04:25 -- OLEGON-ERROR! : Query:srvsupermag:czabota:java.sql.SQLException: ORA-00604: error
 occurred at recursive SQL level 1
ORA-06550: line 6, column 26:
PL/SQL: ORA-00600: internal error code, arguments: [12830], [SUPERMAG], [SMSTAFF], [], [], [], [], []
ORA-06550: line 6, column 3:
PL/SQL: SQL Statement ignored

09.08.11 00:04:26 -- **************************************************************
09.08.11 00:04:26 -- Gathering constraint list (2nd stage)...
09.08.11 00:04:26 -- SUPERMAG.SMDOCCASHZ:SMCDOCCASHZ_DOC enabling
09.08.11 00:04:26 -- OLEGON-ERROR! : Query:srvsupermag:czabota:java.sql.SQLException: ORA-02298: canno
t validate (SUPERMAG.SMCDOCCASHZ_DOC) - parent keys not found

09.08.11 00:04:26 -- SUPERMAG.SMSTAFF:SMSTAFF_POSITION enabling
09.08.11 00:04:27 -- OLEGON-ERROR! : Query:srvsupermag:czabota:java.sql.SQLException: ORA-00604: error
 occurred at recursive SQL level 1
ORA-06550: line 6, column 26:
PL/SQL: ORA-00600: internal error code, arguments: [12830], [SUPERMAG], [SMSTAFF], [], [], [], [], []
ORA-06550: line 6, column 3:
PL/SQL: SQL Statement ignored
а под конец пишет что инвалидов в базе нет :(

подскажите, как проблему лечить?
09.08.2011 07:43
OlegON
 
Цитата:
OlegON не это?
И пусть оптимайзер дальше работает... Только на 9ке он достаточно слаб по возможностям.
09.08.2011 13:14
Mr_Vito
 
действительно, тригер убил ошибка ушла :)))
только на отборе так и виснет
09.08.2011 13:16
Mtirt
 
Собрана статистика по темповым таблицам?
Может убить её?

Или наоборот, не собрана статистика по таблицам с данными...
09.08.2011 13:22
OlegON
 
Цитата:
Mtirt Собрана статистика по темповым таблицам?
Или наоборот, не собрана статистика по таблицам с данными...
Оптимизатор делает и то и другое.
09.08.2011 13:33
Mr_Vito
 
виснет на запросе:
Код:
SELECT --+ FIRST_ROWS
 DH.ID as ID, DH.CreatedAt, CL.Name as ClientName, DH.LocationTo, 
 DH.OpCode as Operation, DH.UserOp, DH.TotalSum, DH.Debt as Payment, 
 DH.BaseDocTypeAndID, DH.DocState, 
  (select (select nvl(Sum(SPECV.TotalPrice), 0) 
   from Supermag.SVSpecWI SPECV 
   where SPECV.DocType = DH.DocType and SPECV.DocID = DH.ID) 
   - 
    (select nvl(Sum(SVAT.TaxSum), 0) 
     from Supermag.SVSpecVatWI SVAT 
     where SVAT.DocType = DH.DocType and SVAT.DocID = DH.ID and SVAT.TaxRate > 0) 
     
   from Dual) as TotalSumNoVat, 
   
   (select nvl(Sum(SVAT10.TaxSum), 0) 
   from Supermag.SVSpecVatWI SVAT10 
   where SVAT10.DocType = DH.DocType 
     and SVAT10.DocID = DH.ID 
     and SVAT10.TaxRate = 10) as TotalSumVat10, 
   (select nvl(Sum(SVAT20.TaxSum), 0) 
    from Supermag.SVSpecVatWI SVAT20 
    where SVAT20.DocType = DH.DocType 
      and SVAT20.DocID = DH.ID 
      and SVAT20.TaxRate = 20) as TotalSumVat20, DH.SupplierDoc, 
      DH.SupplierInvoice, DH.PayCash, DH.GoodsOwner, 
      DH.ChildDocTypeAndID, DH.TotalSumCur as TotalSumCur, 
      DH.SupplDocSum, 
    (select FileName||'  '||to_char(Amount) from Supermag.SVInsertedDocsWI DI  
     where DI.DocType = DH.DocType 
       and DI.ID = DH.ID and rownum = 1 ) as InsertedDocs, 
      DH.FinBaseDocTypeAndID, 
    (select nvl(sum(SPECV.TotalPriceNoTax), 0) 
      from Supermag.SVSpecWI SPECV, Supermag.SVSpecVatWI SVAT 
      where SPECV.DocType = DH.DocType and SPECV.DocID = DH.ID 
        and SVAT.DocType = SPECV.DocType and SVAT.DocID = SPECV.DocID 
        and SVAT.SpecItem = SPECV.SpecItem and SVAT.TaxRate=10) as TotalSumNoVat10, 
    (select nvl(sum(SPECV.TotalPriceNoTax), 0) 
      from Supermag.SVSpecWI SPECV, Supermag.SVSpecVatWI SVAT 
     where SPECV.DocType = DH.DocType and SPECV.DocID = DH.ID 
       and SVAT.DocType = SPECV.DocType and SVAT.DocID = SPECV.DocID 
       and SVAT.SpecItem = SPECV.SpecItem and SVAT.TaxRate=20) as TotalSumNoVat20, 
    DH.GrossWeight, 
    (select nvl(Sum(SVAT18.TaxSum), 0) 
    from Supermag.SVSpecVatWI SVAT18 
     where SVAT18.DocType = DH.DocType 
       and SVAT18.DocID = DH.ID and SVAT18.TaxRate = 18) as TotalSumVat18, 
    (select nvl(sum(SPECV.TotalPriceNoTax), 0) 
      from Supermag.SVSpecWI SPECV, Supermag.SVSpecVatWI SVAT 
      where SPECV.DocType = DH.DocType and SPECV.DocID = DH.ID 
      and SVAT.DocType = SPECV.DocType and SVAT.DocID = SPECV.DocID
      and SVAT.SpecItem = SPECV.SpecItem and SVAT.TaxRate=18) as TotalSumNoVat18, 
    DH.SupplInvoiceCreate, DH.SupplInvoiceAccept, DH.TotalSumVat, 
    DH.TotalSumVat+DH.TotalSumSpec as TotalSumWithVat,
    (Select ValStr from Supermag.SVDocLabels L where L.DocType=DH.DocType
        and L.DocID=DH.ID and L.LabelID='Sys.RefuseWI') as Label__0 
     FROM SuperMag.SVDocumentsWI DH , SuperMag.SMClientInfo CL 
     WHERE DH.DocType = 'WI' 
       AND DH.CreatedAt = TO_DATE('20110728','YYYYMMDD') 
       AND (CL.ID(+)= DH.ClientIndex)
если из девелопера посмотреть сессию, то видно, что он чего то делает, но дождаться результата я не смог :(
сделал селекты с подсчетом количества по всем табличкам, которые используются в этом запросе, выполняет в секунды. А так висит :(
что еще можно посмотреть?
09.08.2011 13:43
OlegON
 
Он не висит, он долго работает. Соответственно, по оптимизации и способах диагностики производительности здесь уже мильон раз писалось, почитай... Или жди, пока оптимизатор докопается...
09.08.2011 23:01
Mr_Vito
 
все, я победил, *DANCE* ,базу
сравнил структуру с эталоном, добавил кучу недостающих индексов (видимо потерялись либо при переносе, либо во время восстановления) и все заработало :))))
всем спасибо
Опции темы


Часовой пояс GMT +3, время: 09:09.

 

Форум сделан на основе vBulletin®
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.