Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Β«1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β» β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых распространённых ошибок, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ ΠΈ администраторы 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. Она Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° систСма Π½Π΅ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ·-Π·Π° Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ со стороны Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Microsoft SQL Server, PostgreSQL ΠΈΠ»ΠΈ IBM DB2). Но Ρ‡Ρ‚ΠΎ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚ Β«Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎΒ», Π² ΠΊΠ°ΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… измСряСтся эта Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΈ ΠΊΠ°ΠΊ Π΅Ρ‘ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΠΎ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ?

Π’ этой ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ разбСрёмся:

  • πŸ”Ή Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Β«Π·Π°Ρ…Π²Π°Ρ‚ Π‘Π£Π‘Π”Β»** ΠΈ ΠΏΠΎΡ‡Π΅ΠΌΡƒ ΠΎΠ½ происходит (тСхничСскиС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹).
  • πŸ“ Π’ ΠΊΠ°ΠΊΠΈΡ… Π΅Π΄ΠΈΠ½ΠΈΡ†Π°Ρ… измСряСтся Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°** β€” сСкунды, Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈΠ»ΠΈ Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π΅Ρ‰Ρ‘?
  • πŸ› οΈ Как Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡƒΠ±ΠΈΡ‚ΡŒ «висящиС» сСссии** Π±Π΅Π· риска для Π΄Π°Π½Π½Ρ‹Ρ….
  • βš™οΈ Настройки 1Π‘ ΠΈ Π‘Π£Π‘Π”**, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠΎΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹ Π² Π±ΡƒΠ΄ΡƒΡ‰Π΅ΠΌ.

Ошибка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΡΠ²Π»ΡΡ‚ΡŒΡΡ ΠΏΠΎ-Ρ€Π°Π·Π½ΠΎΠΌΡƒ: ΠΎΡ‚ ΠΊΡ€Π°Ρ‚ΠΊΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ… «подвисаний» Π΄ΠΎ ΠΏΠΎΠ»Π½ΠΎΠΉ нСвозмоТности ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΡŒ Π±Π°Π·Ρƒ. Π§Π°Ρ‰Π΅ всСго ΠΎΠ½Π° связана с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ транзакциями, Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘ ΠΈΠ»ΠΈ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌΠΈ. Π”Π°Π»Π΅Π΅ β€” ΠΏΠΎΠ΄Ρ€ΠΎΠ±Π½Ρ‹ΠΉ Ρ€Π°Π·Π±ΠΎΡ€.

πŸ“Š Π‘ ΠΊΠ°ΠΊΠΎΠΉ Π‘Π£Π‘Π” Ρƒ вас Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π»Π° ошибка "1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”"?
Microsoft SQL Server
PostgreSQL
IBM DB2
Π€Π°ΠΉΠ»ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ
Другая

1. Π§Ρ‚ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚ Β«1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β» β€” тСхничСскоС объяснСниС

Π‘ΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ Β«Π‘Π°Π·Π° Π΄Π°Π½Π½Ρ‹Ρ… Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π° монопольно Π΄Ρ€ΡƒΠ³ΠΎΠΉ сСссиСй» ΠΈΠ»ΠΈ Β«Π‘Π£Π‘Π” Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π°Β» ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· сСссий 1Π‘ (ΠΈΠ»ΠΈ внСшний процСсс) ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΡΠΊΡΠΊΠ»ΡŽΠ·ΠΈΠ²Π½ΡƒΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ:

  • πŸ”„ Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Π°Ρ транзакция β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, массовая ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², которая Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΠ»Π°ΡΡŒ.
  • πŸ’» «Подвисший» сСанс ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ β€” ΠΊΠΎΠ³Π΄Π° 1Π‘ Π°Π²Π°Ρ€ΠΈΠΉΠ½ΠΎ Π·Π°ΠΊΡ€Ρ‹Π»Π°ΡΡŒ, Π½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π² Π‘Π£Π‘Π” ΠΎΡΡ‚Π°Π»Π°ΡΡŒ.
  • πŸ”’ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ β€” ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ сСссии ΠΏΡ‹Ρ‚Π°ΡŽΡ‚ΡΡ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ ΠΎΠ΄Π½ΠΈ ΠΈ Ρ‚Π΅ ΠΆΠ΅ Π΄Π°Π½Π½Ρ‹Π΅.
  • πŸ›‘ Административная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ»ΠΈ обслуТиваниС Π±Π°Π·Ρ‹.

