Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Издевательство над Oracle - результаты экспериментов / 10 сообщений из 10, страница 1 из 1
07.05.2003, 10:30
    #32154911
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Итак, возвращаясь к теме мультиплексированных контролфайлов и поведения Oracle при потере одного из них. Вчера вечером был поставлен жестокий эксперимент с небезынтересными результатами.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
Запускаем экземпляр

...
SMON: enabling cache recovery
SMON: enabling tx recovery
Tue May   6   22 : 09 : 19   2003 
Completed: alter database open
*************************************
В этот момент грохнули один из  3  контролфайлов
*************************************
Tue May   6   22 : 10 : 45   2003 
Thread  1  advanced to log sequence  2885 
Current log#  5  seq#  2885  mem#  0 : /ora02/oradata/voog2/redo50.log
Current log#  5  seq#  2885  mem#  1 : /ora04/oradata/voog2/redo51.log
Tue May   6   22 : 10 : 45   2003 
ARC0: Beginning to archive log#  4  seq#  2884 
ARC0: Completed archiving log#  4  seq#  2884 
Tue May   6   22 : 11 : 47   2003 
Thread  1  advanced to log sequence  2886 
Current log#  6  seq#  2886  mem#  0 : /ora03/oradata/voog2/redo60.log
Current log#  6  seq#  2886  mem#  1 : /ora04/oradata/voog2/redo61.log
Tue May   6   22 : 11 : 47   2003 
ARC0: Beginning to archive log#  5  seq#  2885 
ARC0: Completed archiving log#  5  seq#  2885 
*************************************
Обратите внимание - логи переключаются и архивируются!
Пользовательская активность отсутствует, кроме, internal-а,
выдающего alter system switch logfile.
*************************************
Вставляем в табличку  1  строку, говорим commit.
И тут пришёл checkpoint...
*************************************
Tue May   6   22 : 13 : 02   2003 
Errors in file /ora01/app/oracle/admin/voog2/bdump/ckpt_349.trc:
ORA- 00221 : error on write to controlfile
ORA- 00206 : error in writing (block  16 , # blocks  1 ) of controlfile
ORA- 00202 : controlfile: '/ora02/oradata/voog2/control02.ctl'
ORA- 27041 : unable to open file
Intel SVR4 UNIX Error:  2 : No such file or directory
Additional information:  3 
Tue May   6   22 : 13 : 02   2003 
CKPT: terminating instance due to error  221 
Instance terminated by CKPT, pid =  349 


Продолжение через минуту... :)
...
Рейтинг: 0 / 0
07.05.2003, 10:34
    #32154913
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
/ora01/app/oracle/admin/voog2/bdump/ckpt_349.trc
Oracle8i Enterprise Edition Release  8 . 1 . 7 . 4 . 0  - Production
With the Partitioning option
JServer Release  8 . 1 . 7 . 4 . 0  - Production
ORACLE_HOME = /ora01/app/oracle/product/ 8 . 1 . 7 
System name:    SunOS
Node name:      vooglooskr
Release:         5 . 8 
Version:        Generic_108529- 14 
Machine:        i86pc
Instance name: voog2
Redo thread mounted by this instance:  1 
Oracle process number:  5 
Unix process pid:  349 , image: oracle@vooglooskr (CKPT)

*** SESSION ID:( 4 . 1 )  2003 - 05 - 06   22 : 13 : 02 . 173 
***  2003 - 05 - 06   22 : 13 : 02 . 173 
ksedmp: internal or fatal error
ORA- 00206 : error in writing (block  16 , # blocks  1 ) of controlfile
ORA- 00202 : controlfile: '/ora02/oradata/voog2/control02.ctl'
ORA- 27041 : unable to open file
Intel SVR4 UNIX Error:  2 : No such file or directory
Additional information:  3 
 ----- Call Stack Trace -----
 
calling              call     entry                argument values in hex
 -------------- вырезано цензурой ---------------
 
***************************************
Экземпляр абортирован.
Восстанавливаем контролфайл на место, коннектимся internal-ом
(пришлось закрыть sqlplus, из подключенного к абортированному
экземпляру не коннектился), запускаемся. В процессе
запуска делается recovery:
***************************************

...
Рейтинг: 0 / 0
07.05.2003, 10:35
    #32154917
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
 -------------- вырезано цензурой ---------------
 
ARCH: STARTING ARCH PROCESSES
ARCH: STARTING ARCH PROCESSES COMPLETE
ARC0 started with pid= 18 
ARC0: Archival started
Tue May   6   22 : 17 : 59   2003 
ALTER DATABASE   MOUNT
Tue May   6   22 : 18 : 06   2003 
Successful mount of redo thread  1 , with mount id  1929843742 .
Tue May   6   22 : 18 : 06   2003 
Database mounted in Exclusive Mode.
Completed: ALTER DATABASE   MOUNT
Tue May   6   22 : 18 : 06   2003 
ALTER DATABASE OPEN
Beginning crash recovery of  1  threads
Tue May   6   22 : 18 : 07   2003 
Thread recovery: start rolling forward thread  1 
Recovery of Online Redo Log: Thread  1  Group  4  Seq  2884  Reading mem  0 
Mem#  0  errs  0 : /ora02/oradata/voog2/redo40.log
Mem#  1  errs  0 : /ora03/oradata/voog2/redo41.log
Recovery of Online Redo Log: Thread  1  Group  5  Seq  2885  Reading mem  0 
Mem#  0  errs  0 : /ora02/oradata/voog2/redo50.log
Mem#  1  errs  0 : /ora04/oradata/voog2/redo51.log
Recovery of Online Redo Log: Thread  1  Group  6  Seq  2886  Reading mem  0 
Mem#  0  errs  0 : /ora03/oradata/voog2/redo60.log
Mem#  1  errs  0 : /ora04/oradata/voog2/redo61.log
Tue May   6   22 : 18 : 15   2003 
Thread recovery: finish rolling forward thread  1 
Thread recovery:  38  data blocks read,  27  data blocks written,  16101  redo blocks read
Crash recovery completed successfully
Tue May   6   22 : 18 : 17   2003 
Thread  1  advanced to log sequence  2887 
Thread  1  opened at log sequence  2887 
Current log#  3  seq#  2887  mem#  0 : /ora03/oradata/voog2/redo30.log
Current log#  3  seq#  2887  mem#  1 : /ora04/oradata/voog2/redo31.log
Successful open of redo thread  1 .
Tue May   6   22 : 18 : 17   2003 
SMON: enabling cache recovery
Tue May   6   22 : 18 : 17   2003 
ARC0: Beginning to archive log#  6  seq#  2886 
ARC0: Completed archiving log#  6  seq#  2886 
Tue May   6   22 : 18 : 19   2003 
SMON: enabling tx recovery
Tue May   6   22 : 18 : 53   2003 
Completed: ALTER DATABASE OPEN
...
Рейтинг: 0 / 0
07.05.2003, 10:53
    #32154932
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Вывод - alter system switch logfile не вызывает checkpoint-а, если нет dirty buffers, или вызывает какой-то хитрый чекпоинт без записи в контролфайл. Экземпляр абортируется при утере хотя бы одного контролфайла - и это правильно. Вчера нашёл ссылку в Concepts на эту тему, где открытым текстом описывалось это поведение, но был пьян и к утру забыл :)

