MAA, 11g, lost write
На своей последней презентации по HA я сморозил глупость про lost write в Oracle Database. Прошу прощения. На самом деле, lost write - это когда подсистема ввода вывода сообщила, что блок записан, но на самом деле этого не произошло, и у нас по прежнему на диске старый блок. Если у Вас single database, то тут поделать ничего нельзя. Вы будете получать неконсистентные данные, пока не догадаетесь, что тут дело нечисто и не восстановитесь из backup.
Но если вы работаете с 11g и у вас есть возможность установить параметр DB_LOST_WRITE_PROTECT, и тогда, при чтении блоков с диска, то в redo будет писаться доп. информации о текущем SCN каждого блока. Standby (если он у Вас есть), способен в момент применения redo, проверять, совпадает ли у него версия SCN блока на Standby с пришедшей вместе с redo. Если они расходятся, значит мы имеем дело с lost writes и можем запросить блок из источника, у которого SCN больше.
Конечно же механизм lost writes не имеет общего с механизмами проверки контрольной суммы блока (db_block_checksum) и логической проверки блока (db_block_cheking), работающими еще с версии 8i. Рекомендую Metalink Note 32969.1 как самый короткий источник, объясняющий разницу в механизмах. В 11g R1 также появился параметр db_ultra_safe, который сразу выставляет все три параметра. Ссылка на документацию. RTFM нам всем поможет.
PS
Рекомендую также пройти MAA Architecture Assessment. И помните, что в каждой шутке есть только доля шутки..
На фотографии - катамаран 2-ка с двумя достаточно взрослыми мужчинами чуть было не сыграл в lost write в пороге водопадный на реке Китой, Саяны.
Но если вы работаете с 11g и у вас есть возможность установить параметр DB_LOST_WRITE_PROTECT, и тогда, при чтении блоков с диска, то в redo будет писаться доп. информации о текущем SCN каждого блока. Standby (если он у Вас есть), способен в момент применения redo, проверять, совпадает ли у него версия SCN блока на Standby с пришедшей вместе с redo. Если они расходятся, значит мы имеем дело с lost writes и можем запросить блок из источника, у которого SCN больше.
Конечно же механизм lost writes не имеет общего с механизмами проверки контрольной суммы блока (db_block_checksum) и логической проверки блока (db_block_cheking), работающими еще с версии 8i. Рекомендую Metalink Note 32969.1 как самый короткий источник, объясняющий разницу в механизмах. В 11g R1 также появился параметр db_ultra_safe, который сразу выставляет все три параметра. Ссылка на документацию. RTFM нам всем поможет.
PS
Рекомендую также пройти MAA Architecture Assessment. И помните, что в каждой шутке есть только доля шутки..
На фотографии - катамаран 2-ка с двумя достаточно взрослыми мужчинами чуть было не сыграл в lost write в пороге водопадный на реке Китой, Саяны.
неужели сообщение ORA-01578 и подобные ему ORA-08101/02/03/04, равно как и разнообразные коррапшн-ориентированные ORA-00600 появились только в 11g?!
ОтветитьУдалить:D
ranger.
Опять путаем теплое с мягким. "коррапшн-ориентированные" были и будут. И причин у них масса. с 11g появился механизм автоматической борьбы с одним из проявлений. Не более того.
ОтветитьУдалитьКогда наконец наш support прочитает документацию по 11g ? :)))))