Uzoq SQL ishi: VPN uzilganda uni ishlashda davom ettiring
Uzilgan VPN mijoz xatosi javob bera olmaydigan savolni qoldiradi: ish tasdiqlandimi? Uzoq ishlarni barqaror egaga topshiring va qayta urinishdan oldin solishtiring.
VPN indeksni qayta qurish boshlangandan yigirma daqiqa o'tib uziladi, SQL mijozi buzilgan ulanishni ko'rsatadi va ayon savolning o'sha xatoda javobi yo'q. Bayonot tugadimi, orqaga qaytarildimi yoki sizsiz ishlashda davom etdimi? Qayta ulanib qayta yuborish uch variantning eng yomoni, chunki u bitta noaniq natijani ikkita mumkin bo'lgan natijaga aylantiradi. Keyingi oynadan oldin ishni barqaror egasi bor narsaga ko'chiring.
Ulanish xatosi sizga nima demaydi
Mijoz tomonidagi xato mijozni tasvirlaydi. U soket yopilganini xabar qiladi, server tranzaksiya bilan nima qilganini emas. Bayonot hali ham bajarilayotgan bo'lishi mumkin, aloqa uzilishidan bir lahza oldin tasdiqlangan bo'lishi mumkin yoki sessiyasi tozalanganda orqaga qaytarilgan bo'lishi mumkin. Uchalasi ham noutbukingizda bir xil xabar beradi.
Buni faqat serverning holati hal qila oladi. Biror narsaga qaror qilishdan oldin u yerga qarang.
Ishni server tomonidagi egaga topshiring
Inson nazoratini talab qilmaydigan ish uchun ma'lumotlar bazasi xosti bajarishga ega bo'lsin. SQL Server Agent vazifalarni so'rov bo'yicha yoki jadval bo'yicha ishga tushiradi va har bir ishga tushirishni qayd etadi, shuning uchun vazifaning hayot sikli VPN sessiyangizdan mustaqil. Vazifa identifikatoriga aynan vazifa talab qiladigan ruxsatlar kerak, administratorning to'liq interaktiv konteksti emas. Shunda noutbuk ishni boshlaydi va natijalarni o'qiydi, uni tirik ushlab turadigan jarayon bo'lish o'rniga.
EXEC msdb.dbo.sp_start_job @job_name = N'nightly-customer-reindex';Agent mavjudligi siz joylashtirgan nashr va xizmatga bog'liq. Bu mexanizm hamma joyda bor deb taxmin qilish o'rniga platformangiz haqiqatda taqdim etadigan mexanizmdan foydalaning.
Ma'lumotlar bazasiga yaqin sakrash xosti yo'lni qisqartiradi va uni saqlash arziydi, lekin u egalik savolini o'zgartirmaydi. Tarmoq tugaganda sessiya ham tugaydi. Uni kuzatish uchun ishlating, ishni tirik ushlab turadigan narsa sifatida emas.
Keyingi sessiya o'qiy oladigan yozuv qoldiring
Vazifa nomi yoki identifikatorini, maqsadli ma'lumotlar bazasini va kutayotgan natijani yozib qo'ying. Aynan o'sha yozuv boshqa sessiyaga yoki boshqa odamga xato javob bera olmagan savolga javob berish imkonini beradi. Usiz yangilanish haqida noaniq xotira qoladi va tekshirishning yo'li bo'lmaydi.
EXEC msdb.dbo.sp_help_jobhistory @job_name = N'nightly-customer-reindex';Tarix har bir qadam natijasi va vaqtini ko'rsatadi, bu bitta muvaffaqiyat bayrog'idan foydaliroq. Ma'lumotni o'zgartiradigan vazifalar uchun ilovaning o'z tekshiruvini ham qo'shing: qatorlar soni, nazorat summasi yoki vazifa yozgan holat qatori. Ikki mustaqil yozuvgina qayta urinishni xavfsiz qiladi va qayd etilgan vazifa tarixi ularning birinchisidir.
Qayta yuborishdan oldin solishtiring
Kuzatuvchi ulanish yo'qolganda, boshqasini boshlashdan oldin mavjud ishga tushirishni toping. Uning qadamlar natijalarini o'qing va ish tasdiqlanganmi, qisman bajarilganmi yoki umuman boshlanmaganmi aniqlang. Shundan keyingina ish oqimi belgilagan qayta urinish qoidasini qo'llang, chunki ko'r-ko'rona qayta yuborish yukni ikki barobar ko'paytirishi yoki ikkinchi marta yarim yo'lda muvaffaqiyatsiz bo'lishi mumkin.
Barqaror egasi va tekshiriladigan natijani saqlang, shunda qisqa kirish nosozligi taxmin emas, noqulaylikka aylanadi. Bu butun dizayn maqsadi: ish uni so'ragan ulanishdan uzoqroq yashashi kerak.