P.S. Тестовая система - Intel Solaris 8, Oracle 8.1.7.4.0 EE, /ora02, /ora03, /ora04 - ufs с forcedirectio. С дискетой попробовать не получилось по причине отсутствия дисковода и размера контролфайла в 5Мб, что использование дискеты затрудняет
...
Рейтинг: 0 / 0
07.05.2003, 10:59
    #32154943
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Наконец-то нашелся человек, который доказал написанное в руководстве. Более того, там же в руководствах написано, что чекпойнт при переключении журналов в 8i и выше фиктивен, что тоже было здесь доказано. Только зачем?
...
Рейтинг: 0 / 0
07.05.2003, 11:02
    #32154948
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Затем что по изначальному топику развели тред на 3 страницы демагогии о евреях и пиве.
...
Рейтинг: 0 / 0
07.05.2003, 11:06
    #32154955
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
А для чего же тогда рекомендуют использовать несколько контрол файлов если Оракл при потере или повреждении одного сразу останавливается? Разве только чтобы можно было потом быстро скопировать контрол файл исправить init.ora и запустить инстанс снова?
...
Рейтинг: 0 / 0
07.05.2003, 11:09
    #32154956
Scott Tiger
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Именно. Терять все контролфайлы весьма неприятно. Если все=1, это можно прочувствовать с относительно большой вероятностью.
...
Рейтинг: 0 / 0
07.05.2003, 11:19
    #32154972
Violina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Не уже ли так страшно?

Сделала alter database backup controlfile to trace;

Не так уж много, можно и возсоздать если что. Но тем не менее понятно что все=1 это плохо:-)

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
*** SESSION ID:( 7 . 7 )  2003 - 05 - 07   11 : 14 : 54 . 000 
***  2003 - 05 - 07   11 : 14 : 54 . 000 
# The following commands will create a new control file and use it
# to open the database.
# Data used by the recovery manager will be lost. Additional logs may
# be required for media recovery of offline data files. Use this
# only if the current version of all online logs are available.
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE  "MYDB"  NORESETLOGS NOARCHIVELOG
    MAXLOGFILES  5 
    MAXLOGMEMBERS  2 
    MAXDATAFILES  10 
    MAXINSTANCES  2 
    MAXLOGHISTORY  1809 
LOGFILE
  GROUP  1 (
    'D:\ORACLE9\ORADATA\MYDB\REDO_DISK1\REDO01.LOG',
    'D:\ORACLE9\ORADATA\MYDB\REDO_DISK2\REDO01.LOG'
  ) SIZE 200K,
  GROUP  2 (
    'D:\ORACLE9\ORADATA\MYDB\REDO_DISK1\REDO02.LOG',
    'D:\ORACLE9\ORADATA\MYDB\REDO_DISK2\REDO02.LOG'
  ) SIZE 200K
# STANDBY LOGFILE
DATAFILE
  'D:\ORACLE9\ORADATA\MYDB\SYSTEM01.DBF',
  'D:\ORACLE9\ORADATA\MYDB\TEMP.DBF',
  'D:\ORACLE9\ORADATA\MYDB\USER.DBF',
  'D:\ORACLE9\ORADATA\MYDB\INDEX.DBF',
  'D:\ORACLE9\ORADATA\MYDB\UNDO01.DBF'
CHARACTER SET US7ASCII
;
# Recovery is required if any of the datafiles are restored backups,
# or if the last shutdown was not normal or immediate.
RECOVER DATABASE
# Database can now be opened normally.
ALTER DATABASE OPEN;
# No tempfile entries found to add.
#
...
Рейтинг: 0 / 0
07.05.2003, 11:33
    #32154995
AI
AI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Издевательство над Oracle - результаты экспериментов
Очень часто при потерях всех контрольных файлов приходится давать alter database open resetlogs, после чего работа со старыми бэкапами очень проблематична.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Издевательство над Oracle - результаты экспериментов / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]