Архив на регистрационните файлове на базата данни - Oracle DBA форум

Лог файлове на базата данни

Регистрационните файлове на базата данни са дискови ресурси, които съхраняват промените в данните, направени от потребителите на Oracle.

1) Онлайн регистрационните файлове на базата данни са физически файлове, които съхраняват информация от буфера на регистрационния файл на базата данни в SGA. 2) Промените, направени в блоковете с данни в базата данни, се записват като записи за повторение в буфера на регистрационния файл на базата данни в SGA. 3) Когато транзакция се ангажира или буферът на регистрационния файл на базата данни се запълни, записите за повторение се изтеглят в регистрационните файлове на онлайн базата данни. 4) Онлайн регистрационните файлове на базата данни могат да имат огледални файлове. Всеки набор от файлове, съдържащи едни и същи данни, се нарича група от регистрационни файлове на база данни, огледалните файлове се наричат ​​членове на регистрационни файлове на база данни. 5) Ако базата данни се използва в режим ARCHIVELOG, данните в регистрационните файлове на онлайн базата данни се архивират в регистрационните файлове на архива на базата данни веднага щом регистрационният файл се напълни. Това може да стане ръчно или чрез автоматични процеси на архивиране. 6) Ако базата данни работи в режим NOARCHIVELOG, тогава няма нужда да се притеснявате за архивирането на регистрационните файлове на онлайн базата данни.

Контролна точка е редовно събитие в базата данни, което сигнализира процеса на запис на базата данни за изтегляне на модифицирани буфери във файлове с данни и актуализиране на контролни файлове и заглавки на файлове с информация за контролна точка. Честотата на контролните точки е един фактор, който влияе върху времето, необходимо на базата данни да се възстанови от неочакван отказ.

Контролните точки възникват най-малко при превключване на регистрационните файлове на базата данни. Те също могат да възникнат, ако са зададени по-чести интервали с помощта на параметри във файла init.ora. Ако CKPT интервал на контролна точканадвишава размера на регистрационния файл на базата данни, контролните точки възникват само при превключване на регистрационните файлове на базата данни.

Предназначение и структура на лог файловете на онлайн базата данни.

Oracle използва лог файлове на базата данни, за да проследява направените от потребителя промени в данните, като например промени в блокове от сегменти от данни в таблици или индекси. Всеки потребителски процес, който прави такава промяна, генерира запис за повторение, указващ направената промяна. Този запис за повторение се поставя в област на SGA, наречена буфер на регистрационния файл на базата данни. Процесът LGWR записва тези промени във файлове на диск, наречени регистрационни файлове на онлайн база данни. Oracle приема, че има поне два регистрационни файла на базата данни. Всеки от регистрационните файлове на базата данни се нарича група от регистрационни файлове на базата данни (група от регистрационни файлове за повторение). За надеждност Oracle също ви позволява да създадете огледален образ на всеки от регистрационните файлове на базата данни. Такива огледални файлове се наричат ​​членове на групата.

Какво се случва със съдържанието на първата група?

Отговорът на този въпрос зависи от режима на архивиране, в който работи базата данни на Oracle. Базата данни може да работи в режим ARCHIVELOG или NORACHIVELOG. Когато работи в режим NOARCHIVELOG, LGWR записва във всяка от регистрационните групи и след това се връща обратно към първата група и презаписва нейното съдържание. В случай на повреда този тип режим не може да върне базата данни в състоянието към момента на повредата. В режим ARCHIVELOG процесът на архивиране (ARCn) копира записите за повторение, направени в групите на регистрационните файлове, на различни места. За да ускорите процеса на архивиране, можете да активирате повече от един процес на архивиране. Когато работите в този режим, базата данни може да бъде възстановенаточка на повреда чрез прилагане на тези архивирани записи в регистрационния файл на базата данни към възстановените архиви.

В този момент много администратори на бази данни с по-малко опит в управлението на Oracle се чудят дали Oracle позволява възстановяване до точката на отказ, когато базата данни работи в режим ARCHIVELOG, тогава защо някой би стартирал базата данни в режим NOARCHIVELOG? Отговорът е лесен. База данни на Oracle, работеща в режим ARCHIVELOG, е по-бавна от база данни, работеща в режим NOACHIVELOG, въпреки че разликата в производителността е минимална, когато базата данни е оптимално настроена. Освен това не всяка база данни на Oracle трябва да архивира всички свои повторения. Например, база данни само за четене, използвана за достъп до хранилището на информация, не е необходимо да работи в режим ARCHIVELOG, тъй като потребителите не могат да променят данни, които вече са заредени.

