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

Откуда: Питер
Сообщений: 4031
Выполняю упражнеие в учебнике Администрирование 10g (I)
На работающей БД удаляю один из 3-х контрольников, и жду пока dbconsole мне сообщит, что БД надо восстанавливать.
А БД работает!

автор
SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> alter database backup controlfile to trace;
alter database backup controlfile to trace
*
ERROR at line 1:
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/data/oradata/test1/control03.ctl'---- его я и удалила
ORA-27041: unable to open file
SVR4 Error: 2: No such file or directory
Additional information: 3


SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> alter system switch logfile;

System altered.

SQL> select status from v$instance;

STATUS
------------
OPEN


alert.log
автор
Thu Mar 26 14:49:17 2009
alter database backup controlfile to trace
Thu Mar 26 14:49:17 2009
ORA-210 signalled during: alter database backup controlfile to trace...
Thu Mar 26 14:49:43 2009
Thread 1 advanced to log sequence 438
Current log# 3 seq# 438 mem# 0: /data/oradata/test1/redo03.log
Thu Mar 26 14:50:07 2009
Thread 1 cannot allocate new log, sequence 439
Private strand flush not complete
Current log# 3 seq# 438 mem# 0: /data/oradata/test1/redo03.log
Thread 1 advanced to log sequence 439
Current log# 2 seq# 439 mem# 0: /data/oradata/test1/redo02.log
Thread 1 cannot allocate new log, sequence 440
Checkpoint not complete
Current log# 2 seq# 439 mem# 0: /data/oradata/test1/redo02.log
Thread 1 cannot allocate new log, sequence 440
Private strand flush not complete
Current log# 2 seq# 439 mem# 0: /data/oradata/test1/redo02.log
Thread 1 advanced to log sequence 440
Current log# 1 seq# 440 mem# 0: /data/oradata/test1/redo01.log
Thread 1 advanced to log sequence 441
Current log# 3 seq# 441 mem# 0: /data/oradata/test1/redo03.log


Когда же она остановиться?
26 мар 09, 15:06    [6979468]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
Aliona,

хаха, удали их все, и ничего не изменится. Unix однако :-)


(до рестарта инстанса) :-)
26 мар 09, 15:11    [6979506]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
heldir
Member

Откуда: Запорожье->Киев->Montreal
Сообщений: 757
Нужно было cat /dev/null > /data/oradata/test1/control03.ctl

:)
26 мар 09, 15:16    [6979534]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
В оракловом учебнике тоже Юникс описан.
А если инстанс перезагружается не чаще 1 раза в год, или реже (как моя промышленная БД), то что будет?

Второй контрольник удалила, эффект тот же.
26 мар 09, 15:16    [6979537]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
heldir
Нужно было cat /dev/null > /data/oradata/test1/control03.ctl

:)

Это же не удаление , а обнуление.

В реальных ситуациях, как мне кажентся, бывает так: диск вышел из строя, значит, контрольник пропал, а не обнулился.
26 мар 09, 15:18    [6979558]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
Aliona

Второй контрольник удалила, эффект тот же.


Да хоть все файлы удалить. ничего не будет, пока все процессы их не отпустят.

Если бы оракел постоянно переоткрывал бы файл - было бы ОЙ.
26 мар 09, 15:18    [6979559]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
Aliona
В реальных ситуациях, как мне кажентся, бывает так: диск вышел из строя, значит, контрольник пропал, а не обнулился.


Положи контрольник на флешку и выдергивай его.

Еще раз, rm не приводит к реальному удалению файла, пока существуют открытые дескрипторы на него...
26 мар 09, 15:20    [6979565]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
hell
Еще раз, rm не приводит к реальному удалению файла, пока существуют открытые дескрипторы на него...


Это уже несколько раз повторили, уяснила.

Тогда ответьте вот на этот вопрос.
1.А если инстанс перезагружается не чаще 1 раза в год, или реже (как моя промышленная БД), то что будет?
2. Почему оракловый учебник утрерждает, что на юниксе БД остановиться?
Кто упражнение в учебнике писал?
26 мар 09, 15:25    [6979618]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
Aliona
hell
Еще раз, rm не приводит к реальному удалению файла, пока существуют открытые дескрипторы на него...


Это уже несколько раз повторили, уяснила.

Тогда ответьте вот на этот вопрос.
1.А если инстанс перезагружается не чаще 1 раза в год, или реже (как моя промышленная БД), то что будет?
2. Почему оракловый учебник утрерждает, что на юниксе БД остановиться?
Кто упражнение в учебнике писал?


Ничего не будет. И места не прибавится и сбоев не будет. Будет забавно, наверно, через 2 года выяснить, что случайно файл с UNDO удалили год назад :-)

Про учебники ничего не знаю, никогда не открывал.
26 мар 09, 15:29    [6979647]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
hell
[
Ничего не будет. И места не прибавится и сбоев не будет. Будет забавно, наверно, через 2 года выяснить, что случайно файл с UNDO удалили год назад :-)


