Қазір бөлісу:
Мазмұны жасыру
8. Практикалық қолдану жағдайлары мен мысалдары

1. кіріспе

1.1 Нелер SQL Server Кеңейтілген іс-шаралар?

SQL Server Кеңейтілген оқиғалар - әкімшілер мен әзірлеушілерге сервер әрекетінің егжей-тегжейлі деректерін жинауға және талдауға мүмкіндік беретін жеңіл өнімділікті бақылау жүйесі. Бұл жүйе біріктірілген SQL Server Database Engine және қалыпты әрекеттер мен ақауларды жою сценарийлері туралы толық түсінік береді.

1.2 Неліктен бақылау үшін кеңейтілген оқиғаларды пайдалану керек?

SQL Server Кеңейтілген оқиғалар дерекқорды бақылау және ақауларды жою үшін бірнеше маңызды артықшылықтарды ұсынады:

  • Жеңіл архитектурамен өнімділіктің минималды әсері
  • Деректерді жинау және оқиғаларды сүзу бойынша түйіршікті бақылау
  • Арнайы мониторинг қажеттіліктеріне бейімделген теңшелетін деректерді жинау
  • Бір уақытта бірнеше пакеттерден оқиғаларды түсіру мүмкіндігі
  • Тиісті операцияларға назар аудару үшін икемді сүзгілеу мүмкіндіктері
  • Пайдаланушы тәжірибесін төмендетпей өндірістік жүйені бақылауды қолдау
  • Өнімділік көрсеткіштерін толық бақылау
  • Ақаулықтарды жоюдың кеңейтілген диагностикалық мүмкіндіктері
  • Сәйкестік талаптары үшін аудит ізіне техникалық қызмет көрсету
  • Нақты уақыттағы және тарихи деректерді талдау опциялары

1.3 Кеңейтілген оқиғаларға қарсы SQL Server Профессор

уақыт SQL Server Профессор дәстүрлі бақылау құралы болды, MS SQL Extended Events тиімдірек балама ұсынады. Кеңейтілген оқиғалар азырақ жүйе ресурстарын тұтынады және өндіріс орталары үшін жақсырақ масштабтауға мүмкіндік береді.

SQL Server Profiler қазір ескірген және Microsoft барлық бақылау әрекеттері үшін Кеңейтілген оқиғаларға көшуді ұсынады.

2. Кеңейтілген оқиғалар архитектурасын түсіну

2.1 Кеңейтілген оқиғалар қозғалтқышының құрамдас бөліктері

Кеңейтілген оқиғалар механизмі оқиға деректерін түсіру, өңдеу және сақтау үшін бірге жұмыс істейтін бірнеше негізгі құрамдастардан тұрады. Осы құрамдастарды түсіну тиімді бақылау шешімдерін жасауға көмектеседі.

  • Диспетчер: Диспетчерлік құрамдас оқиға көздерінен Кеңейтілген оқиғалар механизміне оқиға ағынын үйлестіреді. Оқиға іске қосылғанда, диспетчер хабарландыруды алады және оны нақты оқиға түріне жазылған белсенді сеанстарға бағыттайды.
  • буферлік: Буферлер нысаналарға жазбас бұрын оқиға деректерін уақытша жадта сақтайды. Бұл буферлеу механизмі енгізу/шығару операцияларын азайту арқылы өнімділікті жақсартады. Буфер өлшемі мен басқару параметрлерін жадты пайдалануды деректерді жинау талаптарымен теңестіру үшін конфигурациялауға болады.
  • Сессия: Сессия оқиғаларды бақылау ауқымын анықтайды. Онда қандай оқиғаларды түсіру, қандай әрекеттерді орындау, қай предикаттарды қолдану және нәтижелерді қайда сақтау керектігі көрсетілген. Сессияларды тәуелсіз түрде жасауға, өзгертуге, бастауға және тоқтатуға болады.
  • Мақсатты данасы: Мақсатты даналары түсірілген оқиға деректерін сақтау орындарын білдіреді. Әрбір сеанс файлдар, сақина буферлері немесе санауыштар сияқты бір немесе бірнеше нысанаға жаза алады. Нысаналар оқиға туралы ақпаратты кейінірек талдау үшін өңдейді және сақтайды.

2.2 Оқиға пакеттері

SQL Server Кеңейтілген оқиғалар функцияларды пакеттерге біріктіреді. Әрбір пакетте байланысты оқиғалар, әрекеттер, түрлер, предикаттар және мақсаттар бар. Жалпы пакеттерге sqlserver, sqlos және package0 жатады.

  • Sqlserver бумасы сұраулар мен транзакциялар сияқты дерекқорға қатысты оқиғаларды қамтамасыз етеді.
  • sqlos бумасы операциялық жүйе оқиғаларын қамтиды.
  • Pack0 барлық бумаларда қолданылатын жалпы мақсаттағы функционалдылықты ұсынады.

2.3 Оқиға түрлері мен өрістері

Оқиғалар ішіндегі оқиғаларды білдіреді SQL Server бақылағыңыз келетіні. Әрбір оқиға түрінің тиісті ақпаратты қамтитын алдын ала анықталған өрістері бар. Мысалы, sql_statement_completed оқиғасы ұзақтығы, CPU уақыты, оқу және жазу үшін өрістерді қамтиды.

Оқиғалар синхронды немесе асинхронды болуы мүмкін. Синхронды оқиғалар операцияның өзі кезінде іске қосылады, ал асинхронды оқиғалар аяқталғаннан кейін іске қосылады. Оқиға сипаттамаларын түсіну бақылау қажеттіліктеріңізге сәйкес оқиғаларды таңдауға көмектеседі.

2.4 Әрекеттер

Әрекеттер түсірілген оқиғаларға қосымша ақпарат қосады. Оқиға іске қосылған кезде, SQL мәтіні, сеанс идентификаторы немесе қоңырау стегі туралы ақпарат сияқты қосымша контекст жинау үшін байланысты әрекеттер орындалады.

Жалпы әрекеттерге сұраныс операторларын жазу үшін sql_text, дерекқорды анықтау үшін database_name және бастапқы серверді бақылау үшін client_hostname жатады. Әрекеттер ақаулықтарды жою және талдау үшін маңызды контекст береді.

2.5 Мақсаттар

Нысаналар оқиға деректерінің қалай және қайда сақталатынын анықтайды. SQL Server Кеңейтілген іс-шаралар бірнеше мақсатты түрлерін қолдайды, соның ішінде:

  • егжей-тегжейлі талдау үшін тұрақты сақтауды қамтамасыз ететін дискіні сақтауға арналған event_file
  • жадқа негізделген сақтау үшін ring_buffer, ең аз шығынмен соңғы оқиғаларға жылдам қол жеткізуді ұсынады
  • қарапайым санауға арналған оқиға_санағы
  • топтастыруға арналған гистограмма
  • байланысты оқиғаларды корреляциялау үшін жұптастыру

2.6 Предикаттар (сүзгілер)

Түсірілген деректердің көлемін азайта отырып, көрсетілген шарттарға негізделген сүзгі оқиғаларын болжайды. Дерекқор аты, қолданба аты, сеанс идентификаторы, ұзақтық шектері немесе кез келген оқиға өрісінің мәні бойынша сүзуге болады.

Предикатты тиімді пайдалану тек сәйкес оқиғаларды түсіру арқылы өнімділік әсерін азайтады. Күрделі предикаттар нақты сүзу критерийлерін жасау үшін логикалық операторларды пайдаланып бірнеше шарттарды біріктіреді.

3. Оқиғаның кеңейтілген сеансының күйлері және өмірлік циклі

3.1 Сеанс күйлері: ЖАСАУ, ӨЗГЕРТУ және ТАПСЫРУ

Кеңейтілген Оқиға сеанстары әртүрлі күйлер бойынша орындалады:

  • CREATE EVENT SESSION операторы жаңа сеансты анықтайды, бірақ оны іске қоспайды. Сеанс нақты белсендірілгенге дейін тоқтатылған күйде болады.
  • ALTER EVENT SESSION операторы сеанс конфигурациясын өзгертеді немесе оның тоқтатылған және басталған күйі арасындағы күйін өзгертеді.
  • DROP EVENT SESSION мәлімдемесі сеанс анықтамасын серверден толығымен жояды.

3.2 Сессияның мазмұны мен сипаттамалары

Әрбір сеанс оқиғалардың, әрекеттердің, мақсаттардың және предикаттардың жиынтығын қамтиды. Сеанстардың ауқымы мен мінез-құлқын анықтайтын тұспалданған шекаралары бар. Конфигурация опциялары жадты бөлуді, оқиғаларды сақтауды және жіберу кідірісін басқарады.

Сессия сипаттамаларына олардың серверді қайта іске қосқан кезде сақталатындығы, жадтың максималды бөлінуі және жад қысымын қалай басқаратыны кіреді. Бұл параметрлер сеанстың жұмыс істеуіне және ресурстарды тұтынуға айтарлықтай әсер етеді.

3.3 Сеанс шекаралары мен пакеттері

Сессия шекаралары оқиғалар, мақсаттар және пакеттер арасындағы қатынастарды анықтайды. Бір пакеттен алынған оқиғалар басқа пакеттен әрекеттерді тудыруы мүмкін, бұл деректерді жинау стратегияларында икемділік береді.

Пакет қатынастары бір сеанс ішінде бірнеше көздерден алынған оқиғаларды біріктіруге мүмкіндік береді. Бұл мүмкіндік әртүрлі ауқымды қамтитын жан-жақты бақылау сценарийлеріне мүмкіндік береді SQL Server ішкі жүйелер.

