Пайдаланушылық жəне көлеңке ҥрдісі арасында ―бірге бір‖ байланысы
туындайды, алайда бір көлеңке ҥрдісі жҥйе ресурстарын ҥнемдей
отырып, бір уақытта бірнеше пайдаланушылық ҥрдіспен өзара
əрекеттесе алады (мультижіпті сервердің конфигурациясы).
Фон үрдістері БДҚБЖ Oracle əртҥрлі міндеттерін орындау
ҥшін пайдаланылады. Бҧл міндеттер Oracle данасымен өзара
əрекеттесуден лас блоктарды дискке жазуға дейін тҥрленеді. Oracle
тоғыз фон ҥрдісі бар:
• DBWR (DataBase WRiter) лас блоктардың ДҚ блок буферлерінен
дискке жазылуы ҥшін жауапты. Транзакция деректер блогындағы
ақпаратты өзгертетін кезде, осы деректер блогы дискке баяу жазылуы
міндетті емес. Сəйкесінше, DBWR деректерді дискке барлық
өзгерістерді жекелеп жазуға қарағанда аса тиімді тəсілмен жаза алады.
DBWR əдетте оқу ҥшін қажетті болатын кезде жазады. Жақын арада
пайдаланылған деректер де жазылады. Асинхронда кіреберісі
(шығаберісі) бар жҥйелер ҥшін DBWR бір ҥрдіс жеткілікті. Қалған
жҥйелер ҥшін DBWR бірнеше ҥрдісін қҧра отырып, өнімділігін
арттыруға болады;
• LGWR (LoG WRiter) журнал буферіндегі деректерді өзгерістер
журналына жазады;
• CKPT (ChecK PoinT) DBWR ҥрдістеріне бақылау нҥктесін
орындау жəне барлық дерек файлдары мен басқарушы файлдарды
жаңарту қажеттігі туралы сигнал береді. Бақылау нҥктесі - бҧл ДҚ-ның
барлық өзгертілген буферлері дискке жазылатын оқиға. CKPT — бҧл
міндетті ҥрдіс емес. Егер CKPT іске қосылмаса, онда оның жҧмысын
LGWR қабылдайды;
• PMON (Process MONitor) қалған ҥрдістерді сақтау ҥшін жəне
алдын ала бҥлінгендерді қайта іске қосу ҥшін пайдаланылады.
Сонымен қатар PMON буферлердің пайдаланылмайтын салаларын
тазартады жəне бос болмауы мҥмкін ресурстарды босатады. Барлық
қатып қалған ҥрдістер мен диспетчерлерді қайта іске қосу ҥшін
жауапты;
SMON (System MONitor) іске қосу кезінде дананы қалпына
келтіреді. Бҧл уақытша сегменттерді тазалайды жəне аяқталмаған
транзакцияларды
қалпына
келтіреді,
сонымен
қатар
ДҚ
дефрагменттейді;
RECO (RECOvery) бөлінген ДҚ-дағы аяқталмаған транзакцияларды
тазартады. Даулы транзакцияларды тіркейді немесе кейін шегінеді;
ARCH (ARCHiver) толтыру кезінде өзгерістер журналының
файлдарының көшірмесін жасайды. Егер БДҚБЖ Archivelog
режимінде жұмыс істесе, ARCH активті. Егер жҥйе осы режимде
жҧмыс істемесе, онда жҥйені істен шыққаннан кейін қалпына келтіру
мҥмкін болмайтын жағдайлар болуы мҥмкін. Кейбір жағдайда
Noarchivelog режимінде де жұмыс істеуге болады;
LCKn (Parallel Server LoCK) — сервер параллельді режимде жҧмыс
істеу кезінде 10 ҥрдіске дейін (мҧндағы n — 0-ден 9-ға дейінгі мəн)
пайдаланылуы мҥмкін. Данааралық бҧғаттау қызметін атқарады;
Dnnn (Dispatcher) — сервер мультижіпті режимде жҧмыс істеген
кезде өзара байланыстың əрбір хаттамасы ҥшін жауапты болатын, ең
болмағанда бір диспетчерлік ҥрдіс болады. Диспетчерлік ҥрдістер
пайдаланушылық жəне бөлінетін серверлік ҥрдістер арасындағы өзара
əрекеттесуді ҧйымдастырады.
12.7.
Транзакциялар. Жҧмыс істеу қағидалары
Транзакция — бҧл (commiting) тіркеумен немесе (rollbacking) кейін
шегінумен аяқталған, бір немесе одан артық SQL-команда. Тіркеу
дегеніміз барлық өзгерістерді қабылдау жəне сақтау. Кейін шегіну - бҧл
соңғы өзгерістердің кҥшін жою, яғни ДҚ бҧдан бҧрынғы жағдайына
қайта оралу рəсімі.
Oracle жҥйесінің қалай жҧмыс істейтінін тҥсіну ҥшін қарапайым
транзакцияның жҧмыс істеу ҥлгісін қадамы бойынша қарастырайық.
1. Қосымша пайдаланушылық енгізуді өңдейді жəне SQL*Net
арқылы сервермен қосылады.
2. Сервер қосылуға сҧранысты қабылдайды жəне серверлік ҥрдісті
қҧрады.
3. Пайдаланушы
SQL-командасын
(немесе
командалар
жиынтығын) орындайды. Біздің ҥлгіде пайдаланушы кестенің
жолындағы деректерді өзгертеді деп есептейік.
4. Серверлік ҥрдіс сəйкес SQL-командалары бар SQL-саласы бар
ма жоқ па екенін - бөлінетін пулды қарастырады. Егер ол баламалы
бөлінетін SQL-саланы тапса, онда серверлік ҥрдіс пайдаланушының
деректерге қолжетімдік қҧқығын тексереді. Қҧқығы бар делік, онда
серверлік ҥрдіс
бөлінетін
SQL-саласын
пайдалана
отырып,
командаларды орындайды. Алайда егер бөлінетін SQL-саласы
табылмаса, онда жаңасына жад бөлінеді, содан кейін бөлшектеу жəне
SQL-командаларын орындау жҥзеге асырылады.
5. Серверлік ҥрдіс SGA-дағы деректерді іздейді (егер болса) немесе
оларды SGA-дағы деректер файлынан оқиды.
6. Серверлік ҥрдіс SGA-дағы деректерді өзгертеді. Серверлік ҥрдіс
деректер файлындағы деректерді тек оқи алады. Кейін DBWR ҥрдісі
өзгертілген деректер блогын тҧрақты қоймаға (қатты диск, магнитті
таспа) жазады.
7. Пайдаланушы Commit (тіркеу) немесе Rollback (кейін шегіну)
командасын орындайды. Commit транзакцияны аяқтайды, ал Rollback
өзгерістердің кҥшін жояды. Егер транзакция тіркелген болса, онда
LGWR ҥрдісі оны дереу тҥрде өзгерістер журналының файлына
жазады.
8. Егер транзакция сəтті аяқталса, онда клиенттік ҥрдіске аяқтау
коды жіберіледі. Егер қандай да бір істен шығу болса, онда қателік
туралы хабарлама қайтарылады.
Достарыңызбен бөлісу: |