Π’Π°ΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°Ρ‚ΡŒ, Ρ‡Ρ‚ΠΎ 1Π‘ Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ саму сСбя β€” Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° происходит Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”. НапримСр, Π² Microsoft SQL Server это ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ:

  • πŸ”— Shared (S) Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (для чтСния).
  • πŸ”’ Exclusive (X) Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (для записи).
  • πŸ”„ Update (U) Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (ΠΏΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ).

Если сСссия ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Exclusive-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ слишком Π΄ΠΎΠ»Π³ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ Π½Π΅ смогут ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ β€” ΠΈ ΡƒΠ²ΠΈΠ΄ΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β».

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 Π±Π΅Π· Π‘Π£Π‘Π”) подобная ошибка ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠ·Π½Π°Ρ‡Π°Ρ‚ΡŒ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° Π±Π°Π·Ρ‹ (1Cv8.1CD). Π’ этом случаС трСбуСтся ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° ΠΈ восстановлСниС Ρ‡Π΅Ρ€Π΅Π· chdbfl.exe.

2. Π’ Ρ‡Ρ‘ΠΌ измСряСтся Β«Π·Π°Ρ…Π²Π°Ρ‚ Π‘Π£Π‘Π”Β» β€” ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Π‘Π£Π‘Π” ΠΈΠ·ΠΌΠ΅Ρ€ΡΡŽΡ‚ΡΡ Π½Π΅ Π² ΠΏΡ€ΠΈΠ²Ρ‹Ρ‡Π½Ρ‹Ρ… сСкундах ΠΈΠ»ΠΈ ΠΌΠ΅Π³Π°Π±Π°ΠΉΡ‚Π°Ρ…, Π° Π² спСцифичСских ΠΌΠ΅Ρ‚Ρ€ΠΈΠΊΠ°Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ зависят ΠΎΡ‚ Ρ‚ΠΈΠΏΠ° Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. Π’ΠΎΡ‚ основныС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ:

ΠœΠ΅Ρ‚Ρ€ΠΈΠΊΠ° ОписаниС ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для SQL Server ΠŸΡ€ΠΈΠΌΠ΅Ρ€ для PostgreSQL
ВрСмя удСрТания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Как Π΄ΠΎΠ»Π³ΠΎ сСссия ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ (Π² мс/сСк). sys.dm_tran_locks (ΠΏΠΎΠ»Π΅ request_time) pg_locks + pg_stat_activity
Π’ΠΈΠΏ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Shared (S), Exclusive (X), Update (U) ΠΈ Π΄Ρ€. LOCK_MODE Π² sys.dm_tran_locks mode Π² pg_locks
ΠžΠ±ΡŠΠ΅ΠΊΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Какая Ρ‚Π°Π±Π»ΠΈΡ†Π°, строка ΠΈΠ»ΠΈ страница Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π°. resource_associated_entity_id relation (OID Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹)
ΠšΠΎΠ»ΠΈΡ‡Π΅ΡΡ‚Π²ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Бколько Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ΠΎΠ΄Π½Π° сСссия. Запрос ΠΊ sys.dm_tran_session_transactions COUNT(*) ΠΏΠΎ pg_locks для PID

НапримСр, Π² Microsoft SQL Server ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ запрос:

SELECT

t.session_id,

s.login_name,

t.transaction_id,

l.resource_type,

l.request_mode,

l.request_status,

DATEDIFF(ms, t.transaction_begin_time, GETDATE()) AS duration_ms

FROM

sys.dm_tran_locks l

JOIN

sys.dm_tran_active_transactions t ON l.lock_owner_address = t.transaction_id

JOIN

sys.dm_exec_sessions s ON t.session_id = s.session_id

WHERE

l.request_status = 'GRANTED';

Π­Ρ‚ΠΎΡ‚ запрос ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ всС Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ, ΠΈΡ… Ρ‚ΠΈΠΏ, врСмя удСрТания (Π² миллисСкундах) ΠΈ какая сСссия ΠΈΡ… ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚.

πŸ’‘

Если Π² Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ запроса Π²Ρ‹ Π²ΠΈΠ΄ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ с duration_ms > 300000 (5 ΠΌΠΈΠ½ΡƒΡ‚), Π΅Ρ‘ ΠΌΠΎΠΆΠ½ΠΎ ΡΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ «подвисшСй» ΠΈ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ.

3. Как Π½Π°ΠΉΡ‚ΠΈ ΠΈ ΡƒΠ±ΠΈΡ‚ΡŒ Β«Π²ΠΈΡΡΡ‰ΡƒΡŽΒ» сСссию Π² Π‘Π£Π‘Π”

Если Π±Π°Π·Π° Β«Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π°Β», ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Π΄Π΅Π»ΠΎΠΌ Π½ΡƒΠΆΠ½ΠΎ Π½Π°ΠΉΡ‚ΠΈ ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½ΡƒΡŽ сСссию. Рассмотрим инструкции для популярных Π‘Π£Π‘Π”.

πŸ”Ή Для Microsoft SQL Server

  1. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ SQL Server Management Studio (SSMS).
  2. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос для поиска Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ:
    SELECT
    

    session_id,

    login_name,

    host_name,

    program_name,

    last_request_start_time,

    last_request_end_time

    FROM

    sys.dm_exec_sessions

    WHERE

    is_user_process = 1;

  3. НайдитС сСссию с Π΄ΠΎΠ»Π³ΠΈΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½Π΅ΠΌ выполнСния (last_request_start_time).
  4. Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ Π΅Ρ‘ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ:
    KILL {session_id};

πŸ”Ή Для PostgreSQL

  1. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π±Π°Π·Π΅ Ρ‡Π΅Ρ€Π΅Π· psql ΠΈΠ»ΠΈ pgAdmin.
  2. НайдитС Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ процСссы:
    SELECT
    

    pid,

    usename,

    query,

    now() - query_start AS duration

    FROM

    pg_stat_activity

    WHERE

    state = 'active';

  3. Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹ΠΉ процСсс:
    SELECT pg_terminate_backend({pid});

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ сСссия Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ «висячая» (врСмя > 5 ΠΌΠΈΠ½ΡƒΡ‚)

Π£Π±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ это Π½Π΅ критичная транзакция (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅)

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Π»ΠΎΠ³ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… запросов для Π°Π½Π°Π»ΠΈΠ·Π°

ΠŸΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΠΈΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΠΌ Ρ€Π°Π·Ρ€Ρ‹Π²Π΅ соСдинСния-->

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сСссии ΠΌΠΎΠΆΠ΅Ρ‚ привСсти ΠΊ ΠΎΡ‚ΠΊΠ°Ρ‚Ρƒ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ ΠΈ ΠΏΠΎΡ‚Π΅Ρ€Π΅ нСсохранённых Π΄Π°Π½Π½Ρ‹Ρ…. ВсСгда сначала ΠΏΡ‹Ρ‚Π°ΠΉΡ‚Π΅ΡΡŒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Ρ‡ΡŒΡ сСссия Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°Π·Ρƒ.

4. Π’ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ ошибки Β«1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β»

Ошибка Ρ€Π΅Π΄ΠΊΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ сама ΠΏΠΎ сСбС β€” ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π΅ΠΉ ΠΏΡ€Π΅Π΄ΡˆΠ΅ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ дСйствия ΠΈΠ»ΠΈ сбои. Π’ΠΎΡ‚ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ частыС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  • πŸ–₯️ АварийноС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ 1Π‘ β€” ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π·Π°ΠΊΡ€Ρ‹Π» ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Ρ‡Π΅Ρ€Π΅Π· «ДиспСтчСр Π·Π°Π΄Π°Ρ‡Β» ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π» сбой элСктропитания.
  • ⏳ Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ β€” массовоС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΊΠ°, ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ с внСшними систСмами.
  • πŸ”„ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ ΠΏΡ€ΠΈ Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” Ссли ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ кластСр Π‘Π£Π‘Π” ΠΈΠ»ΠΈ Π·Π΅Ρ€ΠΊΠ°Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅.
  • πŸ”’ Π ΡƒΡ‡Π½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” администратор Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π» Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ для обслуТивания.
  • 🐌 НСоптимизированныС запросы β€” ΠΌΠ΅Π΄Π»Π΅Π½Π½Ρ‹Π΅ SQL-запросы, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π΄ΠΎΠ»Π³ΠΎ ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°ΡŽΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

ΠšΡ€ΠΈΡ‚ΠΈΡ‡Π΅ΡΠΊΠ°Ρ информация: Π’ 80% случаСв ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° связана с Π½Π΅ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½Ρ‹ΠΌ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ΠΌ сСансов 1Π‘. Если Π² вашСй ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ часто Β«Π²Ρ‹Π»Π΅Ρ‚Π°Π΅Ρ‚Β» 1Π‘, настройтС автоматичСскоС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ «висячих» сСссий Ρ‡Π΅Ρ€Π΅Π· SQL Agent (для SQL Server) ΠΈΠ»ΠΈ cron (для PostgreSQL).

Π§Ρ‚ΠΎΠ±Ρ‹ Π΄ΠΈΠ°Π³Π½ΠΎΡΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρƒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

  • πŸ“… Π–ΡƒΡ€Π½Π°Π»Ρ‹ 1Π‘ (1Cv8.log, 1Cv8Err.log) Π½Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ошибок.
  • πŸ“Š Π›ΠΎΠ³ΠΈ Π‘Π£Π‘Π” β€” Π² Π½ΠΈΡ… ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ записи ΠΎ Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Π°Ρ… ΠΈΠ»ΠΈ Π΄Π΅Π΄Π»ΠΎΠΊΠ°Ρ….
  • πŸ” ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΠΈ β€” Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ происходят Π² ΠΏΠΈΠΊΠΎΠ²Ρ‹Π΅ часы Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
Π§Ρ‚ΠΎ Ρ‚Π°ΠΊΠΎΠ΅ Π΄Π΅Π΄Π»ΠΎΠΊ (взаимная Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°)?

Π”Π΅Π΄Π»ΠΎΠΊ β€” ситуация, ΠΊΠΎΠ³Π΄Π° Π΄Π²Π΅ ΠΈΠ»ΠΈ Π±ΠΎΠ»Π΅Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π²Π·Π°ΠΈΠΌΠ½ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Π°. НапримСр:

- Вранзакция 1 Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ A ΠΈ ΠΆΠ΄Ρ‘Ρ‚ доступ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ B.

- Вранзакция 2 Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π»Π° Ρ‚Π°Π±Π»ΠΈΡ†Ρƒ B ΠΈ ΠΆΠ΄Ρ‘Ρ‚ доступ ΠΊ Ρ‚Π°Π±Π»ΠΈΡ†Π΅ A.

Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ΠΎΠ±Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Β«Π·Π°Π²ΠΈΡΠ°ΡŽΡ‚Β» навсСгда, ΠΏΠΎΠΊΠ° ΠΎΠ΄Π½Π° ΠΈΠ· Π½ΠΈΡ… Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° Π‘Π£Π‘Π”.

5. Настройки 1Π‘ ΠΈ Π‘Π£Π‘Π” для ΠΏΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риск ошибки Β«1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β», настройтС ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

πŸ”§ Настройки 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅

  • πŸ•’ Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ оТидания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” Π² 1Cv8.ini Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅:
    [DB]
    

    DBLockWaitTime=30000 ; 30 сСкунд (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 20000)

  • πŸ”„ АвтоматичСскоС освобоТдСниС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ β€” Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€:
    AutoDisconnect=1
  • πŸ“‘ ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΉ β€” настройтС Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ задания Ρ‡Π΅Ρ€Π΅Π· Π Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ задания.

βš™οΈ Настройки Microsoft SQL Server

  • πŸ”’ Π£Ρ€ΠΎΠ²Π΅Π½ΡŒ изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ READ COMMITTED SNAPSHOT для ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΡ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ:
    ALTER DATABASE [YourDB] SET READ_COMMITTED_SNAPSHOT ON;
  • ⏱️ Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ β€” настройтС Ρ‡Π΅Ρ€Π΅Π·:
    EXEC sp_configure 'remote query timeout', 300;
    

    RECONFIGURE;

  • πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ β€” настройтС оповСщСния Ρ‡Π΅Ρ€Π΅Π· SQL Server Agent.

🐘 Настройки PostgreSQL

  • ⏳ Π’Π°ΠΉΠΌ-Π°ΡƒΡ‚ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” Π² postgresql.conf:
    lock_timeout = '30s' ; максимальноС врСмя оТидания Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ
  • πŸ”„ Автоочистка β€” Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ autovacuum для прСдотвращСния «раздувания» Ρ‚Π°Π±Π»ΠΈΡ†.
⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: ИзмСнСниС уровня изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ (READ COMMITTED SNAPSHOT) ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ²Π»ΠΈΡΡ‚ΡŒ Π½Π° Π»ΠΎΠ³ΠΈΠΊΡƒ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΎΡ‚Ρ‡Ρ‘Ρ‚ΠΎΠ² Π² 1Π‘. ΠŸΠ΅Ρ€Π΅Π΄ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ протСстируйтС Π½Π° ΠΊΠΎΠΏΠΈΠΈ Π±Π°Π·Ρ‹.
πŸ’‘

Настройка AutoDisconnect=1 Π² 1Cv8.ini автоматичСски Ρ€Π°Π·Ρ€Ρ‹Π²Π°Π΅Ρ‚ «подвисшиС» соСдинСния, Π½ΠΎ Π½Π΅ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΡƒΠ΅Ρ‚ освобоТдСниС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”. Для ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ трСбуСтся комплСксный ΠΏΠΎΠ΄Ρ…ΠΎΠ΄: настройки 1Π‘ + Π‘Π£Π‘Π” + ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³.

6. Как Π²ΠΎΡΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ 1Π‘ послС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Если Π±Π°Π·Π° ΡƒΠΆΠ΅ Β«Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π°Β», слСдуйтС этому Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡƒ:

  1. ΠŸΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ β€” ΠΈΠ½ΠΎΠ³Π΄Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Ρ€Π΅ΡˆΠ°Π΅Ρ‚ΡΡ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½Ρ‹ΠΌ Π²Ρ…ΠΎΠ΄ΠΎΠΌ Π² 1Π‘.
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ сСссии Π² Π‘Π£Π‘Π” (инструкции Π² Ρ€Π°Π·Π΄Π΅Π»Π΅ 3).
  3. Π—Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ½Ρ‹Π΅ сСссии Ρ‡Π΅Ρ€Π΅Π· KILL (SQL Server) ΠΈΠ»ΠΈ pg_terminate_backend (PostgreSQL).
  4. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ слуТбу 1Π‘:
    net stop "1C:Enterprise 8.3 Server Agent"
    

    net start "1C:Enterprise 8.3 Server Agent"

  5. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π±Π°Π·Ρ‹:
    CHECKDB [YourDB] WITH NO_INFOMSGS;

Если послС этих дСйствий ошибка сохраняСтся:

  • πŸ”„ ВосстановитС Π±Π°Π·Ρƒ ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ (Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΏΡ€ΠΈΠ²Π΅Π»Π° ΠΊ поврСТдСниям).
  • πŸ“ž ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ администратору Π‘Π£Π‘Π” β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, трСбуСтся глубокая диагностика.

Π’ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ (1Π‘ Π±Π΅Π· Π‘Π£Π‘Π”) ΠΏΡ€ΠΈ ошибкС Β«Π‘Π°Π·Π° Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½Π° монопольно»:

  1. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС сСссии 1Π‘ Π½Π° сСрвСрС ΠΈ Ρ€Π°Π±ΠΎΡ‡ΠΈΡ… станциях.
  2. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Π½Π΅ Π·Π°ΠΏΡƒΡ‰Π΅Π½ Π»ΠΈ процСсс ragent.exe ΠΈΠ»ΠΈ rmngr.exe Π² ДиспСтчСрС Π·Π°Π΄Π°Ρ‡.
  3. Если Π±Π°Π·Π° ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½Π°, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅:
    chdbfl.exe -f "C:\Path\To\Your\Base\1Cv8.1CD"

7. ЧастыС вопросы (FAQ)

❓ ΠŸΠΎΡ‡Π΅ΠΌΡƒ ошибка Β«1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β» появляСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ρƒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ?

Ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ Ρƒ Ρ‚Π΅Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‡ΡŒΠΈ запросы ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΡƒΡŽΡ‚ с ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌΠΈ. НапримСр, Ссли ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΡ€ΠΎΠ²ΠΎΠ΄ΠΈΡ‚ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ (ΡƒΠ΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ Exclusive-Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ), Π° Π΄Ρ€ΡƒΠ³ΠΎΠΉ пытаСтся ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Ρ‚Ρƒ ΠΆΠ΅ строку β€” Π²Ρ‚ΠΎΡ€ΠΎΠΉ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ ΠΎΡˆΠΈΠ±ΠΊΡƒ. РСшСниС: Ρ€Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ запросы.

❓ МоТно Π»ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ автоматичСскоС ΡƒΠ±ΠΈΠ²Π°Π½ΠΈΠ΅ «висячих» сСссий?

Π”Π°. Π’ SQL Server это дСлаСтся Ρ‡Π΅Ρ€Π΅Π· SQL Agent Job, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Ρ€Π°Π· Π² 5–10 ΠΌΠΈΠ½ΡƒΡ‚ выполняСт скрипт:

DECLARE @kill varchar(8000) = '';

SELECT @kill = @kill + 'KILL ' + CAST(session_id AS varchar(5)) + ';'

FROM sys.dm_exec_sessions

WHERE status = 'sleeping' AND last_request_end_time < DATEADD(minute, -15, GETDATE());

EXEC(@kill);

Для PostgreSQL Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ скрипт ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΏΡƒΡΠΊΠ°Ρ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· cron.

❓ Как ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ, какая ΠΈΠΌΠ΅Π½Π½ΠΎ транзакция Π±Π»ΠΎΠΊΠΈΡ€ΡƒΠ΅Ρ‚ Π±Π°Π·Ρƒ?

Π’ SQL Server ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ запрос:

SELECT

t1.resource_type,

t1.resource_database_id,

t1.request_mode,

t1.request_session_id,

t2.blocking_session_id

FROM

sys.dm_tran_locks t1

JOIN

sys.dm_os_waiting_tasks t2 ON t1.lock_owner_address = t2.resource_address;

Π’ PostgreSQL:

SELECT

blocked_locks.pid AS blocked_pid,

blocking_locks.pid AS blocking_pid,

blocked_activity.usename AS blocked_user,

blocking_activity.usename AS blocking_user,

blocked_activity.query AS blocked_statement

FROM

pg_catalog.pg_locks blocked_locks

JOIN

pg_stat_activity blocked_activity ON blocked_activity.pid = blocked_locks.pid

JOIN

pg_catalog.pg_locks blocking_locks ON blocking_locks.locktype = blocked_locks.locktype

AND blocking_locks.DATABASE IS NOT DISTINCT FROM blocked_locks.DATABASE

AND blocking_locks.relation IS NOT DISTINCT FROM blocked_locks.relation

AND blocking_locks.page IS NOT DISTINCT FROM blocked_locks.page

AND blocking_locks.tuple IS NOT DISTINCT FROM blocked_locks.tuple

AND blocking_locks.virtualxid IS NOT DISTINCT FROM blocked_locks.virtualxid

AND blocking_locks.transactionid IS NOT DISTINCT FROM blocked_locks.transactionid

AND blocking_locks.classid IS NOT DISTINCT FROM blocked_locks.classid

AND blocking_locks.objid IS NOT DISTINCT FROM blocked_locks.objid

AND blocking_locks.objsubid IS NOT DISTINCT FROM blocked_locks.objsubid

AND blocking_locks.pid != blocked_locks.pid

JOIN

pg_stat_activity blocking_activity ON blocking_activity.pid = blocking_locks.pid

WHERE

NOT blocked_locks.GRANTED;

❓ Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли ошибка Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΏΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ (Π Π˜Π‘, Π²Ρ‹Π³Ρ€ΡƒΠ·ΠΊΠ°/Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ°)?

ΠŸΡ€ΠΈ ΠΎΠ±ΠΌΠ΅Π½Π΅ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΈΠ·-Π·Π°:

  • πŸ”„ Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ β€” Ρ€Π°Π·Π±Π΅ΠΉΡ‚Π΅ ΠΎΠ±ΠΌΠ΅Π½ Π½Π° мСньшиС ΠΏΠ°ΠΊΠ΅Ρ‚Ρ‹.
  • πŸ”’ ΠšΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠ² вСрсий ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² β€” настройтС ΠΏΡ€Π°Π²ΠΈΠ»Π° ΠΎΠ±ΠΌΠ΅Π½Π° Π² План ΠΎΠ±ΠΌΠ΅Π½Π°.
  • πŸ“‘ ΠΠ΅ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½ΠΎΠ³ΠΎ соСдинСния β€” ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΡΠ΅Ρ‚ΡŒ ΠΌΠ΅ΠΆΠ΄Ρƒ ΡƒΠ·Π»Π°ΠΌΠΈ Π Π˜Π‘.

РСшСниС: ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅ΠΆΠΈΠΌ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈ настройтС Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹ Π² ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°Ρ… ΡƒΠ·Π»Π° ΠΎΠ±ΠΌΠ΅Π½Π°.

❓ ΠœΠΎΠΆΠ΅Ρ‚ Π»ΠΈ антивирус Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ Β«1Π‘ Π·Π°Ρ…Π²Π°Ρ‡Π΅Π½ΠΎ Π‘Π£Π‘Π”Β»?

Π”Π°, Ссли антивирус сканируСт Ρ„Π°ΠΉΠ»Ρ‹ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (1Cv8.1CD, .mdf/.ldf) Π²ΠΎ врСмя Ρ€Π°Π±ΠΎΡ‚Ρ‹ 1Π‘. Π­Ρ‚ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠ°ΠΌ чтСния/записи ΠΈ искусствСнным Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ. РСшСниС:

  • βœ… Π˜ΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ ΠΏΠ°ΠΏΠΊΠΈ с Π±Π°Π·Π°ΠΌΠΈ 1Π‘ ΠΈΠ· сканирования антивирусом.
  • βœ… НастройтС расписаниС сканирования Π½Π° врСмя минимальной Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.