4. SSMS көмегімен кеңейтілген оқиға сеанстарын жасау

4.1 Алғы шарттар және орнату

Жасалмас бұрын SQL Server Кеңейтілген оқиғалар сеанстары, сәйкес рұқсаттарыңыз бар екеніне көз жеткізіңіз. Сервер ауқымындағы сеанстар үшін КЕЗ КЕЛГЕН ОҚИҒА СЕССИЯСЫН ӨЗГЕРТУ рұқсаты немесе дерекқор ауқымындағы сеанстар үшін дерекқордағы БАСҚАРУ рұқсаты қажет.

Мұны растаңыз SQL Server Management Studio орнатылған және мақсатты данаңызға қосылған. Мониторинг талаптарымен танысыңыз және қандай оқиғалар мен мақсаттар сіздің қажеттіліктеріңізге ең сәйкес келетінін анықтаңыз.

4.2 Object Explorer бағдарламасындағы кеңейтілген оқиғаларға қатынасу

SSMS ішіндегі кеңейтілген оқиғалар интерфейсіне қол жеткізу үшін мына қадамдарды орындаңыз:

  1. ашық SQL Server Management Studio бағдарламасына қосылыңыз SQL Server мысалы.
  2. Object Explorer бағдарламасында кеңейтіңіз Басқару -> Кеңейтілген іс-шаралар.
  3. Кеңейтілген оқиғалар түйіні бар Отырыстар және пакеттер бақылау конфигурацияларын басқаруға арналған қалталар.

Кеңейтілген оқиғалар интерфейсіне қол жеткізіңіз SQL Server Менеджмент студиясы.

4.3 Жаңа сеанс жасау

Жаңа сеанс жасау үшін:

    1. Тінтуірдің оң жағын басыңыз Отырыстар астындағы қалта Кеңейтілген іс-шаралар.
    2. таңдау Жаңа сессия конфигурация диалогын ашу үшін. Келесі мазмұн жаңа сеанс жасау үшін осы әдісті пайдаланады.

ішінде кеңейтілген оқиғалардың жаңа сеансын жасаңыз SQL Server Менеджмент студиясы.

Ескерту: Жаңа сеанс шебері басқарылатын тәжірибе үшін де қол жетімді.

4.3.1 Жалпы бет конфигурациясы

Үстінде жалпы бетте негізгі сеанс сипаттарын конфигурациялаңыз:

  1. Сеанс атын енгізіңіз Сеанс атауы өріс. Бақылау мақсатын көрсететін сипаттама атауларын пайдаланыңыз.
  2. Қосымша таңдаңыз Оқиға сеансын сервер іске қосылған кезде бастаңыз сеансты автоматты түрде белсендіруді қосу үшін.
  3. Әдепкі сеанс үлгісі болып табылады Бос. Алдын ала анықталған конфигурацияны пайдалансаңыз, басқа үлгілерді пайдалануға болады.

Кеңейтілген оқиғалар сеансының жалпы беті SQL Server Менеджмент студиясы.

4.3.2 Оқиғалар бетін орнату

The Іс-шаралар бет бақылауға болатын оқиғаларды таңдауға мүмкіндік береді:

  1. Таңдаңыз Іс-шаралар солдан бет Бетті таңдаңыз тақтасы.
  2. Ішінде Іс-шаралар кітапханасы, қол жетімді оқиғаларды шолыңыз немесе іздеу функциясын пайдаланыңыз.
  3. Сәйкес оқиғаларды табу үшін “sql_statement_completed” сияқты кілт сөздерді теру арқылы оқиғаларды сүзіңіз.
  4. sql_statement_completed сияқты қалаған оқиғаны таңдаңыз.
  5. Оқиғаны жылжыту үшін оң жақ көрсеткі түймешігін басыңыз Таңдалған оқиғалар тізім.

Кеңейтілген оқиғалар сеансының оқиғалар беті SQL Server Менеджмент студиясы.

4.3.3 Деректерді сақтау конфигурациясы

The Деректерді сақтау бет оқиға деректерінің қайда сақталатынын анықтайды:

  1. Таңдаңыз Деректерді сақтау солдан бет Бетті таңдаңыз тақтасы.
  2. Ішінде мақсатталған аймағында ашылмалы тізімнен мақсатты түрін таңдаңыз.

Кеңейтілген оқиғалар сеансының деректерді сақтау беті SQL Server Менеджмент студиясы.

(1) оқиға_файлының нысанасы

event_file нысанасы деректерді .xel кеңейтімі бар диск файлдарына сақтайды:

  1. таңдау оқиға_файлы мақсатты түрдің ашылмалы тізімінен.
  2. Файл жолын көрсетіңіз, мысалы, C:\temp\YourSession_Target.xel.
  3. Максималды файл өлшемі мен файлдар санын орнату арқылы дискілік кеңістікті басқару үшін жылжыту опцияларын конфигурациялаңыз.
  4. Мақсат сеанс тоқтағанша немесе сақтау шегіне жеткенше оқиғаларды үздіксіз жазады.

SSMS ішіндегі сеанс мақсатын event_file етіп орнатыңыз

(2) ring_buffer нысанасы

ring_buffer нысанасы оқиғаларды дискіге енгізу/шығарусыз жылдам қатынау үшін жадта сақтайды:

  1. таңдау қоңырау_буфері мақсатты түрі ретінде.
  2. Буфер үшін жадтың максималды бөлінуін конфигурациялаңыз.
  3. Ескі оқиғалар буфер толтырылған кезде жойылатынын түсініңіз, бұл оны соңғы әрекетті бақылау үшін қолайлы етеді.

Кеңейтілген оқиғалар сеансы үшін мақсатты ring_buffer мәніне орнатыңыз SQL Server Менеджмент студиясы.

(3) оқиға_санағышының нысанасы

event_counter нысанасы егжей-тегжейлі деректерді сақтамай, оқиғалардың қайталануын жай ғана санайды. Бұл сізге тек жиілік туралы ақпарат қажет болған кезде минималды шығынды қамтамасыз етеді.

Кеңейтілген оқиғалар сеансы үшін мақсатты event_counter мәніне орнатыңыз SQL Server Менеджмент студиясы.

(4) нысана гистограммасы

Гистограмма оқиғаларды көрсетілген өріс мәні бойынша топтастырады, бұл таралу статистикасын жасайды. Бұл жалпы заңдылықтарды немесе жоғары жиілікті мәндерді анықтау үшін пайдалы.

Кеңейтілген оқиғалар сеансы үшін мақсатты гистограммаға орнатыңыз SQL Server Менеджмент студиясы.

(5) жұп_сәйкестендіру нысанасы

pair_matching нысанасы құлыпты алу және босату сияқты байланысты оқиғаларды өзара байланыстырады. Бұл жұптасқан операцияларды және олардың уақыттық қатынастарын талдауға мүмкіндік береді.

SSMS жүйесінде сеанс мақсатын pair_matching мәніне орнатыңыз

4.3.4 Қосымша параметрлер

The озат бет сеанс деңгейіндегі конфигурация опцияларын ұсынады:

  1. Таңдаңыз озат солдан бет Бетті таңдаңыз тақтасы.
  2. конфигурациялау Оқиғаны сақтау режимі жад қысымында оқиғалардың қалай өңделетінін бақылау үшін.
  3. жиынтық Жіберудің максималды кешігуі нақты уақыттағы өңдеуді жүйе өнімділігімен теңестіру.
  4. конфигурациялау Максималды жад өлшемі және Оқиғаның максималды өлшемі бақылау талаптарыңызға негізделеді.
  5. таңдау Жадты бөлу режимі жалғыз немесе көп CPU орталары үшін оңтайландыру үшін.

Сеанстың қосымша беті SQL Server Менеджмент студиясы.

4.4 Оқиға сүзгілерін конфигурациялау (предикаттар)

Арнайы шарттар негізінде оқиғаларды сүзу арқылы предикаттар деректер көлемін азайтады. Сүзгілерді конфигурациялау үшін:

  1. Үстінде Іс-шаралар бетінде сүзгіңіз келетін оқиғаны таңдаңыз, мысалы, “sql_statement_completed”.
  2. басыңыз конфигурациялау оқиға конфигурациясының диалогтық терезесін ашу үшін.
    Кеңейтілген оқиғалар сеансының оқиғасын конфигурациялаңыз SQL Server Менеджмент студиясы.
  3. Таңдаңыз Сүзгі (предикат) қойындысы.
  4. Ішінде дала ашылмалы тізімнен ұзақтық сияқты сүзгілеу үшін өрісті таңдаңыз.
  5. Таңдаңыз Оператор, мысалы, “>”.
  6. Сүзгіні енгізіңіз құн, мысалы, 1000000 (1 секунд).
  7. Қажет болса, қосымша шарттарды қосыңыз.

Оқиға үшін сүзгілерді (предикаттарды) конфигурациялаңыз.

4.5 Әрекеттер мен оқиға өрістерін таңдау

Әрбір оқиға үшін жиналатын деректерді таңдауға болады:

  1. Үстінде Іс-шаралар бетінде деректерді таңдағыңыз келетін оқиғаны таңдаңыз, мысалы, “sql_statement_completed”.
  2. басыңыз конфигурациялау оқиға конфигурациясының диалогтық терезесін ашу үшін.
  3. Таңдаңыз Ғаламдық өрістер (әрекеттер) қойындысы.
  4. database_name немесе client_app_name сияқты қосымша ақпаратты қосу үшін әрекеттерді таңдаңыз.
    Оқиғаның әрекеттерін конфигурациялаңыз.
  5. Қараңыз Оқиға өрістері қай өрістердің автоматты түрде түсірілетінін көру үшін бөлім.
  6. Деректер көлемін азайту үшін қажет емес өрістерді тазалаңыз.
    Оқиғаның өрістерін конфигурациялаңыз.