Забавно, точно.
26 мар 09, 15:33    [6979688]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
lsof | grep " (deleted)"

так можно поискать в Linux.

__________________
For more information, please proceed to http://www.ot-e.biz
26 мар 09, 15:52    [6979869]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
heldir
Нужно было cat /dev/null > /data/oradata/test1/control03.ctl


сделала, БД не останавливается
26 мар 09, 16:29    [6980196]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Oleg M.Ivanov
Member

Откуда: Москва
Сообщений: 1164
Aliona
heldir
Нужно было cat /dev/null > /data/oradata/test1/control03.ctl


сделала, БД не останавливается

Проверь в каком он состоянии
ls -al /data/oradata/test1/control03.ctl
и
lsof | grep 'control03'
26 мар 09, 17:34    [6980698]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
MacDuck
Member

Откуда: Москва-Подольск
Сообщений: 6387
Aliona

2. Почему оракловый учебник утрерждает, что на юниксе БД остановиться?


Ну вот так вот. Потому, что акцент не на ОС, а на Оракл. :-)
26 мар 09, 17:41    [6980763]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
Oleg M.Ivanov
Проверь в каком он состоянии
ls -al /data/oradata/test1/control03.ctl
и
lsof | grep 'control03'


data/oradata/test1: ls -al
total 2502084
drwxrwxr-x 2 oracle dba 512 Mar 26 17:05 .
drwxr-xr-x 4 oracle dba 512 May 24 2007 ..
-rw-r----- 1 oracle dba 8339456 Mar 26 17:30 control01.ctl
-rw-r----- 1 oracle dba 8339456 Mar 26 17:30 control02.ctl
-rw-r----- 1 oracle dba 65536 Mar 26 17:30 control03.ctl

Команды lsof у меня в Солярке нет
26 мар 09, 17:52    [6980842]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
Aliona
Команды lsof у меня в Солярке нет


# lsof_1106-4.80-sol10-sparc-local.gz or lsof_0508-4.80-sol10-sparc-local.gz (for Solaris 10 05/08 or higher, the 0508 package must be used. If the 0508 version does not run properly, try the 11/06 version.) lsof lists information about files that are open by the processes running on a UNIX system. This package contains both a 32 and 64-bit version of lsof, but you only need to type lsof to run the program. - installs in /usr/local. lsof is typically run as root.
# lsof-4.80.tar.gz Source Code. [Details]
26 мар 09, 18:25    [6981046]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
Aliona
hell
[
Ничего не будет. И места не прибавится и сбоев не будет. Будет забавно, наверно, через 2 года выяснить, что случайно файл с UNDO удалили год назад :-)


Забавно, точно.


Мало того, я знаю как его найти и влинковать на старое место. Так что никто и не заметит (естественно если оракл не перевызывался).
27 мар 09, 01:11    [6981974]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Alex Roudnev
Member

Откуда: Валнут Крик, Калифорния
Сообщений: 5547
А вообще это занятие садистов - что будет если у таракана оторвать лапку, или что будет если у оракла удалить один контрол файл... Мы однажды расписали нулями диск в ASM, и то бедная животина еще долго подавала признаки жизни.
27 мар 09, 01:13    [6981977]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Ааз
Member

Откуда: Москва/Протвино
Сообщений: 4274
Привет

Ежели без перезапуска БД, то эффект "удаления control file'а" легко проявится, если после "rm" или "mv" запустить новые серверные процессы, желающие поработать с control file. Например, rman. И попытаться забэкапить чего-нибудь (последует попытка записать во все копии control file'а резалт бэкапа). Ну или обычный (но порожденный после "удаления") новый сеанс as sysdba и что-нибудь из
alter system checkpoint;
alter system switch logfile;
alter system archive log all;

Всего
--
Disclaimer: Opinions are of my own and not necessar[-il]y
27 мар 09, 03:12    [6982045]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
hell
Member

Откуда:
Сообщений: 3001
Alex Roudnev

Мало того, я знаю как его найти и влинковать на старое место. Так что никто и не заметит (естественно если оракл не перевызывался).


debugfs?
27 мар 09, 10:13    [6982549]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
Ааз
Привет

Ежели без перезапуска БД, то эффект "удаления control file'а" легко проявится, если после "rm" или "mv" запустить новые серверные процессы, желающие поработать с control file. Например, rman. И попытаться забэкапить чего-нибудь (последует попытка записать во все копии control file'а резалт бэкапа). Ну или обычный (но порожденный после "удаления") новый сеанс as sysdba и что-нибудь из
alter system checkpoint;
alter system switch logfile;
alter system archive log all;

[-il]y

В первом своём сообщении я приводила протоколы с командой
alter system switch logfile;
Но бд не останавливалась.

Восстановила БД их холодного бэкапа, запустила.
запортила контрольник
cat /dev/null > /data/oradata/test1/control03.ctl
опять многократно переключила redo-логи alter system switch logfile;
Но бд не останавливается.
27 мар 09, 12:05    [6983436]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Зелебоба
Member

Откуда:
Сообщений: 1121
К остановке-то не приводит, но сделать ничего, даже shutdown normal/immediate не получится
27 мар 09, 12:06    [6983442]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Oleg M.Ivanov
Member

Откуда: Москва
Сообщений: 1164
Aliona
...
запортила контрольник
cat /dev/null > /data/oradata/test1/control03.ctl
опять многократно переключила redo-логи alter system switch logfile;
Но бд не останавливается.

А на флешку положить контрольник и при работающей базе затем ее выдернуть не пробовала?
Т.е. получится как будто в натуре диск крякнул, иначе в *nix практически невозможно "оторвать" открытый файл.
27 мар 09, 12:15    [6983515]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
orTOPed
Member

Откуда: |▒|▒|▒|▒|▒|
Сообщений: 611
Aliona,

Сделал cat /dev/null > /oradata/testst/control01.ctl
тут же получил
alert.log

Fri Mar 27 12:09:50 2009
ARC0: Evaluating archive log 1 thread 1 sequence 1076
ARC0: Beginning to archive log 1 thread 1 sequence 1076
Creating archive destination LOG_ARCHIVE_DEST_1: '/oradata/testdb/archive/testst_1076.arc'
ARC0: Completed archiving log 1 thread 1 sequence 1076
***
Corrupt block relative dba: 0x00000001 (file 0, block 1)
Completely zero block found during control file header read
Fri Mar 27 12:14:54 2009
Errors in file /appl/app/oracle/admin/testdb/bdump/testdb_ckpt_19043.trc:
ORA-00202: controlfile: '/oradata/testst/control01.ctl'
Fri Mar 27 12:14:55 2009
Errors in file /appl/app/oracle/admin/testdb/bdump/testdb_ckpt_19043.trc:
ORA-00227: corrupt block detected in controlfile: (block 1, # blocks 1)
ORA-00202: controlfile: '/oradata/testst/control01.ctl'
CKPT: terminating instance due to error 227
Instance terminated by CKPT, pid = 19043

ЗЫ на testdb и testst не обращайте внимание, было шаманство со standby

Покажите, пожалуйста, результаты запросов...
select * from v$parameter
where name in ('control_files','background_dump_dest')

select * from v$instance

Может инстансы напутали?
27 мар 09, 12:25    [6983586]     Ответить | Цитировать Сообщить модератору
 Re: oracle 10.2 Удаление одного контрольного файла не приводит к остановке бд?  [new]
Aliona
Member

Откуда: Питер
Сообщений: 4031
установили на сервер команду lsof
автор
SQL> connect / as sysdba
Connected.
SQL> select status from v$instance;

STATUS
------------
OPEN

SQL> show parameters control;

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time integer 7
control_files string /data/oradata/test1/control01.
ctl, /data/oradata/test1/contr
ol02.ctl, /data/oradata/test1/
control03.ctl
SQL> show parameters 'background_dump_dest';

NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
background_dump_dest string /opt/oracle/product/10.2.0/adm
in/test1/bdump
SQL> select * from v$instance;

INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION STARTUP_T STATUS PAR THREAD# ARCHIVE LOG_SWITCH_WAIT
----------------- --------- ------------ --- ---------- ------- ---------------
LOGINS SHU DATABASE_STATUS INSTANCE_ROLE ACTIVE_ST BLO
---------- --- ----------------- ------------------ --------- ---
1 test1
db-reserve
10.2.0.3.0 27-MAR-09 OPEN NO 1 STARTED
ALLOWED NO ACTIVE PRIMARY_INSTANCE NORMAL NO

---cat /dev/null > /data/oradata/test1/control03.ctl
SQL> host ls -l /data/oradata/test1/control*;
-rw-r----- 1 oracle dba 8339456 Mar 27 16:37 /data/oradata/test1/control01.ctl
-rw-r----- 1 oracle dba 8339456 Mar 27 16:37 /data/oradata/test1/control02.ctl
-rw-r----- 1 oracle dba 65536 Mar 27 16:37 /data/oradata/test1/control03.ctl

-- lsof | grep '/data/oradata/test1/control03.ctl';
пустой результат

SQL> select * from olga.vvv;

VV1
----------
999
222
333
...

16 rows selected.

SQL> create table as select * from v$database;
SP2-0734: unknown command beginning "\create ta..." - rest of line ignored.
SQL> create table olga.vvv2 as select * from v$database;
create table olga.vvv2 as select * from v$database
*
ERROR at line 1:
ORA-00227: corrupt block detected in control file: (block 1, # blocks 1)
ORA-00202: control file: '/data/oradata/test1/control03.ctl'


SQL> select status from v$instance;

STATUS
------------
OPEN

rm /data/oradata/test1/control03.ctl
lsof | grep '/data/oradata/test1/control03.ctl'
пустой результат

SQL> select status from v$instance;

STATUS
------------
OPEN
27 мар 09, 16:52    [6985942]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить