"টাস্ক ম্যানেজার" প্রক্রিয়াটি একটি একক-ব্যবহারকারী মোড ডাটাবেস গ্রহণ করছে। এটা কি?


13

এটি আমি স্ট্যাকওভারফ্লোতে যে প্রশ্নটি চেয়েছিলাম তার সদৃশ , তবে আমাকে পরামর্শ দেওয়া হয়েছিল, এখানে কারও কী ঘটছে সে সম্পর্কে আরও ভাল ধারণা থাকতে পারে।

আমি যখন একটি একক ব্যবহারকারী মোডে এসকিউএল সার্ভারকে আপগ্রেড করি তখন। নেট স্কেল সংযোগ ব্যবহার করে, এসকিউএল কোডটি কার্যকর করা হচ্ছে এমন সময় অন্য কোনও অ্যাপ্লিকেশন কোনওভাবে ডেটাবেজে লগ ইন করে এবং আমার প্রক্রিয়াটি সরিয়ে দেয়। স্কেল সংযোগ কোনওভাবেই বন্ধ বা নিষ্পত্তি হয় না। তবে অন্য কিছু অ্যাপ্লিকেশনটি কোনওভাবে ডাটাবেসের সাথে সংযুক্ত হয়ে যায় এবং এটি আমার সংযোগটিকে সরিয়ে দেয়।

আমি যখন sp_Wo চালাই, আমি দেখতে পেতাম যে একটি প্রক্রিয়া যা ডাটাবেসের নিয়ন্ত্রণ নিয়েছিল তা হ'ল কমান্ড = "টাস্ক ম্যানেজার"।

যে কোনও ব্যক্তি আমাকে বলতে পারেন যে এই প্রক্রিয়াটি কী, এর উদ্দেশ্য কী এবং কীভাবে বিশ্বে এটি একটি ডাটাবেসে উঠতে পারে, যা একক ব্যবহারকারী মোডে রয়েছে এবং সেখানে একটি সক্রিয় সংযোগ রয়েছে?


আপনি কি এই প্রক্রিয়া চলাকালীন এসকিউএল এজেন্ট বন্ধ? "টাস্ক ম্যানেজার" (কম স্পিড সংখ্যা সহ) নামক কার্যগুলি অভ্যন্তরীণ প্রক্রিয়াগুলি।
জন সেগেল

@ জনসিগেল নো, আমি করিনি। আপনি কি বলছেন এসকিউএল এজেন্ট একটি আসল প্রক্রিয়া যা টাস্ক ম্যানেজারটি চালায়?
গ্যালেন্টস

আমি 100% নিশ্চিত নই। আমি যা জানি তা এসকিউএল এজেন্টটি চলার সাথে সাথে সংযোগ স্থাপন করে এবং সার্ভারটি একক-ব্যবহারকারী মোডে থাকা অবস্থায় এটি আপনাকে লগ ইন করা থেকে বাধা দিতে পারে। গতকাল আমার এই সমস্যা হয়েছিল, এবং এসকিউএল এজেন্ট বন্ধ করা এটি ঠিক করে দিয়েছে।
জন সেগেল

2
কেবল পরিষ্কারভাবে বলা যায়, এটি একই টাস্ক ম্যানেজার নয় যা আপনি উইন্ডোজগুলিতে প্রক্রিয়া এবং সিস্টেমের কার্যকারিতা দেখতে ব্যবহার করেন।
অ্যারন বারট্র্যান্ড

উত্তর:


10

আজ একই সমস্যা ছিল, আপনি যদি নিজের AUTO_UPDATE_STATISTICS ASYNC অফ না রেখে থাকেন তবে আপনি আপনার ডাটাবেসটিতে প্রবেশ করতে পারবেন না, আপনি আপনার ডাটাবেস অফলাইনে রেখে সমাধান করতে পারেন can জেনে রাখা জরুরী যে আপনাকে আপনার ডেডলক অগ্রাধিকার উচ্চে সেট করতে হবে, অন্যথায় আপনি আদেশ থেকে অচল হয়ে যাবেন। একক ব্যবহারকারী মোড থেকে বেরিয়ে আসার জন্য নিম্নলিখিত কমান্ডগুলি ব্যবহার করুন

SET DEADLOCK_PRIORITY HIGH

ALTER DATABASE [YourDBName] SET OFFLINE WITH ROLLBACK IMMEDIATE

অনুসরণ করেছে

SET DEADLOCK_PRIORITY HIGH

ALTER DATABASE [YourDBName] SET ONLINE WITH ROLLBACK IMMEDIATE

অনুসরণ করেছে

SET DEADLOCK_PRIORITY HIGH

ALTER DATABASE [YourDBName] SET MULTI_USER WITH ROLLBACK IMMEDIATE

3
এই জন্য আপনাকে অনেক ধন্যবাদ। তবে আমি দেখতে পেয়েছি যে অফলাইন / অনলাইন পদক্ষেপের প্রয়োজন নেই; SET MULTIUSER WITH ROLLBACK IMMEDIATEশুধু নিজে কাজ করেন যখন SET DEADLOCK_PRIORITY HIGHপ্রথম করা হয়েছিল
রস প্রেস

6

আমি মনে করি অবশেষে রহস্যটি সমাধান হয়ে গেছে :

আপনি SINGLE_USER এ ডাটাবেস সেট করার আগে, AUTO_UPDATE_STATISICS_ASYNC বিকল্পটি অফ করা আছে তা যাচাই করুন। অনে সেট করা থাকলে, পরিসংখ্যান আপডেট করার জন্য ব্যবহৃত পটভূমি থ্রেড ডাটাবেসের বিরুদ্ধে একটি সংযোগ নেয় এবং আপনি একক-ব্যবহারকারী মোডে ডাটাবেস অ্যাক্সেস করতে পারবেন না।


6

"সিস্টেম_হেলথ" বর্ধিত ইভেন্টগুলির ট্রেস বন্ধ করুন। এটি নীচে তালিকাভুক্ত করা হবে

SQL Server Management Studio
-> [ServerName]
-> Management
-> Extended Events
-> Right-Click on 'System_health'
-> Hit Stop Session

একবার ব্লকার স্থির হয়ে গেলে, সেশনটি পুনরায় চালু করুন।


যদিও অন্য উত্তরটি কেন এটি ঘটে তা ব্যাখ্যা করে, এটি সমাধান করার উপায়টি ব্যাখ্যা করে।
বোরিস কলেনস

আমার জন্য নিখুঁত রেজোলিউশন। এটি প্রত্যাশার মতো কাজ করেছে
ইম 88

0

আপনাকে একক ব্যবহারের মোড শুরুর আগে 'এসকিউএল এজেন্ট' অক্ষম করতে হবে। এজেন্ট এজেন্ট হিসাবে একক ব্যবহারকারীর অ্যাক্সেস দখল করবে grab একক ব্যবহারকারীকে স্মরণে রাখার জন্য আপনি সংযুক্ত হওয়ার প্রথম ব্যবহারকারী / প্রক্রিয়া নন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.