4.6 Сессияларды бастау және басқару

Сеансты конфигурациялағаннан кейін, оны іске қосып, оның жұмысын бақылай аласыз:

  1. басыңыз OK сеанс жасау үшін.
  2. Object Explorer бағдарламасында кеңейтіңіз Отырыстар жаңа сеансыңызды көру үшін қалтаға өтіңіз.
  3. Сеанс атын тінтуірдің оң жақ түймешігімен басып, таңдаңыз Сеансты бастау оқиғаларды түсіруді бастау үшін.
    Кеңейтілген іс-шаралар сессиясын бастаңыз SQL Server Менеджмент студиясы.
  4. Тікелей деректерді көру үшін сеансты тінтуірдің оң жақ түймешігімен басып, таңдаңыз Тікелей деректерді көру.
    Кеңейтілген оқиғалар сеансының тікелей деректерін қараңыз SQL Server Менеджмент студиясы.
  5. Сеансты тінтуірдің оң жақ түймешігімен басып, таңдау арқылы тоқтатыңыз Сеансты тоқтату.

5. T-SQL көмегімен кеңейтілген оқиға сеанстарын құру

5.1 ОҚИҒА СЕССИЯСЫН ЖАСАУ Синтаксисі

T-SQL көмегімен кеңейтілген оқиға сеанстарын жасау дәл басқаруды қамтамасыз етеді және автоматтандырылған орналастыру үшін сценарийлерді қосады. CREATE EVENT SESSION мәлімдемесі белгілі бір синтаксистік құрылымға сәйкес келеді.

Негізгі синтаксис сеанс атауын, әрбір оқиға үшін ADD EVENT сөйлемдерін, сақтау орындары үшін ADD TARGET сөйлемдерін және сеанс конфигурациясы үшін қосымша WITH сөйлемдерін қамтиды.

5.2 Негізгі оқиға сеансын құру

Негізгі сессия нақты оқиғаларды бақылайды және нәтижелерді нысанаға жазады. Міне, негізгі компоненттерді қалай құру керек.

5.2.1 Сеанс атауы мен опцияларын анықтау

Сипаттамалық атаумен сеансты жасаудан бастаңыз:

CREATE EVENT SESSION [SampleSession] ON SERVER

ON SERVER сөйлемі дерекқор өзгерістерінде сақталатын сервер ауқымды сеанс жасайды. Azure SQL дерекқоры үшін дерекқор ауқымындағы сеанстар үшін ON DATABASE пайдаланыңыз.

5.2.2 Оқиғаларды ADD EVENT көмегімен қосу

Оқиғаларды ҚОСУ сөйлемін пайдаланып түсіру үшін қосыңыз:

CREATE EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_statement_completed

Бұл барлық аяқталған SQL мәлімдемелерін түсіреді. Қосымша ҚОСУ ОҚИҒА тармақтарын қосу арқылы бірнеше оқиғаларды қосуға болады.

5.2.3 Оқиға әрекеттерін конфигурациялау

Әрекеттер әрбір оқиға үшін қосымша контекст жинайды. Оқиға атауынан кейін жақша ішіндегі әрекеттерді қосыңыз:

CREATE EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text, sqlserver.database_name, sqlserver.username)
)

Бұл мысал әрбір аяқталған мәлімдеме үшін SQL мәтінін, дерекқор атын және пайдаланушы атын түсіреді.

5.2.4 Оқиға предикаттарын орнату (WHERE тармағы)

Деректер көлемін азайту үшін сүзгі оқиғаларын болжайды. Оқиға анықтамасында WHERE сөйлемін пайдаланыңыз:

CREATE EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text)
    WHERE ([package0].[greater_than_uint64]([duration],(5000000)))
)

Бұл ұзақтығы 5 секундтан (5 000 000 микросекунд) асатын мәлімдемелерді сүзеді.

5.3 Оқиға мақсаттарын қосу

Нысаналар оқиға деректерінің қайда сақталатынын және оның қалай өңделетінін анықтайды.

5.3.1 ТАРҒАТТЫ ҚОСУ Синтаксисі

Барлық оқиғалар анықталғаннан кейін ADD TARGET сөйлемін пайдаланып нысандарды қосыңыз:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\SampleSession.xel'
)

package0 префиксі мақсатты файлдың негізгі пакеттен келетінін көрсетеді.

5.3.2 Мақсатты параметрлерді конфигурациялау

Әрбір мақсатты түр белгілі бір параметрлерді қабылдайды. Event_file үшін filename, max_file_size және max_rollover_files параметрлерін конфигурациялаңыз:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\SampleSession.xel',
        max_file_size=(50),
        max_rollover_files=(5)
)

Бұл конфигурация әрқайсысы 50 МБ-қа дейінгі файлдарды жасайды, айналдыру арқылы 5 файлға дейін сақтайды.

5.4 Сеанс опциялары мен параметрлері

WITH сөйлемі мінез-құлық пен ресурстарды пайдалануды басқаратын сеанс деңгейіндегі опцияларды конфигурациялайды.

5.4.1 MAX_MEMORY және EVENT_RETENTION_MODE

Жадты бөлуді және қысыммен оқиғаларды өңдеуді басқару:

WITH (
    MAX_MEMORY=4096 KB,
    EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS
)

EVENT_RETENTION_MODE опцияларына жадты минималды пайдалану үшін ALLOW_SINGLE_EVENT_LOSS, орташа шығындар үшін ALLOW_MULTIPLE_EVENT_LOSS және өнімділікке әсер ету мүмкіндігінің есебінен деректерді толық сақтау үшін NO_EVENT_LOSS кіреді.

5.4.2 MAX_DISPATCH_LATENCY

Оқиғалар нысанаға жазылмас бұрын буферлерде қалуы мүмкін ең көп уақытты орнатыңыз:

WITH (
    MAX_DISPATCH_LATENCY=30 SECONDS
)

Төмен мәндер енгізу/шығару операцияларының көбеюі есебінен нақты уақыт режимінде көбірек деректер береді.

5.4.3 MEMORY_PARTITION_MODE

Аппараттық құрал конфигурациясы үшін жадты бөлуді оңтайландырыңыз:

WITH (
    MEMORY_PARTITION_MODE=PER_CPU
)

Опциялар бір бөлім үшін NONE, NUMA жүйелері үшін PER_NODE және көп процессорлы жүйелердегі максималды параллельдік үшін PER_CPU қамтиды.

5.5 Сеанстарды бастау, тоқтату және өзгерту

ALTER EVENT SESSION мәлімдемелері арқылы сеанс күйін және конфигурацияны басқарыңыз.

5.5.1 Бастау/Тоқтату үшін ОҚИҒА СЕССИЯСЫН ӨЗГЕРТУ

Жасалғаннан кейін сеансты бастаңыз:

ALTER EVENT SESSION [SampleSession] ON SERVER STATE = START;

Жұмыс істеп тұрған сеансты тоқтату:

ALTER EVENT SESSION [SampleSession] ON SERVER STATE = STOP;

5.5.2 Бар сеанстарды өзгерту

Тоқтатылған кезде сеанс конфигурациясын өзгертіңіз. Оқиғаларды қосу:

ALTER EVENT SESSION [SampleSession] ON SERVER
ADD EVENT sqlserver.sql_batch_completed;

Оқиғаларды жою:

ALTER EVENT SESSION [SampleSession] ON SERVER
DROP EVENT sqlserver.sql_statement_completed;

5.5.3 Оқиға сеанстарын тоқтату

DROP EVENT SESSION көмегімен сеансты толығымен жойыңыз:

DROP EVENT SESSION [SampleSession] ON SERVER;

Сеансты тастамас бұрын тоқтатылуы керек.

6. Іс-шара мақсаттарымен егжей-тегжейлі жұмыс істеу

6.1 оқиға_файлы Мақсатты конфигурациялау

event_file нысанасы икемді конфигурация опциялары бар оқиға деректерін тұрақты сақтауды қамтамасыз етеді.

6.1.1 Файл жолы және атау конвенциялары

Оқиға файлдарының толық жолын және файл атауын көрсетіңіз:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\MySession.xel'
)

Кеңейтілген оқиғалар журналының файлдары үшін .xel кеңейтімін пайдаланыңыз. қамтамасыз етіңіз SQL Server қызмет тіркелгісі көрсетілген каталогқа жазу рұқсаттары бар.

6.1.2 Файлды ауыстыру және өлшемді басқару

Дискілік кеңістікті басқару үшін файлды автоматты түрде ауыстыруды теңшеңіз:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\MySession.xel',
        max_file_size=(50),
        max_rollover_files=(10)
)

Файл 50 МБ-қа жеткенде, SQL Server Кеңейтілген оқиғалар ұлғайтылған жұрнағы бар жаңа файлды жасайды. 10 файлға жеткеннен кейін ең ескі файл қайта жазылады.

6.1.3 Оқиға файлының деректерін оқу

sys.fn_xe_file_target_read_file функциясын пайдаланып, оқиға файлының деректерін сұрау:

SELECT
    event_data,
    file_name,
    file_offset
FROM sys.fn_xe_file_target_read_file(
    'C:\XEvents\MySession*.xel',
    NULL, NULL, NULL
);

Қойылмалы таңба үлгісі сеанспен байланысты барлық файлдарды оқиды.

6.2 ring_buffer мақсатты пайдалануы

ring_buffer нысанасы соңғы әрекеттерге жылдам қол жеткізу үшін оқиғаларды жадта сақтайды.

6.2.1 Жадқа негізделген оқиғаларды сақтау

Жадқа негізделген сақтау үшін ring_buffer конфигурациялау:

ADD TARGET package0.ring_buffer

Оқиғалар тек сеанс белсенді және болғанда ғана қолжетімді болып қалады SQL Server жұмыс істеп тұр. Сеанс тоқтаған кезде немесе сервер қайта іске қосылғанда деректер жоғалады.

6.2.2 Буфер өлшемі және конфигурациясы

Сақина буфері үшін жадты бөлуді басқару:

ADD TARGET package0.ring_buffer(
    SET max_memory=(4096)
)

Жадты КБ-де көрсетіңіз. Буфер толтырылған кезде, FIFO тәсілі арқылы ескі оқиғалар жойылады.

6.2.3 Сақина буферінің деректерін сұрау

DMV арқылы сақина буферінің деректеріне қол жеткізіңіз:

SELECT
    CAST(target_data AS XML) AS TargetData
FROM sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
    ON s.address = t.event_session_address
WHERE s.name = 'YourSessionName'
    AND t.target_name = 'ring_buffer';

target_data құрамында XML форматындағы оқиға туралы ақпарат бар.

6.3 оқиға_санауышы нысанасы

event_counter нысанасы егжей-тегжейлі деректерді сақтаусыз қарапайым санауды қамтамасыз етеді:

ADD TARGET package0.event_counter

Бұл нысана оқиғалардың жиілігін минималды шығынмен бақылайды, бұл тек санау маңызды болатын жоғары көлемді мониторинг үшін пайдалы.

6.4 гистограмма нысанасы

Гистограмма оқиғаларды өріс мәндері бойынша топтастырады:

ADD TARGET package0.histogram(
    SET filtering_event_name=N'sqlserver.sql_statement_completed',
        source_type=0,
        source=N'database_name'
)

Бұл конфигурация дерекқорлар бойынша оқиғалардың таралуын көрсететін гистограмма жасайды.

6.5 pair_matching нысанасы

pair_matching нысанасы құлыптауды сатып алулар мен шығарылымдар сияқты байланысты оқиғаларды өзара байланыстырады:

ADD TARGET package0.pair_matching(
    SET begin_event=N'sqlserver.lock_acquired',
        end_event=N'sqlserver.lock_released',
        begin_matching_columns=N'resource_type',
        end_matching_columns=N'resource_type'
)

Бұл жұптастырылған операцияларды және олардың ұзақтығын талдауға мүмкіндік береді.

7. Кеңейтілген оқиғалар деректерін қарау және талдау

7.1 Тікелей деректерді көру үшін SSMS пайдалану

SQL Server Management Studio нақты уақытта кеңейтілген оқиғалар деректерін қарау үшін графикалық интерфейсті ұсынады:

  1. Object Explorer бағдарламасында кеңейтіңіз Басқару -> Кеңейтілген іс-шаралар -> Отырыстар.
  2. Белсенді сеансты тінтуірдің оң жақ түймешігімен басыңыз.
  3. таңдау Тікелей деректерді көру тікелей деректерді қарау құралын ашу үшін.
    Кеңейтілген оқиғалар сеансының тікелей деректерін қараңыз SQL Server Менеджмент студиясы.
  4. Оқиғалар орын алғанда торда пайда болады.
  5. Мәліметтер аумағында егжей-тегжейлі өріс мәндерін көру үшін жеке оқиғаларды басыңыз.
    Оқиғалардың тікелей деректерін, соның ішінде оқиға мәліметтерін қараңыз.
  6. Арнайы оқиға түрлеріне немесе өріс мәндеріне назар аудару үшін құралдар тақтасының сүзгілерін пайдаланыңыз.

7.2 T-SQL көмегімен оқиға файлының деректерін сұрау

T-SQL сұраулары түсірілген оқиға деректерінің икемді талдауын қамтамасыз етеді.

7.2.1 sys.fn_xe_file_target_read_file функциясы

Осы жүйе функциясын пайдаланып оқиға файлының деректерін оқыңыз:

SELECT
    object_name AS EventName,
    CAST(event_data AS XML) AS EventData,
    file_name,
    file_offset,
    timestamp_utc
FROM sys.fn_xe_file_target_read_file(
    'C:\XEvents\MySession*.xel',
    NULL, NULL, NULL
);

Функция XML пішімделген мәліметтері бар оқиғаға бір жолды қайтарады.

7.2.2 XML оқиға деректерін талдау

XML оқиға деректерінен арнайы мәндерді шығарып алыңыз:

SELECT
    event_data.value('(event/@name)[1]', 'VARCHAR(50)') AS EventName,
    event_data.value('(event/@timestamp)[1]', 'DATETIME2') AS Timestamp,
    event_data.value('(event/data[@name="duration"]/value)[1]', 'BIGINT') AS Duration,
    event_data.value('(event/data[@name="statement"]/value)[1]', 'VARCHAR(MAX)') AS Statement
FROM (
    SELECT CAST(event_data AS XML) AS event_data
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\MySession*.xel',
        NULL, NULL, NULL
    )
) AS EventData;

XQuery өрнектері XML құрылымынан жеке өріс мәндерін шығарады.

7.2.3 Оқиға деректерін кестелерге түрлендіру

Оқиға деректерінен құрылымдық нәтижелер жиынын жасаңыз:

WITH EventData AS (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\MySession*.xel',
        NULL, NULL, NULL
    )
)
SELECT
    EventXML.value('(event/@name)[1]', 'VARCHAR(100)') AS EventName,
    EventXML.value('(event/data[@name="cpu_time"]/value)[1]', 'BIGINT') AS CPUTime,
    EventXML.value('(event/data[@name="physical_reads"]/value)[1]', 'BIGINT') AS PhysicalReads,
    EventXML.value('(event/action[@name="sql_text"]/value)[1]', 'VARCHAR(MAX)') AS SQLText,
    EventXML.value('(event/action[@name="database_name"]/value)[1]', 'VARCHAR(128)') AS DatabaseName
FROM EventData;

7.3 Сақина буферінің деректерін сұрау

ring_buffer нысаналарынан деректерді шығарып алыңыз:

SELECT
    n.value('(@name)[1]', 'VARCHAR(50)') AS EventName,
    n.value('(@timestamp)[1]', 'DATETIME2') AS Timestamp,
    n.value('(data[@name="duration"]/value)[1]', 'BIGINT') AS Duration,
    n.value('(action[@name="sql_text"]/value)[1]', 'VARCHAR(MAX)') AS SQLText
FROM (
    SELECT CAST(target_data AS XML) AS TargetData
    FROM sys.dm_xe_session_targets AS t
    JOIN sys.dm_xe_sessions AS s
        ON s.address = t.event_session_address
    WHERE s.name = 'YourSessionName'
        AND t.target_name = 'ring_buffer'
) AS Data
CROSS APPLY TargetData.nodes('//event') AS q(n);

7.4 Кеңейтілген оқиғаларға арналған жүйелік көріністер

SQL Server Кеңейтілген оқиға сеанстарын басқару және бақылау үшін бірнеше DMV және каталог көріністерін қамтамасыз етеді.

7.4.1 sys.server_event_sessions

Серверде сақталған сеанс анықтамаларын қараңыз:

SELECT
    name,
    event_retention_mode_desc,
    max_dispatch_latency,
    max_memory,
    max_event_size,
    memory_partition_mode_desc
FROM sys.server_event_sessions;

Бұл каталог көрінісі барлық анықталған сеанстар үшін конфигурация мәліметтерін көрсетеді.

7.4.2 sys.dm_xe_sessions

Ағымдағы белсенді сеанстарды көру:

SELECT
    name,
    create_time,
    total_regular_buffers,
    regular_buffer_size,
    total_large_buffers,
    large_buffer_size
FROM sys.dm_xe_sessions;

Бұл DMV белсенді Кеңейтілген Оқиға сеанстары туралы орындалу уақыты туралы ақпаратты береді.

7.4.3 sys.dm_xe_session_targets

Белсенді сеанстармен байланысты мақсаттарды қарау:

SELECT
    s.name AS SessionName,
    t.target_name,
    t.execution_count,
    t.execution_duration_ms
FROM sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
    ON s.address = t.event_session_address;

7.4.4 Басқа пайдалы DMVs

Қосымша көріністер сеанс туралы толық ақпаратты береді:

  • sys.dm_xe_session_events: Белсенді сеанстардағы оқиғаларды тізімдейді
  • sys.dm_xe_session_event_actions: сеанс оқиғалары үшін конфигурацияланған әрекеттерді көрсетеді
  • sys.dm_xe_objects: Барлық қолжетімді оқиғаларды, әрекеттерді және мақсаттарды каталогтайды
  • sys.dm_xe_object_columns: әрбір оқиға түрі үшін қол жетімді мәліметтер өрістері
  • sys.dm_xe_packages: Барлық кеңейтілген оқиға бумаларын тізімдейді

8. Практикалық қолдану жағдайлары мен мысалдары

8.1 SQL мәлімдемесінің орындалуын бақылау

SQL мәлімдемесінің орындалуын қадағалау сұрау үлгілері мен өнімділік сипаттамалары туралы түсінік береді.