Превключване на режимите на архивиране.

За да превключвате между тези два режима, следвайте стъпките по-долу.

Управление на превключване на логове на бази данни и контролни точки.

Регистърът на базата данни се записва последователно. Тъй като потребителите на Oracle правят промени, сървърният процес генерира повторно, за да възстанови промените, направени в транзакцията на потребителя. Повторението се записва в буфера за повторение. Оттам LGWR записва промени в регистрационния файл на онлайн базата данни. Размерът на регистрационния файл на базата данни е ограничен. След като го попълните, LGWR трябва да премине към следващия. Превключване на регистрационен файл възниква, когато LGWR запълни група от регистрационни файлове на онлайн база данни и се премести в началото на записа в следващата група.

Всеки път, когато превключвате регистрационни файлове, възникват няколко събития. Oracle генериранов пореден номер за регистрационния файл на онлайн базата данни, възстановява регистрационния файл, в който LGWR ще пише. Oracle също изпълнява точка на прекъсване. Точка на прекъсване възниква при всяко превключване. Контролните точки също могат да се появят по-често от превключванията на регистрационните файлове. По време на контролна точка процесът на фонова контролна точка CKPT актуализира заглавките на всички файлове с данни и контролни файлове, за да отрази успеха, и инструктира DBWn да изтегли модифицираните буфери към файловете с данни. Броят на буферите, в които DBWn пише, се определя от опцията FAST_START_IO_TARGET (или FAST_START_MTTR_TARGET), ако е зададена. Честотата, с която се появяват контролни точки, влияе върху времето, необходимо на Oracle за възстановяване на екземпляр. Ако екземпляр се провали, блоковете, които са били модифицирани, но не са записани на диска, трябва да бъдат възстановени от регистрационния файл на базата данни. Въпреки че възстановяването на екземпляр става автоматично под контрола на SMON, времето, необходимо за възстановяване на екземпляр зависи от времевата разлика между контролните точки.

При превключване на регистрационни файлове възникват следните събития. Първо, LGWR спира да записва в пълния регистър на базата данни. Второ, CKPT инструктира DBWn да изтегли модифицирани буфери във файлове с данни и накрая CKPT актуализира контролни файлове и заглавки на файлове с данни с информация за контролни точки. След като задачите за контролни точки бъдат изпълнени, LGWR ще може да започне да записва в следващата група регистрационни файлове на базата данни с новия пореден номер.

DBA има малък контрол върху управлението на превключване на регистрационни файлове. Тъй като потребителите винаги ще променят данните, има няколко неща, които DBA може да направи, за да предотврати записването на информация за повторно възпроизвеждане. Това означава, че можете да контролирате честотатапревключва чрез промяна на размера на членовете на регистрационния файл на онлайн базата данни или ръчно чрез принудително превключване на журнал с командата alter system switch logfile. Колкото по-голям е файлът, толкова по-рядко се случва превключването на журнала и колкото по-малки са членовете на файловете, толкова по-често се случва.

Контролната точка възниква не само по време на превключване на регистрационни файлове, но и поради конфигурацията, която задава CKPT на редовни интервали. Ако конфигурирате CKPT на редовни интервали, тогава контролните точки ще се появяват равномерно, както и превключването на журналите.

Определяне на честотата на точката на прекъсване.

Ако регистрационните файлове на базата данни са много големи, трябва да конфигурирате базата данни, така че контролните точки да се появяват по-често, отколкото по време на превключване на регистрационния файл. Задаването на LOG_CHECKPOINT_INTERVAL или LOG_CHECKPOINT_TIMEOUT във файла init.ora ще ви позволи да задавате по-чести контролни точки. Тези два параметъра отразяват двата различни принципа, на които се основава честотата на контролната точка: обемни интервали и времеви интервали.

LOG_CHECKPOINT_INTERVAL задава интервали на контролни точки въз основа на обема. Когато LGWR запише толкова информация в регистрационния файл на базата данни, колкото е посочено в LOG_CHECKPOINT_INTERVAL, възниква контролна точка. Периодите с голям обем транзакции изискват по-чести изтегляния на модифицирания буфер; обратно, периодите на нисък обем на транзакция изискват по-малко записи в регистрационния файл на базата данни и по-малко контролни точки. Ефектът от използването на LOG_CHECKPOINT_INTERVAL е подобен на използването на по-малък регистрационен файл на базата данни, но също така елиминира излишните разходи за превключване на регистрационния файл на базата данни, като например архивиране на регистрационния файл на базата данни.

КогаLOG_CHECKPOINT_INTERVAL е зададено, позицията, посочена за контролната точка, не може да изостава от края на регистрационния файл на базата данни с повече от броя блокове на регистрационния файл на базата данни, посочени от този параметър. Това гарантира, че по време на възстановяването на екземпляра трябва да се прочете само определеният брой повторни блокове.

Друг начин за определяне на честотата на точката на прекъсване е използването на времеви интервал. Задава се в параметъра LOG_CHECKPOINT_TIMEOUT на файла init.ora. Много по-лесно е да конфигурирате интервали на контролни точки въз основа на време, отколкото въз основа на обем, въпреки че в този случай контролните точки се появяват на редовни интервали, независимо от обема на транзакциите в системата. Заданието LOG_CHECKPOINT_TIMEOUT задава позицията на контролната точка на мястото в регистрационния файл, където е бил краят на регистрационния файл на базата данни преди няколко секунди. Това гарантира, че само броят блокове, равен на определения брой секунди, трябва да бъде прочетен по време на възстановяване. За Oracle обаче разликата е само във формулировката. За да деактивирате базираните на времето контролни точки, задайте LOG_CHECKPOINT_TIMEOUT на нула и не забравяйте новата настройка FAST_START_IO_TARGET. Тази опция подобрява производителността при възстановяване на екземпляр. Колкото по-малка е стойността на този параметър, толкова по-добра е производителността на възстановяването, тъй като по-малко блокове трябва да бъдат възстановени. Ако тази опция е зададена, DBWn изтегля модифицираните буфери по-енергично.

Единственият проблем, който може да възникне при задаване на контролни точки да се появяват на редовни интервали, е, че контролната точка може да се появи точно преди да се превключат регистрационните файлове на базата данни. За да избегнете превключване, което води до по-бързо възникване на точки на прекъсване, посочете средното време, което е необходимоза попълване на регистрационния файл на базата данни и задаване на интервала от време, който факторизира в точката на прекъсване, която възниква при превключване на регистрационните файлове на базата данни. За да направите това, вземете предвид файла за проследяване, генериран от LGWR в директорията, указана от параметъра BACKGROUND_DUMP_DEST.

И накрая, можете да принудите контролни точки, като принудите превключване на журнал или извикате контролна точка. И двете могат да бъдат направени с командата alter system. За да принудите превключване на журнал, издайте командата alter system switch logfie. За да принудите контролна точка, въведете командата alter system checkpoint. Контролните точки, които възникват без съответен превключвател на регистрационния файл на базата данни, се наричат ​​бързи контролни точки (fast_checkpoints), докато контролните точки с превключвател се наричат ​​пълни или пълни контролни точки (пълни chtckpoints)

Поддръжка на мултиплексиране и лог на база данни

Има няколко важни неща, които трябва да имате предвид, когато конфигурирате регистрационните файлове на базата данни. Важен детайл е стойността на мултиплексирането на регистрационните файлове на базата данни. За да подобри устойчивостта в случай на повреда на диска, администраторът на бази данни трябва да конфигурира Oracle да мултиплексира или съхранява всеки член на групите от регистрационни файлове на базата данни на различни дискови ресурси. Това означава, че Oracle ще поддържа два или повече члена на журнална група на база данни.

Мултиплексирането на членове на регистрационния файл на базата данни ви позволява да съхранявате множество копия на регистрационния файл на базата данни, достъпни за LGWR. Ако LGWR има проблем с диска, където се съхранява регистрационният файл на базата данни (например, ако дисковият контролер се повреди), целият екземпляр продължава да работи, защото има друг дискдруг член на регистрационния файл на базата данни. Ако има само един член в групата на регистрационния файл на базата данни или ако множество членове на регистрационния файл на онлайн базата данни не са мултиплексирани и възникне същата грешка, LGWR няма да може да пише и екземплярът на Oracle ще се провали. Това е така, защото LGWR трябва да изчисти записите в регистрационния файл на базата данни на диска, за да освободи място в буфера на регистрационния файл на базата данни и да позволи на потребителските процеси да продължат да правят промени в базата данни. Ако LGWR не може да изчисти пространството в паметта чрез преместване на регистрационните записи на базата данни на диск, не са възможни допълнителни потребителски модификации.