SQL.RU
 client/server technologies
 
 Главная | Документация | Статьи | Книги | Форум | Опросы | Рассылка | Работа | Поиск | FAQ |

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

Откуда: nowhere
Сообщений: 403
Во дают...
mcureenab

Замечу, что media recovery работает как в archivelog так и в noarchivelog. Вопрос только в глубине хранимых журнальных записей.

А можно подробнее про глубину? ;)
16 май 06, 16:27    [2670220] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Женя Лукашин
Guest
Заглянул
Во дают...

Это точно...

P.S. Извините, навеяло :)
"Ну какой же Вы тупой!" (c)
16 май 06, 17:15    [2670569] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Заглянул
Во дают...
mcureenab

Замечу, что media recovery работает как в archivelog так и в noarchivelog. Вопрос только в глубине хранимых журнальных записей.

А можно подробнее про глубину? ;)


Чисто теоретическое предположение. Если для восстановления носителя не требуются архив журнала (резервная копия файла была создана недавно, так что журнальные записи не были циклически затёрты), т.е. достаточно оперативного журнала, то что мешает восстановить носитель в noarchivelog режиме?
16 май 06, 17:55    [2670795] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
Вот результаты тестов.

Вывод - direct insert+nologging НЕ пишется в реду никогда

Так что были и мы правы и квадро - каждый по-своему :)



append + nologging+ARCHIVELOG
Connected to:
Oracle8i Enterprise Edition Release 8.1.7.4.1 - Production
With the Partitioning option
JServer Release 8.1.7.4.1 - Production

SQL> select log_mode from v$database;

LOG_MODE
------------
ARCHIVELOG

SQL> create table obj_test nologging as select * from all_objects where 1=0;

Table created.

SQL> insert /*+ append */ into obj_test select * from all_objects;

46383 rows created.


Statistics
----------------------------------------------------------
       2008  recursive calls
        195  db block gets
     297001  consistent gets
          5  physical reads
      24428  redo size
        834  bytes sent via SQL*Net to client
        586  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
         15  sorts (memory)
          0  sorts (disk)
      46383  rows processed


append+ARCHIVELOG
инстанс другой, здесь немного больше объектов поэтому where rownum<46384

SQL> drop table obj_test;

Table dropped.

SQL> create table obj_test as select * from all_objects where 1=0;

Table created.

SQL> insert /*+ append */ into obj_test select * from all_objects where rownum<46384;

46383 rows created.


Statistics
----------------------------------------------------------
       1728  recursive calls
        196  db block gets
     289187  consistent gets
          5  physical reads
    5051424  redo size
        834  bytes sent via SQL*Net to client
        605  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
         15  sorts (memory)
          0  sorts (disk)
      46383  rows processed



append + nologging+NOARCHIVELOG

SQL> select log_mode from v$database;

LOG_MODE
------------
NOARCHIVELOG

SQL> drop table obj_test;

Table dropped.



SQL> create table obj_test nologging as select * from all_objects where 1=0;

Table created.

SQL> insert /*+ append */ into obj_test select * from all_objects;

46383 rows created.


Statistics
----------------------------------------------------------
       1927  recursive calls
        195  db block gets
     296967  consistent gets
        653  physical reads
      24428  redo size
        835  bytes sent via SQL*Net to client
        586  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
         15  sorts (memory)
          0  sorts (disk)
      46383  rows processed


append+NOARCHIVELOG


SQL> drop table obj_test;

Table dropped.

SQL> create table obj_test  as select * from all_objects where 1=0;

Table created.

SQL> insert /*+ APPEND */ into obj_test select * from all_objects;

46383 rows created.


Statistics
----------------------------------------------------------
       1208  recursive calls
        192  db block gets
     296807  consistent gets
          0  physical reads
      24428  redo size
        837  bytes sent via SQL*Net to client
        586  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          3  sorts (memory)
          0  sorts (disk)
      46383  rows processed


обычный insert

SQL> drop table obj_test;

Table dropped.

SQL> create table obj_test  as select * from all_objects where 1=0;

Table created.

SQL> insert into obj_test select * from all_objects;

46383 rows created.


Statistics
----------------------------------------------------------
       1197  recursive calls
       3586  db block gets
     297429  consistent gets
          0  physical reads
    5011828  redo size
        854  bytes sent via SQL*Net to client
        572  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      46383  rows processed


insert + nologging + noarchivelog

SQL> drop table obj_test;

Table dropped.

SQL> create table obj_test nologging as select * from all_objects where 1=0;

Table created.

SQL> set autotrace on statistics;
SQL> insert into obj_test select * from all_objects;

46383 rows created.

Statistics
----------------------------------------------------------
       1230  recursive calls
       3587  db block gets
     297429  consistent gets
          0  physical reads
    5019636  redo size
        842  bytes sent via SQL*Net to client
        572  bytes received via SQL*Net from client
          3  SQL*Net roundtrips to/from client
          2  sorts (memory)
          0  sorts (disk)
      46383  rows processed





-----------------------
Вечны налоги,
Смерть и потеря данных.
Что на этот раз?
Картинка с другого сайта.
16 май 06, 19:56    [2671356] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
-007-
Guest
Oleg Afanasiev
Вывод - direct insert+nologging НЕ пишется в реду никогда

16 май 06, 20:32    [2671421] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Oleg Afanasiev
Вот результаты тестов.

Вывод - direct insert+nologging НЕ пишется в реду никогда

Так что были и мы правы и квадро - каждый по-своему :)


Этот ближе к делу.

Пример прояснил туманный смысл Note:212119.1. В одних случаях оракл игнорирует logging и не пишет redo, в дургих игнорирует nologging и пишет redo.

В режиме noarchivelog direct insert не пишет redo даже для режима logging. В этом режиме оракл игнорирует опцию logging. И както не ясно, то ли это бага то ли фича.

Как сказал -007-. Никогда не говори "никогда". nologging не обязательно отключает создание redo. Просто твой пример не покрыл случаи, когда оракл игнорирует nologging.
16 май 06, 21:01    [2671452] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Beretta
Member

Откуда: Запорожье->Львов->Киев
Сообщений: 309
[quot mcureenab в дургих игнорирует nologging и пишет redo.[/quot]

А какие случаи из теста Олега Афанасьева Вы имеете в виду?
Минимальный объем реду генерируется и при nologging.
16 май 06, 22:02    [2671543] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Oleg Afanasiev
Member

Откуда: Киев
Сообщений: 3681
минимальный объём есть всегда, об этом уже говорили и не раз.
С этим не спорю.

-007-



007,
Этой фразой я хотел сказать , что объём реду различается в разы
Неверно сформулировал.

Если есть ещё какие-то фичи (ноты, баги) - не стесняйтесь, выкладывайте.

Век живи-век учись
(это я про себя, конечно).


-----------------------
Вечны налоги,
Смерть и потеря данных.
Что на этот раз?
Картинка с другого сайта.
16 май 06, 22:14    [2671563] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Beretta
Member

Откуда: Запорожье->Львов->Киев
Сообщений: 309
А я тоже не спорю...
Просто не вижу в тестах подтверждения тому, что оракл "игнорирует nologging и пишет redo."
16 май 06, 22:31    [2671587] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Q u a d r o
Member

Откуда: Canada
Сообщений: 1987
Oleg Afanasiev
Вывод - direct insert+nologging НЕ пишется в реду никогда

Так что были и мы правы и квадро - каждый по-своему :)


У всех что - весенне обострение?

Я еще во втором посте написал:

Q u a d r o
Если вы в archivelog - то append не генерирует undo, но генерирует redo, если только на сегменте нет nologging и база не в режиме force logging.

Если вы в noarchivelog - то append не генерирует undo и не генерирует redo.


P.S. Насчёт "Вывод - direct insert+nologging НЕ пишется в реду никогда" - вы однозначно не правы. Только при условии отсутствия force logging на базе.
17 май 06, 02:29    [2671912] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 11564
mcureenab
Пример прояснил туманный смысл Note:212119.1. В одних случаях оракл игнорирует logging и не пишет redo, в дургих игнорирует nologging и пишет redo.

В режиме noarchivelog direct insert не пишет redo даже для режима logging. В этом режиме оракл игнорирует опцию logging. И както не ясно, то ли это бага то ли фича.
А что там туманного -- в NOARCHIVELOG операции, поддерживающие режим NOLOGGING всегда выполняются в этом режиме.

Почему/для чего -- тоже понятно: отсутствие стендбая и недоступность media recovery
17 май 06, 03:12    [2671943] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
mcureenab
Member

Откуда: Murmansk
Сообщений: 5009
Вячеслав Любомудров
А что там туманного -- в NOARCHIVELOG операции, поддерживающие режим NOLOGGING всегда выполняются в этом режиме.


Может я плохо владею английским, но именно такой точной формулировки я в ноте не обнаружил. Всё вокруг да около.

Вячеслав Любомудров
Почему/для чего -- тоже понятно: отсутствие стендбая и недоступность media recovery


А как же Crash Recovery, который по сути мало отличается от Media Recovery? Ну ладно. Похоже так было задумано ораклом. Жаль, что мысль не отразилась в документации.
17 май 06, 10:59    [2672836] Ответить | Цитировать    Сообщить модератору

 Re: nologging & /*+ APPEND */   [new]
SY
Member

Откуда: Middlebury, CT USA
Сообщений: 5029
mcureenab
А как же Crash Recovery, который по сути мало отличается от Media Recovery? Ну ладно. Похоже так было задумано ораклом. Жаль, что мысль не отразилась в документации.


When nologging is used, redo logs contain only enough information to keep the data dictionary up to date during recovery activities, and to mark updated data blocks as "invalidated" due to nologging. Without complete information in the redo logs, you need to take extra steps to successfully restore from a backup or activate a physical standby database. These steps repair the affected data blocks by either re-copying the data files, or by dropping and rebuilding the affected objects.

SY.
17 май 06, 18:52    [2676254] Ответить | Цитировать    Сообщить модератору

Топик располагается на нескольких страницах: Ctrl  назад   1 [2]      все
Все форумы / Oracle Ответить
Generated time: 31ms.
Rambler's Top100 Powered by ActualForum 1.5.3 [s1] Copyright (c) Alex Sibilev 2000-2010