Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π±Π°Π·Ρ‹ 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ β€” ΠΎΠ΄Π½Π° ΠΈΠ· самых распространённых ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ, с ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ администраторы ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΠΈ систСмы. Она ΠΌΠΎΠΆΠ΅Ρ‚ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΡƒΡ‚ΡŒ ΠΏΠΎ мноТСству ΠΏΡ€ΠΈΡ‡ΠΈΠ½: ΠΎΡ‚ банального «зависшСго» сСанса Π΄ΠΎ ΡΠ΅Ρ€ΡŒΠ΅Π·Π½Ρ‹Ρ… сбоСв Π² Ρ€Π°Π±ΠΎΡ‚Π΅ Π‘Π£Π‘Π”. Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Ρ€Π°Π·Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· стандартный интСрфСйс 1Π‘, Π½ΠΎ ΠΊΠΎΠ³Π΄Π° графичСскиС инструмСнты нСдоступны (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° критичСской ошибки ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½ΠΎΠ³ΠΎ доступа), Π½Π° ΠΏΠΎΠΌΠΎΡ‰ΡŒ ΠΏΡ€ΠΈΡ…ΠΎΠ΄ΠΈΡ‚ консольноС ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅.

ИспользованиС ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки для снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ понимания Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ 1Π‘ ΠΈ основ Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π‘Π£Π‘Π” (ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Microsoft SQL Server ΠΈΠ»ΠΈ PostgreSQL). Π­Ρ‚ΠΎΡ‚ ΠΌΠ΅Ρ‚ΠΎΠ΄ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΈΡ‚ для ΠΎΠΏΡ‹Ρ‚Π½Ρ‹Ρ… ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π½Π΅ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½Ρ‹Π΅ дСйствия ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ»ΠΈ ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΡŽ Π±Π°Π·Ρ‹. Π’ ΡΡ‚Π°Ρ‚ΡŒΠ΅ ΠΌΡ‹ Ρ€Π°Π·Π±Π΅Ρ€Ρ‘ΠΌ ΠΏΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции для Ρ€Π°Π·Π½Ρ‹Ρ… сцСнариСв, Ρ‚ΠΈΠΏΠΈΡ‡Π½Ρ‹Π΅ ошибки ΠΈ способы ΠΈΡ… устранСния.

Если Π²Ρ‹ Π²ΠΏΠ΅Ρ€Π²Ρ‹Π΅ ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°Π΅Ρ‚Π΅ΡΡŒ с администрированиСм 1Π‘ Ρ‡Π΅Ρ€Π΅Π· консоль, Ρ€Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡƒΠ΅ΠΌ ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡ‚ΡŒΡΡ с Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠ΅ΠΉ ΠΊ вашСй вСрсии ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹. ВСрсии 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 ΠΈ 8.2 ΠΈΠΌΠ΅ΡŽΡ‚ различия Π² синтаксисС ΠΊΠΎΠΌΠ°Π½Π΄, поэтому уточняйтС Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ для вашСй сборки.

πŸ“Š ΠšΠ°ΠΊΡƒΡŽ Π‘Π£Π‘Π” Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ с 1Π‘?
Microsoft SQL Server
PostgreSQL
IBM DB2
Oracle Database
Другая

ΠŸΡ€ΠΈΡ‡ΠΈΠ½Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π±Π°Π·Ρ‹ 1Π‘ ΠΈ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½Π° консоль

Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π² 1Π‘ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚, ΠΊΠΎΠ³Π΄Π° систСма фиксируСт Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ сСанс Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½Ρ‹Ρ…, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½Π΅ Π±Ρ‹Π» ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½. Π­Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΠΉΡ‚ΠΈ ΠΈΠ·-Π·Π°:

βœ… Аварийного Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ β€” Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ сСрвСра ΠΈΠ»ΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠ΅ прилоТСния 1Π‘ ΠΏΠΎ ошибкС. Π’ этом случаС сСанс остаётся Β«Π²ΠΈΡΠ΅Ρ‚ΡŒΒ» Π² Π‘Π£Π‘Π”, блокируя доступ Π΄Ρ€ΡƒΠ³ΠΈΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠΌ.

βœ… Π”Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ β€” Ссли опСрация (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π° ΠΈΠ»ΠΈ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ) Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ, систСма ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΊΠ°ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ.

βœ… Ошибок Ρ€Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΠΈ β€” Π² распрСдСлённых Π±Π°Π·Π°Ρ… (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΏΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Ρ‚ΠΎΡ€Π³ΠΎΠ²Π»Π΅ΠΉ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… сСрвСрах) синхронизация ΠΌΠΎΠΆΠ΅Ρ‚ Β«Π·Π°Π²ΠΈΡΠ½ΡƒΡ‚ΡŒΒ», создавая Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ.

βœ… Π ΡƒΡ‡Π½ΠΎΠ³ΠΎ блокирования β€” администратор ΠΈΠ»ΠΈ сам ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠ³ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Ρ‡Π΅Ρ€Π΅Π· SET LOCK Π² SQL-запросС.

Π’ Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ случаСв Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ½ΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ 1Π‘ (мСню АдминистрированиС β†’ ВСстированиС ΠΈ исправлСниС). Однако консоль потрСбуСтся, Ссли:

  • πŸ”Ή НСт доступа ΠΊ графичСскому интСрфСйсу (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΠΈΠ·-Π·Π° ошибки "НС ΡƒΠ΄Π°Π»ΠΎΡΡŒ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒΡΡ ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Π΅")
  • πŸ”Ή Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²Ρ‹Π·Π²Π°Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Π‘Π£Π‘Π”, Π° Π½Π΅ прилоТСния 1Π‘
  • πŸ”Ή НСобходимо массовоС снятиС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, послС сбоя сСрвСра)
  • πŸ”Ή ВрСбуСтся автоматизация процСсса Ρ‡Π΅Ρ€Π΅Π· скрипты

Π’Π°ΠΆΠ½ΠΎ: ΠŸΠ΅Ρ€Π΅Π΄ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ с консолью ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас Π΅ΡΡ‚ΡŒ рСзСрвная копия Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ…. НСкоторыС ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, KILL Π² SQL Server) ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ критичСскиС Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

πŸ’‘

Если Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ»Π° послС обновлСния ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ, сначала ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ ΠΎΡ‚ΠΊΠ°Ρ‚ΠΈΡ‚ΡŒ измСнСния Ρ‡Π΅Ρ€Π΅Π· ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€ β†’ ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΡ β†’ ΠŸΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° β†’ Настройка ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ. ΠšΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли графичСскиС инструмСнты Π½Π΅ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‚.

ΠŸΠΎΠ΄Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ° ΠΊ Ρ€Π°Π±ΠΎΡ‚Π΅: Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ инструмСнты

Для снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Ρ‡Π΅Ρ€Π΅Π· консоль Π²Π°ΠΌ понадобятся:

  • πŸ› οΈ ΠšΠ»ΠΈΠ΅Π½Ρ‚ для ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π‘Π£Π‘Π”:
    • SQL Server Management Studio (SSMS) ΠΈΠ»ΠΈ Azure Data Studio для Microsoft SQL Server
    • pgAdmin ΠΈΠ»ΠΈ psql для PostgreSQL
  • πŸ”‘ ΠŸΡ€Π°Π²Π° администратора Π½Π° сСрвСрС Π±Π°Π· Π΄Π°Π½Π½Ρ‹Ρ… (учётная запись с Ρ€ΠΎΠ»ΡŒΡŽ sysadmin ΠΈΠ»ΠΈ db_owner)
  • πŸ“‚ Имя Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… (ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ·Π½Π°Ρ‚ΡŒ Π² Ρ„Π°ΠΉΠ»Π΅ 1CV8.1CD ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ibases.v8i)
  • πŸ–₯️ Доступ ΠΊ сСрвСру (Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ»ΠΈ ΡƒΠ΄Π°Π»Ρ‘Π½Π½Ρ‹ΠΉ Ρ‡Π΅Ρ€Π΅Π· RDP/SSH)

Если Π²Ρ‹ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚Π΅ с 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅ 8.3 Π½Π° PostgreSQL, ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρƒ вас установлСн ΠΏΠ°ΠΊΠ΅Ρ‚ postgresql-client (для Linux) ΠΈΠ»ΠΈ PostgreSQL с инструмСнтами ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строки (для Windows).

Для Microsoft SQL Server ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅, Ρ‡Ρ‚ΠΎ слуТба SQL Server Agent Π·Π°ΠΏΡƒΡ‰Π΅Π½Π° β€” ΠΎΠ½Π° ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ для выполнСния Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… ΠΊΠΎΠΌΠ°Π½Π΄.

Как ΡƒΠ·Π½Π°Ρ‚ΡŒ имя Π±Π°Π·Ρ‹ Π΄Π°Π½Π½Ρ‹Ρ… 1Π‘?

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» 1CV8.1CD (для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π°) ΠΈΠ»ΠΈ ibases.v8i (для ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного) Π² тСкстовом Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅. Π˜Ρ‰ΠΈΡ‚Π΅ строку Π²ΠΈΠ΄Π° Srvr="имя_сСрвСра";Ref="имя_Π±Π°Π·Ρ‹".

БнятиС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² Microsoft SQL Server

Если ваша Π±Π°Π·Π° 1Π‘ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° MS SQL Server, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ сСрвСру Ρ‡Π΅Ρ€Π΅Π· SSMS ΠΈΠ»ΠΈ sqlcmd.

Π¨Π°Π³ 1. НайдитС Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ сСансы

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос для поиска Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹Ρ… Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ:

SELECT

session_id,

login_name,

host_name,

program_name,

login_time,

last_request_start_time,

last_request_end_time

FROM sys.dm_exec_sessions

WHERE is_user_process = 1

AND program_name LIKE '%1C%'

ORDER BY last_request_start_time;

ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° столбцы:

  • session_id β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ сСанса, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π½ΡƒΠΆΠ½ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ
  • program_name β€” Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ 1C (ΠΏΠΎΠ΄Ρ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ это сСанс 1Π‘)
  • last_request_start_time β€” врСмя Π½Π°Ρ‡Π°Π»Π° послСднСго запроса (Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСансы β€” ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ)

Π¨Π°Π³ 2. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ KILL для Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ сСанса (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ XX Π½Π° Ρ€Π΅Π°Π»ΡŒΠ½Ρ‹ΠΉ session_id):

KILL XX;

Если Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° связана с Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠ΅ΠΉ, сначала ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π΅Ρ‘ состояниС:

DBCC INPUTBUFFER(XX);

Π¨Π°Π³ 3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚

ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос ΠΈΠ· Π¨Π°Π³Π° 1. Если сСанс исчСз β€” Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° снята. Если Π½Π΅Ρ‚, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ всС ΠΏΠΎΠ΄ΠΎΠ·Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ сСансы ΠΈΠ»ΠΈ пСрСзапуститС слуТбу SQL Server.

Π£Π±Π΅Π΄ΠΈΡ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ сСанс ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠΈΡ‚ 1Π‘ (ΠΏΠΎΠ»Π΅ program_name)|ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ врСмя послСднСго запроса (Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ большС 5-10 ΠΌΠΈΠ½ΡƒΡ‚)|Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ session_id для ΠΎΡ‚ΠΊΠ°Ρ‚Π° (Π½Π° случай ошибки)|ΠŸΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΠΎΠΏΠΎΠ²Π΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ ΠΎ ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Ρ€Π°Π·Ρ€Ρ‹Π²Π΅-->

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Команда KILL с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΎΠΌ WITH STATUSONLY ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ статус ΠΎΡ‚ΠΌΠ΅Π½Ρ‹ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Если процСсс «завис», ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΠ΅Ρ€Π΅Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° сСрвСра.

БнятиС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² PostgreSQL

Для PostgreSQL Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ ΠΏΠΎΡ…ΠΎΠΆ, Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹. ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΊ Π±Π°Π·Π΅ Ρ‡Π΅Ρ€Π΅Π· psql ΠΈΠ»ΠΈ pgAdmin.

Π¨Π°Π³ 1. НайдитС Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ процСссы

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ запрос для поиска Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ:

SELECT

pid,

usename,

application_name,

client_addr,

query_start,

state,

query

FROM pg_stat_activity

WHERE state = 'active'

AND application_name LIKE '%1C%'

ORDER BY query_start;

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ столбцы:

  • pid β€” ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ процСсса
  • query_start β€” врСмя Π½Π°Ρ‡Π°Π»Π° запроса (Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ процСссы β€” ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ)
  • query β€” тСкст выполняСмого запроса (ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ LOCK)

Π¨Π°Π³ 2. ΠŸΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ процСсса

Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ pg_terminate_backend (Π·Π°ΠΌΠ΅Π½ΠΈΡ‚Π΅ XXX Π½Π° pid):

SELECT pg_terminate_backend(XXX);

Если процСсс Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ°Π΅Ρ‚ΡΡ, ΠΏΠΎΠΏΡ€ΠΎΠ±ΡƒΠΉΡ‚Π΅ pg_cancel_backend(XXX) (мягкоС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅).

Π¨Π°Π³ 3. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚Π°Π±Π»ΠΈΡ†

Для Π΄Π΅Ρ‚Π°Π»ΡŒΠ½ΠΎΠ³ΠΎ Π°Π½Π°Π»ΠΈΠ·Π° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ запрос:

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;

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ PostgreSQL Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ связаны с Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ транзакциями. Если послС Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ процСсса Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° остаётся, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· SELECT * FROM pg_locks WHERE NOT granted;.

РаспространённыС ошибки ΠΈ ΠΈΡ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ

ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с консолью администраторы часто ΡΡ‚Π°Π»ΠΊΠΈΠ²Π°ΡŽΡ‚ΡΡ с Ρ‚ΠΈΠΏΠΎΠ²Ρ‹ΠΌΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ°ΠΌΠΈ. НиТС β€” Ρ‚Π°Π±Π»ΠΈΡ†Π° ошибок ΠΈ способы ΠΈΡ… устранСния:

Ошибка ΠŸΡ€ΠΈΡ‡ΠΈΠ½Π° РСшСниС
Msg 6106, Level 16, State 1: No process with ID XX was found БСанс ΡƒΠΆΠ΅ Π·Π°Π²Π΅Ρ€ΡˆΡ‘Π½ ΠΈΠ»ΠΈ ΡƒΠΊΠ°Π·Π°Π½ Π½Π΅Π²Π΅Ρ€Π½Ρ‹ΠΉ session_id ΠžΠ±Π½ΠΎΠ²ΠΈΡ‚Π΅ список сСансов ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½Ρ‹ΠΉ ID
ERROR: canceling statement due to user request (PostgreSQL) ΠŸΡ€ΠΎΡ†Π΅ΡΡ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΎΡ‚ΠΌΠ΅Π½Ρ‘Π½, Π½ΠΎ транзакция Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ COMMIT ΠΈΠ»ΠΈ ROLLBACK Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ, Ссли сСанс всё Π΅Ρ‰Ρ‘ Π°ΠΊΡ‚ΠΈΠ²Π΅Π½
Cannot kill a system process ΠŸΠΎΠΏΡ‹Ρ‚ΠΊΠ° Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚ΡŒ систСмный процСсс (Π½Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠΉ) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΏΡ€Π°Π²Π° ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записи ΠΈ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΡƒΠΉΡ‚Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ сСансы 1Π‘ (program_name LIKE '%1C%')
Π‘Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° остаётся послС KILL/pg_terminate_backend Вранзакция Π½Π΅ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½Π° ΠΈΠ»ΠΈ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· DBCC OPENTRAN (SQL Server) ΠΈΠ»ΠΈ pg_locks (PostgreSQL)
Permission denied for database НСдостаточно ΠΏΡ€Π°Π² для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ΡΡŒ ΠΏΠΎΠ΄ ΡƒΡ‡Ρ‘Ρ‚Π½ΠΎΠΉ записью с Ρ€ΠΎΠ»ΡŒΡŽ sysadmin ΠΈΠ»ΠΈ db_owner

Если Π½ΠΈ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² Π½Π΅ ΠΏΠΎΠΌΠΎΠ³, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅:

  • πŸ”Œ Π‘Π΅Ρ‚Π΅Π²Ρ‹Π΅ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ β€” Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π² ΠΎΠ±Ρ€Ρ‹Π²Π΅ связи ΠΌΠ΅ΠΆΠ΄Ρƒ сСрвСром 1Π‘ ΠΈ Π‘Π£Π‘Π”.
  • πŸ“¦ Π–ΡƒΡ€Π½Π°Π»Ρ‹ Π‘Π£Π‘Π” β€” Π² Π»ΠΎΠ³Π°Ρ… SQL Server ΠΈΠ»ΠΈ PostgreSQL ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ подробности ΠΎ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ΅.
  • πŸ”„ Π Π΅ΠΏΠ»ΠΈΠΊΠ°Ρ†ΠΈΡŽ β€” Π² распрСдСлённых систСмах Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ связана с синхронизациСй Π΄Π°Π½Π½Ρ‹Ρ….
πŸ’‘

Если Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ рСгулярно, настройтС ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ Π΄ΠΎΠ»Π³ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· SQL Server Profiler ΠΈΠ»ΠΈ pgBadger для PostgreSQL.

Автоматизация снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Ρ‡Π΅Ρ€Π΅Π· скрипты

Для упрощСния Ρ€ΡƒΡ‚ΠΈΠ½Π½Ρ‹Ρ… Π·Π°Π΄Π°Ρ‡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ скрипты, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π±ΡƒΠ΄ΡƒΡ‚ автоматичСски ΠΈΡΠΊΠ°Ρ‚ΡŒ ΠΈ ΡΠ½ΠΈΠΌΠ°Ρ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ. НиТС β€” ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ для SQL Server ΠΈ PostgreSQL.

Π‘ΠΊΡ€ΠΈΠΏΡ‚ для SQL Server (PowerShell):

# ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ SQL Server

$server = "имя_сСрвСра"

$dbName = "имя_Π±Π°Π·Ρ‹_1Π‘"

$query = @"

SELECT session_id

FROM sys.dm_exec_sessions

WHERE is_user_process = 1

AND program_name LIKE '%1C%'

AND last_request_start_time < DATEADD(minute, -10, GETDATE())

"@

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ запроса ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ сСансов

Invoke-Sqlcmd -ServerInstance $server -Database "master" -Query $query | ForEach-Object {

Write-Host "Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ сСанс $($_.session_id)..."

Invoke-Sqlcmd -ServerInstance $server -Database "master" -Query "KILL $($_.session_id)"

}

"@

Π‘ΠΊΡ€ΠΈΠΏΡ‚ для PostgreSQL (Bash):

#!/bin/bash

DB_USER="postgres"

DB_HOST="localhost"

DB_NAME="имя_Π±Π°Π·Ρ‹_1Π‘"

Поиск ΠΈ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Ρ… процСссов

psql -U $DB_USER -h $DB_HOST -d $DB_NAME -c "

SELECT pid FROM pg_stat_activity

WHERE state = 'active'

AND application_name LIKE '%1C%'

AND query_start < NOW() - INTERVAL '10 minutes'

" | awk 'NR>2 {print $1}' | while read pid; do

echo "Π—Π°Π²Π΅Ρ€ΡˆΠ°Π΅ΠΌ процСсс $pid..."

psql -U $DB_USER -h $DB_HOST -d $DB_NAME -c "SELECT pg_terminate_backend($pid);"

done

Для Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·Π°Ρ†ΠΈΠΈ запускайтС скрипты ΠΏΠΎ Ρ€Π°ΡΠΏΠΈΡΠ°Π½ΠΈΡŽ Ρ‡Π΅Ρ€Π΅Π· cron (Linux) ΠΈΠ»ΠΈ Π—Π°Π΄Π°Ρ‡ΠΈ Windows. НС устанавливайтС слишком частый ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π» выполнСния (ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½ΠΎ β€” Ρ€Π°Π· Π² 15-30 ΠΌΠΈΠ½ΡƒΡ‚), Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ Π»ΠΎΠΆΠ½Ρ‹Ρ… срабатываний Π½Π° Π»Π΅Π³ΠΈΡ‚ΠΈΠΌΠ½Ρ‹Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: АвтоматичСскиС скрипты ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΡ€Π΅Ρ€Π²Π°Ρ‚ΡŒ критичСскиС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ мСсяца Π² 1Π‘:Π‘ΡƒΡ…Π³Π°Π»Ρ‚Π΅Ρ€ΠΈΠΈ). Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΈΡ… Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Π½Π΅Ρ€Π°Π±ΠΎΡ‡Π΅Π΅ врСмя ΠΈΠ»ΠΈ Π½Π° тСстовых сСрвСрах.

ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ

Если ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π½Π΅ ΠΏΠΎΠΌΠΎΠ³Π»ΠΈ, рассмотритС Π°Π»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ способы:

  • πŸ”„ ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΠΊ слуТб:
    • Для SQL Server: net stop MSSQLSERVER && net start MSSQLSERVER
    • Для PostgreSQL: systemctl restart postgresql (Linux) ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· Π‘Π»ΡƒΠΆΠ±Ρ‹ Windows
  • πŸ“‚ ВосстановлСниС ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ β€” Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° связана с ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….
  • πŸ”§ ИспользованиС ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ 1Π‘:
    • chdbfl.exe β€” для ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ ΠΈ исправлСния Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹
    • 1CV8.exe /IBConnectionTest β€” тСст ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΊ Π±Π°Π·Π΅
  • 🌐 ΠžΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ Π² ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ 1Π‘ β€” Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° связана с ошибкой ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² вСрсиях 8.3.20 ΠΈΠ»ΠΈ 8.3.22 Π±Ρ‹Π»ΠΈ Π±Π°Π³ΠΈ с транзакциями).

Для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠ³ΠΎ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° 1Π‘ (Π±Π΅Π· Π‘Π£Π‘Π”) Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° снимаСтся Ρ‡Π΅Ρ€Π΅Π· ΡƒΠ΄Π°Π»Π΅Π½ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° 1Cv8.lck Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π±Π°Π·Ρ‹. Однако этот ΠΌΠ΅Ρ‚ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Ссли Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π½Π΅ связана с ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Π΄Π°Π½Π½Ρ‹Ρ….

Как Π½Π°ΠΉΡ‚ΠΈ Ρ„Π°ΠΉΠ» 1Cv8.lck?

Π€Π°ΠΉΠ» Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ располагаСтся Π² ΠΊΠΎΡ€Π½Π΅Π²ΠΎΠΉ ΠΏΠ°ΠΏΠΊΠ΅ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π°Π·Ρ‹ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, C:\Bases\Π’Π°ΡˆΠ°Π‘Π°Π·Π°\1Cv8.lck). Π£Π΄Π°Π»ΠΈΡ‚Π΅ Π΅Π³ΠΎ Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ ΠΈΠ»ΠΈ Ρ‡Π΅Ρ€Π΅Π· ΠΊΠΎΠΌΠ°Π½Π΄Ρƒ:

del /F "C:\ΠΏΡƒΡ‚ΡŒ\ΠΊ\Π±Π°Π·Π΅\1Cv8.lck"

ПослС удалСния пСрСзапуститС 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅.

ΠŸΡ€ΠΎΡ„ΠΈΠ»Π°ΠΊΡ‚ΠΈΠΊΠ° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ Π² 1Π‘

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ риск Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ, слСдуйтС рСкомСндациям:

  • ⚑ ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ запросы β€” Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, массовоС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²) ΡƒΠ²Π΅Π»ΠΈΡ‡ΠΈΠ²Π°ΡŽΡ‚ шанс Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠŸΠ°ΠΊΠ΅Ρ‚Π½Ρ‹Π΅ задания Π² 1Π‘ для распрСдСлСния Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ.
  • πŸ•’ НастройтС Ρ‚Π°ΠΉΠΌ-Π°ΡƒΡ‚Ρ‹:
    • Π’ SQL Server: ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ remote query timeout (ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ 600 сСкунд)
    • Π’ PostgreSQL: statement_timeout Π² postgresql.conf
  • πŸ“Š ΠœΠΎΠ½ΠΈΡ‚ΠΎΡ€ΠΈΠ½Π³ β€” ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ инструмСнты Π²Ρ€ΠΎΠ΄Π΅ Zabbix ΠΈΠ»ΠΈ Grafana для отслСТивания Π΄ΠΎΠ»Π³ΠΈΡ… Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ.
  • πŸ”„ РСгулярноС обслуТиваниС:
    • ДСфрагмСнтация индСксов Π² SQL Server (REINDEX)
    • VACUUM ANALYZE Π² PostgreSQL
  • πŸ“š ΠžΠ±Π½ΠΎΠ²Π»ΡΠΉΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡƒ β€” Π² Π½ΠΎΠ²Ρ‹Ρ… вСрсиях 1Π‘ исправлСны ошибки, Π²Π΅Π΄ΡƒΡ‰ΠΈΠ΅ ΠΊ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°ΠΌ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² 8.3.23 ΡƒΠ»ΡƒΡ‡ΡˆΠ΅Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° с транзакциями).

Для ΠΊΠ»ΠΈΠ΅Π½Ρ‚-сСрвСрного Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π° 1Π‘ настройтС ΠΏΡƒΠ»Ρ‹ соСдинСний Π² кластСрС сСрвСров. Π­Ρ‚ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ количСство ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹Ρ… сСансов ΠΈ снизит Π½Π°Π³Ρ€ΡƒΠ·ΠΊΡƒ Π½Π° Π‘Π£Π‘Π”.

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Π’ конфигурациях с высокой Π½Π°Π³Ρ€ΡƒΠ·ΠΊΠΎΠΉ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Π‘:ERP ΠΈΠ»ΠΈ 1Π‘:Π£Π’ 11) Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹Π·Π²Π°Π½Ρ‹ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°ΠΌΠΈ ΠΏΡ€ΠΈ записи. Π’ этом случаС ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ‚ настройка Π Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Ρ… Π·Π°Π΄Π°Π½ΠΈΠΉ Π½Π° Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ Π² Π½Π΅ΠΏΠΈΠΊΠΎΠ²Ρ‹Π΅ часы.

FAQ: ЧастыС вопросы ΠΏΠΎ ΡΠ½ΡΡ‚ΠΈΡŽ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ 1Π‘

МоТно Π»ΠΈ ΡΠ½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π±Π΅Π· ΠΏΡ€Π°Π² администратора Π‘Π£Π‘Π”?

НСт, для выполнСния ΠΊΠΎΠΌΠ°Π½Π΄ KILL ΠΈΠ»ΠΈ pg_terminate_backend Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ ΠΏΡ€Π°Π²Π° sysadmin (SQL Server) ΠΈΠ»ΠΈ superuser (PostgreSQL). Π’ ΠΊΡ€Π°ΠΉΠ½Π΅ΠΌ случаС ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠΏΡ€ΠΎΠ±ΠΎΠ²Π°Ρ‚ΡŒ ΡΠ²ΡΠ·Π°Ρ‚ΡŒΡΡ с администратором сСрвСра ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡƒΡ‡Ρ‘Ρ‚Π½ΡƒΡŽ запись, ΠΎΡ‚ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ Π·Π°ΠΏΡƒΡ‰Π΅Π½ кластСр 1Π‘ (Ссли Ρƒ Π½Π΅Ρ‘ Π΅ΡΡ‚ΡŒ Π½ΡƒΠΆΠ½Ρ‹Π΅ ΠΏΡ€Π°Π²Π°).

Π§Ρ‚ΠΎ Π΄Π΅Π»Π°Ρ‚ΡŒ, Ссли послС снятия Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π±Π°Π·Π° 1Π‘ Π½Π΅ открываСтся?

Π’ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Ρ‹:

  • ΠŸΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… послС ΠΏΡ€ΠΈΠ½ΡƒΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ. Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ВСстированиС ΠΈ исправлСниС Ρ‡Π΅Ρ€Π΅Π· ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€.
  • ΠžΡΡ‚Π°Π»ΠΈΡΡŒ Π²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ„Π°ΠΉΠ»Ρ‹ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, 1Cv8.lck). Π£Π΄Π°Π»ΠΈΡ‚Π΅ ΠΈΡ… Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ.
  • Π‘Π±ΠΎΠΉ слуТбы 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ слуТбу ragent.

Если ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° сохраняСтся, восстановитС Π±Π°Π·Ρƒ ΠΈΠ· Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠΉ ΠΊΠΎΠΏΠΈΠΈ.

Как ΡΠ½ΡΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΡƒ Π² Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΌ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Π΅ 1Π‘?

Для Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΎΠΉ Π±Π°Π·Ρ‹ (Π±Π΅Π· Π‘Π£Π‘Π”):

  1. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ всС сСансы 1Π‘:ΠŸΡ€Π΅Π΄ΠΏΡ€ΠΈΡΡ‚ΠΈΠ΅.
  2. Π£Π΄Π°Π»ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» 1Cv8.lck Π² ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π΅ Π±Π°Π·Ρ‹.
  3. Если Ρ„Π°ΠΉΠ» Π½Π΅ удаляСтся, Π·Π°Π²Π΅Ρ€ΡˆΠΈΡ‚Π΅ процСсс 1cv8.exe ΠΈΠ»ΠΈ rmngr.exe Ρ‡Π΅Ρ€Π΅Π· ДиспСтчСр Π·Π°Π΄Π°Ρ‡.
  4. ΠŸΠ΅Ρ€Π΅Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ 1Π‘.

Если Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° связана с ΠΏΠΎΠ²Ρ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ΠΌ Ρ„Π°ΠΉΠ»Π° 1Cv8.1CD, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Ρƒ chdbfl.exe.

ΠŸΠΎΡ‡Π΅ΠΌΡƒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ° Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ дСнь Π² ΠΎΠ΄Π½ΠΎ ΠΈ Ρ‚ΠΎ ΠΆΠ΅ врСмя?

Π‘ΠΊΠΎΡ€Π΅Π΅ всСго, это связано с Ρ€Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹ΠΌΠΈ заданиями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π°ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ мСсяца, ΠΎΠ±ΠΌΠ΅Π½ Π΄Π°Π½Π½Ρ‹ΠΌΠΈ ΠΈΠ»ΠΈ Ρ€Π΅Π·Π΅Ρ€Π²Π½ΠΎΠ΅ ΠΊΠΎΠΏΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅). ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ настройки Π² ΠšΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ‚ΠΎΡ€Π΅ β†’ АдминистрированиС β†’ Π Π΅Π³Π»Π°ΠΌΠ΅Π½Ρ‚Π½Ρ‹Π΅ задания ΠΈ пСрСнСситС ΠΈΡ… Π½Π° Π΄Ρ€ΡƒΠ³ΠΎΠ΅ врСмя. Π’Π°ΠΊΠΆΠ΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½ΠΎΠΉ ΠΌΠΎΠ³ΡƒΡ‚ Π±Ρ‹Ρ‚ΡŒ Ρ„ΠΎΠ½ΠΎΠ²Ρ‹Π΅ Π·Π°Π΄Π°Ρ‡ΠΈ Π² ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, автоматичСскоС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΎΠ²).

МоТно Π»ΠΈ ΠΎΡ‚ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ Π² 1Π‘ ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ?

НСт, Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ β€” это ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌ Π‘Π£Π‘Π”, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Ρ…. Однако ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ ΠΈΡ… влияниС:

  • Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ оптимистичныС Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠΈ (Ссли это ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅Ρ‚ ваша конфигурация).
  • НастройтС ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ изоляции Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ Π² Π‘Π£Π‘Π” (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, READ COMMITTED SNAPSHOT Π² SQL Server).
  • Π Π°Π·Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄Π»ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π½Π° Π±ΠΎΠ»Π΅Π΅ ΠΌΠ΅Π»ΠΊΠΈΠ΅ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΈ.

ПолноС ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΎΠΊ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ ΠΏΠΎΡ‚Π΅Ρ€Π΅ Π΄Π°Π½Π½Ρ‹Ρ…!