এসকিউএল সার্ভারগুলি ক্র্যাশ করছে এমন এসকিউএল অনুসন্ধানগুলি কীভাবে ট্রেস করবেন


9

আমাদের একটি এসকিউএল সার্ভার ২০০৮ ডাটাবেস সার্ভার রয়েছে (এটি এমএস ফেইলওভার ক্লাস্টারিংয়ের অধীনে চলতে দেখা যায়, তবে আমি এখানে এটি প্রাসঙ্গিক বলে মনে করি না)।

আমাদের অ্যাপ্লিকেশনটি ডিবি অ্যাক্সেসের জন্য হাইবারনেট পরিচালনা করে এবং যেহেতু আমরা সম্প্রতি v3.1 থেকে 3.6 থেকে আপগ্রেড করেছি, আমরা নিয়মিত এসকিউএল সার্ভারের ক্রাশ (প্রতিটি 24-48 ঘন্টা, তবে কখনও কখনও আরও ঘন ঘন) সম্মুখীন হয়েছি।

প্রশ্নের নির্দিষ্ট সমস্যাটি মনে হয় স্মৃতি সম্পর্কিত। সার্ভার ক্র্যাশ হওয়ার ঠিক আগে (এবং এরপরে এটি ব্যর্থ হওয়া ক্লাস্টার ম্যানেজার দ্বারা স্বয়ংক্রিয়ভাবে পুনরায় চালু করা হবে), আমরা এই ত্রুটিগুলির একটি বোঝা পেয়েছি:

Error: 701, Severity: 17, State: 130.
There is insufficient system memory in resource pool 'internal' to run this query.

এছাড়াও মাঝে মধ্যে (তবে নিয়মিত) বার্তা

Error: 17300, Severity: 16, State: 1. (Params:). The error is printed in terse mode because there was error during formatting. Tracing, ETW, notifications etc are skipped.

ত্রুটি: 17312, তীব্রতা: 16, রাষ্ট্র: 1. (প্যারাম :)। ত্রুটিটি মোটা মোডে মুদ্রিত কারণ ফর্ম্যাটিংয়ের সময় ত্রুটি ছিল। ট্র্যাকিং, ইটিডাব্লু, বিজ্ঞপ্তি ইত্যাদি এড়িয়ে যায়।

আমি কিছু অ্যাপ স্তরের ত্রুটি যেমন পাচ্ছি

java.sql.SQLException: A time out occurred while waiting to optimize the query. Rerun the query.

এবং তারপরে উত্তেজনাপূর্ণ এবং সম্ভবত শিক্ষামূলক ত্রুটি:

The query processor ran out of internal resources and could not produce a query plan. 
This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions. 
Please simplify the query. If you believe you have received this message in error, contact Customer Support Services for more information.

সার্ভারে লোড পরিবর্তিত হয়নি তাই এর আগে মেমরিটি শেষ হয়ে যাওয়ার কোনও কারণ নেই যখন এটি আগে জিজ্ঞাসা প্রেরণে কোনও সমস্যা নির্দেশ করে না।

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

আমি অবশ্যই এসকিউএল সার্ভার প্রোফাইলার চালাতে পারি, তবে এটি শেষ হয়ে গেলে (এবং প্রচুর পরিমাণে ডেটা তৈরি করা - এটি একটি ব্যস্ত ওলটিপি ডাটাবেস), সমস্যাযুক্ত অনুসন্ধানগুলি অনুসন্ধান করার জন্য আমি কীভাবে ফিল্টার করব?

ধন্যবাদ!


1
সবকিছু কি একই সার্ভারে চলছে? অর্থ, অ্যাপ্লিকেশন সার্ভার, জাভা সহ, ডাটাবেস সার্ভারে চলছে?
15

1
@ সোয়াশেকের প্রশ্নের সাথে জোটবদ্ধভাবে: আপনার কি এসকিউএল সার্ভারের সর্বোচ্চ মেমরির জন্য একটি সুস্পষ্ট মান সেট আছে? আপনি কি বাহ্যিক মেমরির চাপকে অস্বীকার করেছেন?
মাইক ফাল

আপনি কি ব্ল্যাক বক্সের চিহ্নগুলি দেখার চেষ্টা করেছেন? তারা আপনাকে সঠিক দিকে নির্দেশ করতে পারে।
ডাটাগোড

আমি এই জিনিসটি কেবল আঘাত করেছি, এবং আমি যে দাগগুলি চালিয়ে রেখেছি তা প্রয়োগের দৃষ্টিকোণ থেকে একটি অলস ডাটাবেস দেখায়।
জোশুয়া

আপনি কি কোনও ফুলটেক্সট অনুসন্ধান ব্যবহার করেন? এছাড়াও, আপনি যে স্কেল সার্ভারটি চালাচ্ছেন তার সঠিক বিল্ড নং + সংস্করণটি কী?
কিন শাহ

উত্তর:


5

এসকিউএল সার্ভারে মেমরির ব্যবহার নিরীক্ষণ করতে DBCC MEMORYSTATUSকমান্ডটি কীভাবে ব্যবহার করবেন সে সম্পর্কে ধাপগুলি অনুসরণ করুন । প্রতিকার কর্মটি আপনার অনুসন্ধানের উপর নির্ভর করবে। আপনি মাইক্রোসফ্ট এসকিউএল সার্ভার মেমরি বোতলজাতীয়গুলি সনাক্ত করতে পারেন যা আরও অ্যাক্সেসযোগ্য।

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


ধন্যবাদ - আমি ইতিমধ্যে তাদেরকে দেখেছি, তবে সমস্যাটি হ'ল সার্ভারটি ঠিকঠাকভাবে কাজ করে এবং হঠাৎ হঠাৎ ধাক্কা খেয়ে যায়, এটি ধীরে ধীরে স্মৃতি থেকে যায় না। এটি অনলাইনে যে ত্রুটিটি পেয়েছি তা কোনও কিছুর থেকেও পরিষ্কার নয় "এই কোয়েরিটি চালানোর জন্য রিসোর্সপুলের অভ্যন্তরীণ 'সিস্টেমের পর্যাপ্ত মেমরি নেই" " আসলে এর অর্থ - ডিবিসিসি মেমোরিস্টাসের ফলাফলের সাথে সম্পর্কিত অভ্যন্তরীণ সংস্থান পুলটি কী?

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

0

Extended Eventsইভেন্টগুলি ব্যবহার করে আপনি কনফিগারেশনে যেতে চান বলে মনে হচ্ছে query_memory_grant_xxxxx

তথ্য লগ করার জন্য এটি আপনার জন্য সর্বোত্তম বিকল্প এবং স্টোর-আউট-সাইজ এসকিউএল ইঞ্জিন যা আপনি যে কোনও সময় পড়তে পারেন (আপনি লাইভ ডেটাও দেখতে পারেন), সার্ভার পুনরায় চালু হওয়ার বিপরীতে যখন সংরক্ষণ করা তথ্য মুছে ফেলা হবে না DMVs

দ্রুত সেটআপের পদক্ষেপগুলি ..

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