8.1.1 sql_statement_completed оқиғаларын бақылау

Аяқталған SQL мәлімдемелерін бақылау үшін сеанс жасаңыз:

CREATE EVENT SESSION [QueryMonitoring] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(
        sqlserver.sql_text,
        sqlserver.database_name,
        sqlserver.client_hostname,
        sqlserver.username
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\QueryMonitoring.xel',
        max_file_size=(100),
        max_rollover_files=(5)
)
WITH (
    MAX_MEMORY=4096 KB,
    EVENT_RETENTION_MODE=ALLOW_SINGLE_EVENT_LOSS,
    MAX_DISPATCH_LATENCY=30 SECONDS,
    STARTUP_STATE=OFF
);

ALTER EVENT SESSION [QueryMonitoring] ON SERVER STATE = START;

8.1.2 Дерекқор немесе қолданба бойынша сүзу

Предикаттарды қолданатын арнайы дерекқорларға немесе қолданбаларға назар аударыңыз:

CREATE EVENT SESSION [AppSpecificMonitoring] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text, sqlserver.client_app_name)
    WHERE (
        [sqlserver].[database_name] = N'YourDatabase'
        AND [sqlserver].[client_app_name] LIKE N'YourApplication%'
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\AppMonitoring.xel'
);

8.2 Тұйықталу туралы ақпаратты алу

Тұйықталуды талдау қайшылықты транзакциялар туралы толық ақпаратты алуды талап етеді.

8.2.1 xml_deadlock_report оқиғасы

Толық тұйықталған графиктерді түсіру үшін сеанс жасаңыз:

CREATE EVENT SESSION [DeadlockMonitoring] ON SERVER
ADD EVENT sqlserver.xml_deadlock_report(
    ACTION(
        sqlserver.database_name,
        sqlserver.sql_text
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\Deadlocks.xel'
)
WITH (STARTUP_STATE=ON);

ALTER EVENT SESSION [DeadlockMonitoring] ON SERVER STATE = START;

8.2.2 Тұйық графиктерді талдау

Тұйықталу туралы ақпаратты шығарып алу және талдау:

SELECT
    EventXML.value('(event/@timestamp)[1]', 'DATETIME2') AS DeadlockTime,
    EventXML.query('.') AS DeadlockGraph
FROM (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\Deadlocks*.xel',
        NULL, NULL, NULL
    )
) AS EventData
WHERE EventXML.value('(event/@name)[1]', 'VARCHAR(50)') = 'xml_deadlock_report';

Тұйықталу графигі процестер, ресурстар және құрбанды таңдау туралы мәліметтерді қамтиды.

8.3 Сұрау өнімділігі мәселелерін бақылау

Ұзақтық және ресурстарды тұтыну көрсеткіштерін пайдаланып нашар орындалатын сұрауларды анықтаңыз.

8.3.1 Ұзақ орындалатын сұрауды анықтау

Арнайы ұзақтық шектерінен асатын сұрауларды түсіру:

CREATE EVENT SESSION [LongRunningQueries] ON SERVER
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(
        sqlserver.sql_text,
        sqlserver.database_name,
        sqlserver.plan_handle
    )
    WHERE ([duration] > 5000000)  -- 5 seconds in microseconds
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\LongQueries.xel'
);

8.3.2 Орындалу жоспарын талдау

Өнімділікті талдау үшін сұрау жоспарларын түсіріңіз:

CREATE EVENT SESSION [QueryPlans] ON SERVER
ADD EVENT sqlserver.query_post_execution_showplan(
    ACTION(
        sqlserver.sql_text,
        sqlserver.database_name
    )
    WHERE ([duration] > 10000000)  -- 10 seconds
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\QueryPlans.xel',
    max_file_size=(200)
);

8.4 Кіру және қауіпсіздік оқиғаларын бақылау

Қауіпсіздік аудиті үшін аутентификация және авторизация әрекеттерін қадағалаңыз.

8.4.1 Жүйеге кірудің сәтті және сәтсіздігін бақылау

Сәтті және сәтсіз кіру әрекеттерін бақылаңыз:

CREATE EVENT SESSION [LoginMonitoring] ON SERVER
ADD EVENT sqlserver.login(
    ACTION(
        sqlserver.client_hostname,
        sqlserver.client_app_name
    )
),
ADD EVENT sqlserver.login_failed(
    ACTION(
        sqlserver.client_hostname
    )
)
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\Logins.xel'
)
WITH (STARTUP_STATE=ON);

8.4.2 Рұқсатты өзгертулер

Қауіпсіздік рұқсатының өзгертулерін қадағалау:

CREATE EVENT SESSION [SecurityChanges] ON SERVER
ADD EVENT sqlserver.server_principal_management_event,
ADD EVENT sqlserver.database_principal_management_event,
ADD EVENT sqlserver.database_permission_change_event
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\SecurityAudit.xel'
);

8.5 Деректер қоры деңгейіндегі мониторинг

Дерекқорға тән әрекеттерді және күй өзгерістерін бақылаңыз.

8.5.1 Оқиғалардың сақтық көшірмесін жасау және қалпына келтіру

Сақтық көшірме жасау және қалпына келтіру операцияларын қадағалау:

CREATE EVENT SESSION [BackupMonitoring] ON SERVER
ADD EVENT sqlserver.backup_restore_progress_trace,
ADD EVENT sqlserver.databases_backup_restore_event
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\BackupRestore.xel'
);

8.5.2 Дерекқор күйінің өзгерістері

Дерекқор күйінің ауысуын бақылау:

CREATE EVENT SESSION [DatabaseStateChanges] ON SERVER
ADD EVENT sqlserver.database_started,
ADD EVENT sqlserver.database_stopped
ADD TARGET package0.ring_buffer;

8.6 Деректер қорының бүлінуін және тұтастығына қатысты мәселелерді анықтау

SQL Server Кеңейтілген оқиғалар ықтимал дерекқордың бүлінуін анықтау үшін алдын ала ескерту мүмкіндіктерін қамтамасыз етеді, мәселе көтерілмес бұрын белсенді араласуға мүмкіндік береді.

8.6.1 Сыбайлас жемқорлықты анықтаудың негізгі оқиғалары

Бірнеше оқиғалар ықтимал бүліну немесе енгізу/шығару мәселелерін көрсетеді.

8.6.1.1 error_reported Маңызды қателер үшін оқиға

error_reported оқиғасы барлығын жазады SQL Server қателер, соның ішінде сыбайлас жемқорлыққа байланысты қате нөмірлері:

ADD EVENT sqlserver.error_reported(
    WHERE (
        [severity] >= (20)
        OR [error_number] IN (823, 824, 825, 832, 855, 856)
    )
)

823 қатесі енгізу/шығару қателерін, 824 логикалық сәйкестік қателерін және 825 оқу-қайталау әрекетінің сәттілігін аппараттық құралдар мәселелерін көрсетуі мүмкін есептерді көрсетеді.

8.6.1.2 database_suspect_data_page Оқиға

Бұл оқиға қашан басталады SQL Server күдікті бетке тап болады:

ADD EVENT sqlserver.database_suspect_data_page

Күдікті беттер ықтимал бүлінуді көрсетеді және msdb.dbo.suspect_pages кестесінде жазылады.

8.6.1.3 errorlog_written оқиғасы

ішіне жазылған жазбаларды түсіріңіз SQL Server қателер журналы:

ADD EVENT sqlserver.errorlog_written(
    WHERE ([severity] >= (16))
)

8.6.2 Сыбайлас жемқорлық мониторингі сессиясын құру

Сыбайлас жемқорлықты анықтау және мониторингі бойынша кешенді сессияны құру.

8.6.2.1 Сыбайлас жемқорлық қателерінің нөмірлерін сүзу (823, 824, 825)

Сыбайлас жемқорлық көрсеткіштеріне бағытталған мақсатты сессия құрыңыз:

CREATE EVENT SESSION [CorruptionDetection] ON SERVER
ADD EVENT sqlserver.error_reported(
    ACTION(
        sqlserver.database_name,
        sqlserver.sql_text
    )
    WHERE (
        [error_number] IN (823, 824, 825, 832, 855, 856)
        OR [severity] >= (20)
    )
),
ADD EVENT sqlserver.database_suspect_data_page(
    ACTION(
        sqlserver.database_name
    )
)
8.6.2.2 Сәйкес ауырлық деңгейлерін орнату

Сыбайлас жемқорлықты көрсетуі мүмкін жоғары дәрежелі қателерді қосыңыз:

WHERE (
    [severity] >= (20)
    OR [error_number] IN (823, 824, 825)
)

20 және одан жоғары маңыздылық жиі сыбайлас жемқорлыққа қатысты жүйелік деңгейдегі мәселелерді көрсетеді.

8.6.2.3 Ескертулер үшін оқиға файлының нысанасын конфигурациялау

Сыбайлас жемқорлық оқиғаларын талдау және ескерту үшін сақтау:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\CorruptionMonitoring.xel',
        max_file_size=(50),
        max_rollover_files=(10)
)
WITH (
    STARTUP_STATE=ON,
    MAX_DISPATCH_LATENCY=5 SECONDS
);

ALTER EVENT SESSION [CorruptionDetection] ON SERVER STATE = START;

8.6.3 Сыбайлас жемқорлық оқиғалары деректерін талдау

Түсірілген деректерден сыбайлас жемқорлыққа қатысты оқиғаларды шығарып алыңыз және түсіндіріңіз.

8.6.3.1 Күдікті беттерді анықтау

database_suspect_data_page оқиғаларына сұрау:

SELECT
    EventXML.value('(event/@timestamp)[1]', 'DATETIME2') AS EventTime,
    EventXML.value('(event/data[@name="database_id"]/value)[1]', 'INT') AS DatabaseID,
    EventXML.value('(event/data[@name="file_id"]/value)[1]', 'INT') AS FileID,
    EventXML.value('(event/data[@name="page_id"]/value)[1]', 'BIGINT') AS PageID,
    EventXML.value('(event/action[@name="database_name"]/value)[1]', 'VARCHAR(128)') AS DatabaseName
FROM (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\CorruptionMonitoring*.xel',
        NULL, NULL, NULL
    )
) AS EventData
WHERE EventXML.value('(event/@name)[1]', 'VARCHAR(50)') = 'database_suspect_data_page';
8.6.3.2 Қате туралы мәліметтер мен мәтінмәнді шығару

Сыбайлас жемқорлық үлгілері үшін error_reported оқиғаларын талдау:

SELECT
    EventXML.value('(event/@timestamp)[1]', 'DATETIME2') AS ErrorTime,
    EventXML.value('(event/data[@name="error_number"]/value)[1]', 'INT') AS ErrorNumber,
    EventXML.value('(event/data[@name="severity"]/value)[1]', 'INT') AS Severity,
    EventXML.value('(event/data[@name="message"]/value)[1]', 'VARCHAR(MAX)') AS ErrorMessage,
    EventXML.value('(event/action[@name="database_name"]/value)[1]', 'VARCHAR(128)') AS DatabaseName,
    EventXML.value('(event/action[@name="sql_text"]/value)[1]', 'VARCHAR(MAX)') AS SQLText
FROM (
    SELECT CAST(event_data AS XML) AS EventXML
    FROM sys.fn_xe_file_target_read_file(
        'C:\XEvents\CorruptionMonitoring*.xel',
        NULL, NULL, NULL
    )
) AS EventData
WHERE EventXML.value('(event/@name)[1]', 'VARCHAR(50)') = 'error_reported'
    AND EventXML.value('(event/data[@name="error_number"]/value)[1]', 'INT') IN (823, 824, 825);

8.6.4 DBCC CHECKDB-мен интеграция

Нұсқаулық үшін Кеңейтілген оқиғалар деректерін пайдаланыңыз DBCC CHECKDB орындау.

8.6.4.1 Оқиғаларға негізделген DBCC CHECKDB іске қосу

Сыбайлас жемқорлық оқиғалары анықталған кезде, жан-жақты тексеру үшін DBCC CHECKDB орындаңыз:

-- After detecting corruption events, run DBCC CHECKDB
DBCC CHECKDB ('YourDatabaseName') WITH NO_INFOMSGS, ALL_ERRORMSGS;

Кеңейтілген оқиғалар ерте ескертуді қамтамасыз етеді, ал DBCC CHECKDB мұқият тексеруді орындайды.

8.6.4.2 Сыбайлас жемқорлыққа қарсы әрекет етудің автоматтандырылған жұмыс процестері

Оқиға файлын бақылау арқылы автоматтандырылған жауаптарды енгізіңіз:

  1. конфигурациялау SQL Server Сыбайлас жемқорлықты бақылау оқиғасының файлын мерзімді түрде сұрау үшін агент жұмысы.
  2. Сыбайлас жемқорлық оқиғалары табылған кезде, зардап шеккен дерекқорда DBCC CHECKDB орындаңыз.
  3. Оқиға мәліметтерімен және DBCC CHECKDB нәтижелерімен DBA-ға электрондық пошта ескертулерін жіберіңіз.
  4. Тренд талдауы үшін нәтижелерді орталықтандырылған мониторинг кестесіне тіркеңіз.
8.6.4.3 Проактивті бақылау мен өнімділікті теңестіру

Extended Events DBCC CHECKDB жиі орындалуымен салыстырғанда төмен шығындарды анықтауды ұсынады:

  • Нақты уақыттағы сыбайлас жемқорлықты анықтау үшін кеңейтілген оқиғаларды үздіксіз іске қосыңыз
  • DBCC CHECKDB әрекетін сыбайлас жемқорлық көрсеткіштері пайда болған кезде ғана орындаңыз
  • Техникалық қызмет көрсету терезелері кезінде тұрақты DBCC CHECKDB кестесін жасаңыз
  • Қай дерекқорлар дереу назар аударуды қажет ететінін анықтау үшін Кеңейтілген оқиғаларды пайдаланыңыз

Бұл тәсіл тұрақты тұтастық тексерулерінің маңызды ресурстарды тұтынуынсыз белсенді бақылауды қамтамасыз етеді.

8.6.4.4 Бүлінген дерекқорды жөндеу

Дерекқорда бүлінулер анықталса, DBCC CHECKDB кішігірім ақауларды түзетуді пайдалануға болады. Егер ол сәтсіз болса, үшінші тарапты қолданып көруге болады SQL дерекқорды қалпына келтіру құралы, бұл әдетте қатты бүлінген дерекқорларда жоғары қалпына келтіру жылдамдығын ұсынады.

9. Сервер ауқымы және дерекқор ауқымы бар кеңейтілген оқиғалар

9.1 Сервер ауқымындағы оқиға сеанстары

Сервер ауқымындағы сеанстар бүкіл әрекетті бақылайды SQL Server мысал. Бұл сеанстар ON SERVER сөйлемімен жасалады және негізгі дерекқорда сақталады.

CREATE EVENT SESSION [ServerWideMonitoring] ON SERVER
ADD EVENT sqlserver.sql_statement_completed
ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\ServerWide.xel'
);

Сервер ауқымындағы сеанстар барлық дерекқорлардан оқиғаларды түсіреді және дана деңгейіндегі бақылауға жарамды.

9.2 Деректер қорының ауқымды оқиға сеанстары (Azure SQL дерекқоры)

Дерекқор ауқымындағы сеанстар бір дерекқормен шектеледі және негізінен сервер деңгейіндегі қатынас шектелген Azure SQL дерекқорында пайдаланылады:

CREATE EVENT SESSION [DatabaseSpecificMonitoring] ON DATABASE
ADD EVENT sqlserver.sql_statement_completed
ADD TARGET package0.event_file(
    SET filename=N'DatabaseMonitoring.xel'
);

Azure SQL дерекқорында оқиға файлдары жергілікті файлдық жүйелерден гөрі Azure Blob қоймасында сақталады.

9.3 Айырмашылықтар және қолдану жағдайлары

Сервер ауқымындағы сеанстар барлық дерекқорлар бойынша жан-жақты бақылауды қамтамасыз етеді, бірақ жоғары рұқсаттарды талап етеді. Дерекқор ауқымындағы сеанстар оқшаулауды ұсынады және нақты қолданбаларды немесе жалға алушыларды бақылау кезінде орынды болады.

Орталықтандырылған бақылау, дерекқорлардағы өнімділік ақаулықтарын жою және қауіпсіздік аудиті үшін сервер ауқымындағы сеанстарды пайдаланыңыз. Azure SQL дерекқорында, көп клиенттік орталарда немесе қолданба топтарына бақылау жауапкершілігін беру кезінде дерекқор ауқымындағы сеанстарды пайдаланыңыз.

10. Azure SQL дерекқорындағы кеңейтілген оқиғалар

10.1 Azure үшін арнайы қарастырулар

Azure SQL дерекқоры жергілікті жерден кейбір айырмашылықтары бар кеңейтілген оқиғаларды жүзеге асырады SQL Server. Сеанстар әдепкі бойынша дерекқор ауқымында болады және оқиға файлдарын сақтау жергілікті файлдық жүйелерден гөрі Azure Blob қоймасын пайдаланады.

Azure Blob Storage аутентификациясы оқиға файлының нысанасында конфигурацияланған SAS токенін қажет етеді. Қосылым жолдары оқиға файлдары сақталған сақтау тіркелгісі мен контейнеріне сілтеме жасайды.

10.2 Azure-дегі қолжетімді нысаналар

Azure SQL дерекқоры келесі кеңейтілген оқиға мақсаттарын қолдайды:

  • event_file: Azure Blob қоймасына жазады
  • ring_buffer: жергілікті жерде сияқты әрекеті бар жадқа негізделген жад
  • event_counter: Оқиғалардың пайда болуын санайды

event_file нысанасы Azure Blob Storage тіркелгі деректерімен конфигурациялауды қажет етеді:

ADD TARGET package0.event_file(
    SET filename=N'https://yourstorageaccount.blob.core.windows.net/container/EventFile.xel'
)

10.3 Деректер қорының ауқымды сеанстарын құру

Azure SQL дерекқорында сеанс жасаңыз:

CREATE EVENT SESSION [AzureMonitoring] ON DATABASE
ADD EVENT sqlserver.sql_statement_completed(
    ACTION(sqlserver.sql_text, sqlserver.database_name)
)
ADD TARGET package0.ring_buffer
WITH (MAX_MEMORY=4096 KB);

ALTER EVENT SESSION [AzureMonitoring] ON DATABASE STATE = START;

Azure жүйесіндегі дерекқор ауқымы бар сеанстар жергілікті сервер ауқымындағы сеанстарға ұқсас әрекет етеді, бірақ ауқымы ағымдағы дерекқормен шектеледі.

11. Үздік тәжірибелер және өнімділікті оңтайландыру

11.1 Өнімділікке әсер етуді азайту

Кеңейтілген оқиғалар ең аз үстеме шығындарға арналған, бірақ дұрыс емес конфигурация өнімділікке әсер етуі мүмкін. Мына нұсқауларды орындаңыз:

  • Барлығын түсірудің орнына оқиғаларды сүзу үшін арнайы предикаттарды пайдаланыңыз
  • Өңдеу шығындарын қосатын қажетсіз әрекеттерді жинаудан аулақ болыңыз
  • Деректерді сақтау қажеттіліктеріне негізделген тиісті мақсаттарды таңдаңыз
  • Ақылға қонымды буфер өлшемдерін және жіберу кідірістерін орнатыңыз
  • DMV арқылы сеанс ресурсын тұтынуды бақылаңыз

11.2 Оқиғалар мен сүзгілерді дұрыс таңдау

Бақылау мақсаттарыңызға тікелей қатысты оқиғаларды таңдаңыз. Қажет болмаса, жоғары жиілікті оқиғалардан аулақ болыңыз және деректер көлемін азайту үшін әрқашан предикаттарды қолданыңыз.

Мысалы, барлық sql_statement_completed оқиғаларын түсірудің орнына, нақты дерекқорлар немесе ұзақтық шектері үшін сүзгіден өткізіңіз:

WHERE (
    [sqlserver].[database_name] = N'ProductionDB'
    AND [duration] > 1000000
)

11.3 Мақсатты таңдау бойынша нұсқаулық

Талдау талаптарыңызға негізделген мақсаттарды таңдаңыз:

  • Толық тарихи талдау және ұзақ мерзімді сақтау үшін event_file пайдаланыңыз
  • Ең аз енгізу/шығару әсерімен нақты уақыттағы бақылау үшін ring_buffer пайдаланыңыз
  • Тек жиілік маңызды болғанда event_counter пайдаланыңыз
  • Таралуды талдау үшін гистограмманы пайдаланыңыз
  • Корреляциялық оқиғаны талдау үшін pair_matching пайдаланыңыз

11.4 Сеанс конфигурациясының ұсыныстары

Сәйкес ресурс шектеулері бар сеанстарды конфигурациялаңыз:

  • Күтілетін оқиға көлемі мен сервер ресурстары негізінде MAX_MEMORY орнатыңыз
  • Көптеген сценарийлерде минималды шығындар үшін ALLOW_SINGLE_EVENT_LOSS пайдаланыңыз
  • Нақты уақыттағы қажеттіліктерді өнімділікпен теңестіру үшін MAX_DISPATCH_LATENCY орнатыңыз
  • Көп процессорлы жүйелерде PER_CPU жад бөлімін пайдаланыңыз
  • Үздіксіз бақылау қажет болмаса, STARTUP_STATE=ON функциясын болдырмаңыз

11.5 Оқиға файлының өлшемін және сақталуын басқару

Дискіні шектеусіз пайдалануды болдырмау үшін файлды ауыстыруды конфигурациялаңыз:

ADD TARGET package0.event_file(
    SET filename=N'C:\XEvents\Session.xel',
        max_file_size=(100),
        max_rollover_files=(10)
)

Бұл конфигурация шамамен 1 ГБ оқиға деректерін (10 файл × 100 МБ) сақтайды. Сақтау талаптары мен қолжетімді жад негізінде реттеңіз.

12. Кеңейтілген оқиғаларды жою

12.1 Жалпы мәселелер мен шешімдер

Кеңейтілген оқиғалардың жиі кездесетін мәселелеріне деректерді жазбай қалу сеанстары, өнімділіктің төмендеуі, файл нысанасының мәселелері және күтпеген сеанс әрекеті жатады.

12.2 Сеанс деректерді түсірмейді

Сеанс күтілетін оқиғаларды түсірмесе:

  1. sys.dm_xe_sessions арқылы сеанстың басталғанын тексеріңіз.
  2. Барлық оқиғаларды сүзгіден өткізбейтініне көз жеткізу үшін предикаттарды тексеріңіз.
  3. Сүзгілерді уақытша алып тастау арқылы оқиғалардың іске қосылып жатқанын растаңыз.
  4. Сеанс деректерін көруге рұқсатыңыз бар екеніне көз жеткізу үшін рұқсаттарды қарап шығыңыз.
  5. Мақсатты конфигурацияның дұрыс және жазылатынын тексеріңіз.
SELECT name, create_time
FROM sys.dm_xe_sessions
WHERE name = 'YourSessionName';

12.3 Өнімділіктің төмендеуі

Кеңейтілген оқиғалар өнімділік мәселелерін тудырса:

  1. Оқиға көлемін азайту үшін предикаттарды қосыңыз.
  2. Қосымша деректерді жинайтын қажетсіз әрекеттерді алып тастаңыз.
  3. Жазу жиілігін азайту үшін MAX_DISPATCH_LATENCY арттырыңыз.
  4. EVENT_RETENTION_MODE режимін ALLOW_SINGLE_EVENT_LOSS күйіне өзгертіңіз.
  5. Жоғары жиілікті оқиғалар үшін event_file орнына ring_buffer пайдалануды қарастырыңыз.

12.4 Файл нысанасының мәселелері

Файл нысанасының мәселелері көбінесе рұқсаттарға немесе дискілік кеңістікке қатысты:

  1. Тексеріңіз SQL Server қызметтік тіркелгі мақсатты каталогқа жазу рұқсаттарына ие.
  2. Дискіде жеткілікті бос орын бар екеніне көз жеткізіңіз.
  3. Көрсетілген жолдың бар екенін және қол жетімді екенін тексеріңіз.
  4. Файлдар күтілгендей жылжытылмаса, файлды ауыстыру конфигурациясын қарап шығыңыз.

12.5 Жүйе көріністерімен жөндеу

Кеңейтілген оқиғалар мәселелерін диагностикалау үшін DMV пайдаланыңыз:

-- Check session status
SELECT s.name, s.create_time, s.total_regular_buffers, s.total_large_buffers
FROM sys.dm_xe_sessions AS s;

-- View session targets and their status
SELECT
    s.name AS SessionName,
    t.target_name,
    t.execution_count,
    CAST(t.target_data AS XML) AS TargetData
FROM sys.dm_xe_session_targets AS t
JOIN sys.dm_xe_sessions AS s
    ON s.address = t.event_session_address;

-- Check for dropped events
SELECT s.name, s.dropped_event_count, s.dropped_buffer_count
FROM sys.dm_xe_sessions AS s;

13. Қосымша тақырыптар

13.1 Теңшелетін оқиға пакеттерін жасау

Жетілдірілген пайдаланушылар кеңейту үшін теңшелетін оқиға бумаларын жасай алады SQL Server Кеңейтілген оқиғалар функциясы. Бұл C++ әзірлеуді және онымен интеграцияны қажет етеді SQL Server кеңейту шеңбері.

Пайдаланушы бумалары қолданбаға қатысты оқиғаларды бақылауға немесе Кеңейтілген оқиғалар инфрақұрылымымен үшінші тарап бақылау жүйелерін біріктіруге мүмкіндік береді.

13.2 Оқиға сеансының үлгілері

SSMS жалпы бақылау сценарийлері үшін кірістірілген үлгілерді қамтамасыз етеді. Шебер арқылы жаңа сеанстарды жасау кезінде үлгілерге қол жеткізіңіз:

  1. Жаңа сеанс тілқатысу терезесінде түймесін басыңыз Үлгі түсіп қалу.
  2. Сұрау мәліметтерін бақылау немесе жүйенің денсаулығы сияқты қолжетімді үлгілерден таңдаңыз.
  3. Үлгіні арнайы талаптарға сай өзгертіңіз.

13.3 Мониторинг шешімдерімен біріктіру

Кеңейтілген оқиғалар деректері кәсіпорынды бақылау шешімдерін бере алады:

  • Оқиға деректерін орталықтандырылған тіркеу жүйелеріне экспорттау
  • Оқиға файлдарын талдаңыз және деректерді бақылау дерекқорларына жүктеңіз
  • BI құралдарын пайдаланып реттелетін бақылау тақталарын жасаңыз
  • Арнайы оқиға үлгілеріне негізделген ескертулерді іске қосыңыз
  • Корреляция SQL Server қолданба және инфрақұрылым өлшемдері бар оқиғалар

13.4 Автоматтандыру және жоспарлау

көмегімен кеңейтілген оқиғаларды басқаруды автоматтандыру SQL Server Агент:

  • Белгілі бір уақыт аралығында сеанстарды бастау/тоқтату үшін тапсырмалар жасаңыз
  • Оқиға файлдарын талдау және есеп беруді жоспарлау
  • Ескі оқиға файлдарын мұрағаттау немесе жою арқылы деректерді сақтау саясатын жүзеге асырыңыз
  • Өнімділік мәселелері немесе қауіпсіздік оқиғалары сияқты анықталған жағдайларға жауап беруді автоматтандырыңыз

14. Көші-қон SQL Server Профессор

14.1 SQL Server Профиль жасаушы оқиғаларын кеңейтілген оқиғаларды салыстыру

Microsoft арасында салыстыруды қамтамасыз етеді SQL Server Профессор оқиғалар және кеңейтілген оқиғалар. Жалпы салыстыруларға мыналар жатады:

  • SQL:BatchCompleted -> sql_batch_completed
  • SQL:Байланыс бастау -> sql_батыш_бастау
  • SQL:StmtCompleted -> sql_statement_completed
  • SQL:StmtStarting -> sql_statement_starting
  • Тұйықталу графигі -> xml_deadlock_report
  • Аудит Кіру -> кіру
  • Аудит Шығу -> Шығу

14.2 Бақылау анықтамаларын түрлендіру

Бар түрлендіру SQL Server Профильдер балама оқиғаларды анықтау және сәйкес предикаттарды конфигурациялау арқылы Кеңейтілген оқиғалар сеанстарына қадағалайды. SSMS жалпы түрлендірулер үшін көмек көрсетеді.

Бақылау сүзгілерін қарап шығыңыз және оларды Кеңейтілген оқиғалар предикаттарына түрлендіріңіз. Кеңейтілген оқиғалардағы әрекеттер жол бағандарын ауыстырады SQL Server Профиль жасаушы.

14.3 Тиімділікті салыстыру

Кеңейтілген оқиғаларға қарағанда айтарлықтай жақсы өнімділікті қамтамасыз етеді SQL Server Профиль жасаушы. Эталондық зерттеулер Кеңейтілген оқиғалардың CPU циклдерін аз тұтынатынын және транзакция өткізу қабілетіне аз әсер ететінін көрсетеді.

Кеңейтілген оқиғалар асинхронды өңдеуді және оңтайландырылған жадты басқаруды пайдаланады, ал SQL Server Профильдер ізді өңдеу аяқталғанша блоктайтын синхронды оқиғаларды түсіруге сүйенеді.

15. қорытынды

15.1 Негізгі ұғымдардың қысқаша мазмұны

SQL Server Кеңейтілген оқиғалар бақылау және ақауларды жою үшін қуатты, жеңіл құрылымды қамтамасыз етеді SQL ServerАрхитектура тиісті сервер әрекетін жазу үшін бірге жұмыс істейтін оқиғалардан, әрекеттерден, предикаттардан, мақсаттардан және сеанстардан тұрады.

Сеанстарды SSMS немесе T-SQL көмегімен жасауға болады, бұл ad-hoc ақаулықтарды жою және автоматтандырылған мониторинг үшін икемділікті ұсынады. Бірнеше нысана түрлері ring_buffer көмегімен нақты уақыт режимінде бақылаудан бастап event_file көмегімен тарихи талдауға дейін әртүрлі талдау тәсілдерін қолдайды.

Кеңейтілген оқиғалармен салыстырғанда жоғары өнімділікті қамтамасыз етеді SQL Server Толығырақ бақылау мүмкіндіктерін қамтамасыз ете отырып, профиль жасаушы. Жүйе дерекқор әкімшілері мен әзірлеушілеріне мәселелерді диагностикалауға, өнімділікті оңтайландыруға, қауіпсіздікті арттыруға және сәйкестікті қолдауға мүмкіндік береді.

15.2 Келесі қадамдар және қосымша ресурстар

Өзіңізді дамытуды жалғастыру үшін SQL Server XEvents сараптамасы:

  • Қолданбалы тәжірибе алу үшін сынақ орталарында кеңейтілген оқиғаларды енгізіңіз
  • Толық оқиға каталогтары мен егжей-тегжейлі синтаксис анықтамасы үшін Microsoft құжаттамасын қараңыз
  • қосылу SQL Server басқалардың тәжірибесінен үйрену үшін қауымдастық форумдары
  • Пайдаланушы пакеттері және мониторинг платформаларымен интеграция сияқты кеңейтілген сценарийлерді зерттеңіз
  • Жалпы бақылау сценарийлері үшін сессия үлгілерінің кітапханасын жасаңыз

16 Жиі қойылатын сұрақтар бөлімі

С: Не SQL Server Кеңейтілген іс-шаралар?

A: SQL Server Extended Events бағдарламасына біріктірілген жеңіл өнімділікті бақылау жүйесі SQL Server Ең аз шығынмен сервер операциялары туралы толық ақпаратты жинайтын дерекқор механизмі.

С: Кеңейтілген оқиғалардың айырмашылығы неде? SQL Server Профильші?

A: Кеңейтілген оқиғалар жақсырақ өнімділікті, төмен қосымша шығындарды және икемді конфигурацияны қамтамасыз етеді SQL Server Профиль жасаушы. SQL Server Profiler ескірген және Microsoft барлық бақылау тапсырмалары үшін Кеңейтілген оқиғаларды пайдалануды ұсынады.

С: Кеңейтілген оқиғаларға әсер етуі мүмкін SQL Server өнімділігі?

Ж: Тиісті предикаттармен және ресурс шектеулерімен дұрыс конфигурацияланған кезде, Кеңейтілген оқиғалар өнімділікке ең аз әсер етеді. Сүзгісіз нашар конфигурация өнімділікке әсер етуі мүмкін.

С: Кеңейтілген оқиға сеанстарын жасау үшін қандай рұқсаттар қажет?

Ж: Сервер ауқымындағы сеанстар үшін КЕЗ КЕЛГЕН ОҚИҒА СЕССИЯСЫН ӨЗГЕРТУ рұқсаты немесе дерекқор ауқымындағы сеанстар үшін дерекқордағы БАСҚАРУ рұқсаты қажет.

С: Кеңейтілген оқиғалар деректерін қалай көруге болады?

A: пайдаланыңыз SQL Server Management Studio тікелей деректерді қарау құралы, sys.fn_xe_file_target_read_file арқылы оқиға файлдарына сұрау салу немесе DMV арқылы сақина буферінің деректеріне сұрау салу.

С: Кеңейтілген оқиғалар дерекқордың бүлінуін анықтай алады ма?

Ж: Иә, кеңейтілген оқиғалар сыбайлас жемқорлыққа қатысты қателерді (823, 824, 825) және ықтимал сыбайлас жемқорлық мәселелері үшін алдын ала ескертуді қамтамасыз ететін күдікті бет оқиғаларын жаза алады.

С: Оқиғалар, әрекеттер және предикаттардың айырмашылығы неде?

A: Оқиғалар – бақылау қажет оқиғалар. Әрекеттер түсірілген оқиғаларға қосымша ақпарат қосады. Деректер көлемін азайту үшін жағдайларға негізделген оқиғаларды сүзгіден өткізеді.

С: Арнайы қолданбалардан немесе дерекқорлардан сұрауларды қалай бақылай аламын?

Ж: дерекқор_аты, клиент_қолданба_аты немесе басқа сәйкес өрістер бойынша сүзу үшін оқиға конфигурациясында предикаттарды пайдаланыңыз.

С: Кеңейтілген іс-шаралар үшін қандай мақсаттарды пайдалануым керек?

Ж: Тұрақты сақтау және тарихи талдау үшін оқиға_файлын, төмен шығындармен нақты уақыттағы бақылау үшін ring_buffer, қарапайым жиілікті бақылау үшін оқиға_санаушысы және тарату талдауы үшін гистограмманы пайдаланыңыз.

С: Кеңейтілген оқиғалар Azure SQL дерекқорында қол жетімді ме?

A: Иә, Azure SQL дерекқоры Azure Blob қоймасында сақталған оқиға файлдары бар дерекқор ауқымындағы Кеңейтілген оқиғаларды қолдайды.

С: Деректерді түсірмейтін Кеңейтілген оқиғалар сеансының ақаулықтарын қалай жоюға болады?

A: Сеанстың басталғанын тексеріңіз, предикаттар барлық оқиғаларды сүзгіден өткізбейтінін тексеріңіз, мақсатты конфигурацияны растаңыз және жүйелік DMV арқылы рұқсаттарды қарап шығыңыз.

С: Кеңейтілген оқиғаларды басқаруды автоматтандыруға болады ма?

A: Иә, пайдаланыңыз SQL Server Агенттің сеанстарды бастау/тоқтату, оқиға файлдарын талдау, сақтау саясатын енгізу және анықталған жағдайларға жауап беру тапсырмалары.

Әдебиеттер тізімі


Автор туралы

Юань Шэн бойынша 10 жылдан астам тәжірибесі бар дерекқордың аға әкімшісі (DBA) болып табылады SQL Server орталар мен кәсіпорынның дерекқорын басқару. Ол қаржы қызметтері, денсаулық сақтау және өндірістік ұйымдардағы дерекқорды қалпына келтірудің жүздеген сценарийлерін сәтті шешті.

Юань маманданған SQL Server дерекқорды қалпына келтіру, жоғары қолжетімді шешімдержәне өнімділікті оңтайландыру. Оның кең практикалық тәжірибесіне көп терабайттық дерекқорларды басқару, енгізу кіреді. Әрқашан қолжетімді топтаржәне маңызды бизнес жүйелері үшін автоматтандырылған резервтік көшірме жасау және қалпына келтіру стратегияларын әзірлеу.

Техникалық тәжірибесі мен практикалық көзқарасы арқылы Юань дерекқор әкімшілері мен АТ мамандарына күрделі мәселелерді шешуге көмектесетін толық нұсқаулықтарды жасауға бағытталған. SQL Server қиындықтарды тиімді шешеді. Ол соңғы жаңалықтардан хабардар болып отырады SQL Server шығарылымдары мен Microsoft корпорациясының дамып келе жатқан дерекқор технологиялары, оның ұсыныстары нақты әлемдегі ең жақсы тәжірибелерді көрсететініне көз жеткізу үшін қалпына келтіру сценарийлерін жүйелі түрде сынап отырады.

туралы сұрақтарыңыз бар SQL Server қалпына келтіру немесе қосымша дерекқор ақаулықтарын жою нұсқаулығы қажет пе? Юань қарсы алады кері байланыс пен ұсыныстар осы техникалық ресурстарды жақсарту үшін.

Қазір бөлісу: