মূলত TriCore দ্বারা প্রকাশিত: ১১ এপ্রিল, ২০১৭
এই দুই-পার্ট ব্লগ পোস্ট সিরিজ Oracle® Database ভার্সন ১২.১.০.১ এবং ১২.১.০.২-এর নতুন পারফরম্যান্স-টিউনিং ফিচার কভার করে। পার্ট ১ পূর্বের ভার্সন নিয়ে আলোচনা করে।
Oracle Database 12.1.01-এ নতুন ফিচার
Oracle Database ভার্সন ১২.১.০.১-এ নিচের ফিচারগুলো নতুন:
- Real-Time Automatic Database Diagnostic Monitor (ADDM)
- Program Global Area (PGA)-র আকার সীমাবদ্ধ করার সাপোর্ট
- Active Session History (ASH) এনহ্যান্সমেন্ট
Real-Time ADDM
Real-Time ADDM আপনাকে একটি হাঙড ডেটাবেস অ্যানালাইজ এবং রেজলভ করতে সাহায্য করে ডেটাবেস রিস্টার্ট ছাড়া। এই সেকশনে Real-Time ADDM বিস্তারিত বর্ণনা করা হয়েছে।
Real-Time ADDM কানেকশন মোড
Real-Time ADDM Oracle Enterprise Manager (OEM)-এর মাধ্যমে ডেটাবেসের সাথে কানেক্ট করার জন্য দুটি কানেকশন মোডের একটিকে ব্যবহার করে। এটি কোন মোড ব্যবহার করবে সেটা ডেটাবেস স্টেটের ওপর নির্ভর করে:
-
নরমাল কানেকশন: এই মোডে, Real-Time ADDM Java Database Connectivity (JDBC) ব্যবহার করে ডেটাবেসের সাথে কানেক্ট করে। এই মোড কানেক্টিভিটি উপলব্ধ থাকলে ডেটাবেসের একটি ব্যাপক পারফরম্যান্স অ্যানালাইসিস পরিচালনা করে।
-
ডায়াগনোস্টিক কানেকশন: এই মোডে, Real-Time ADDM ডেটাবেসের সাথে একটি ল্যাচ-লেস কানেকশন সম্পাদন করে। এই মোড এক্সট্রিম হ্যাং সিচুয়েশনে উপযোগী যখন একটি নরমাল JDBC কানেকশন সম্ভব নয়।
Real-Time ADDM ট্রিগার
Real-Time ADDM প্রতি তিন সেকেন্ডে স্বয়ংক্রিয়ভাবে চলে এবং ইন-মেমরি ডেটা ব্যবহার করে ডেটাবেস পারফরম্যান্স ইস্যু ডায়াগনোজ করে। এটি স্বয়ংক্রিয়ভাবে একটি অ্যানালাইসিস ট্রিগার করে যখন এটি একটি পারফরম্যান্স সমস্যা সনাক্ত করে। এই ফাংশনালিটিতে নিচের ধাপগুলো জড়িত:
-
প্রতি তিন সেকেন্ডে, manageability monitor (MMON) প্রসেস লক বা ল্যাচ ছাড়া পারফরম্যান্স স্ট্যাটিস্টিক্স পেতে একটি অ্যাকশন পারফর্ম করে।
-
MMON প্রসেস এই স্ট্যাটিস্টিক্স চেক করে এবং Real-Time ADDM অ্যানালাইসিস ট্রিগার করে যদি এটি টেবিল ১-এ প্রদর্শিত ইস্যুগুলোর যেকোনো একটি খুঁজে পায়।
-
MMON স্লেভ প্রসেস রিপোর্ট তৈরি করে এবং এটি Automatic Workload Repository (AWR)-এ সংরক্ষণ করে। আরও তথ্যের জন্য, আপনি
DBA_HIST_REPORTSভিউ এবংDBA_HIST_REPORTS_DETAILSভিউ চেক করতে পারেন।
আপনি নিচের কমান্ডও ব্যবহার করতে পারেন ম্যানুয়ালি একটি রিপোর্ট জেনারেট করতে:
SQL> select dbms_addm.real_time_addm_report() from dual; টেবিল ১: পারফরম্যান্স ইস্যু এবং কন্ডিশন যা Real-Time ADDM অ্যানালাইসিস ট্রিগার করে
| ইস্যু | কন্ডিশন |
|---|---|
| High load | গড় সক্রিয় সেশন CPU কোরের সংখ্যার ৩x চেয়ে বেশি |
| I/O bound | সক্রিয় সেশনে I/O প্রভাব সিংগেল ব্লক রিড পারফরম্যান্সের উপর ভিত্তি করে |
| CPU bound | সক্রিয় সেশন মোট লোডের ১০% চেয়ে বেশি এবং CPU ইউটিলাইজেশন ৫০% চেয়ে বেশি |
| Over-allocated memory | মেমরি অ্যালোকেশন ফিজিক্যাল মেমরির ৯৫% চেয়ে বেশি |
| Interconnect bound | সিংগেল ব্লক ইন্টারকানেক্ট ট্রান্সফার টাইমের উপর ভিত্তি করে |
| Session limit | সেশন লিমিট ১০০%-এর কাছে |
| Process limit | প্রসেস লিমিট ১০০%-এর কাছে |
| Hung session | হাঙ সেশন মোট সেশনের ১০% চেয়ে বেশি |
| Deadlock detected | যেকোনো ডেডলক সনাক্ত করা হয়েছে |
সোর্স: Database Performance Tuning Guide, Chapter 7: Automatic Performance Diagnostics: Real-Time ADDM Connection Modes
Real-Time ADDM ট্রিগার কন্ট্রোল
স্বয়ংক্রিয় ট্রিগারগুলো খুব বেশি সিস্টেম রিসোর্স খরচ না করে তা নিশ্চিত করতে, Real-Time ADDM নিচের কন্ট্রোলগুলো ব্যবহার করে:
-
রিপোর্টের মধ্যে সময়ांतর: যদি একটি স্বয়ংক্রিয় ট্রিগার গত পাঁচ মিনিটে একটি Real-Time ADDM রিপোর্ট তৈরি করেছে, তবে কোনো নতুন রিপোর্ট জেনারেট হয় না।
-
Oracle Real Application Clusters (RAC) কন্ট্রোল: স্বয়ংক্রিয় ট্রিগার ডেটাবেস ইনস্ট্যান্সের জন্য লোকাল। Oracle RAC-এর জন্য, একবারে শুধু একটি ডেটাবেস ইনস্ট্যান্স Real-Time ADDM রিপোর্ট তৈরি করতে পারে।
-
পুনরাবৃত্ত ট্রিগার: যেকোনো ইস্যুর জন্য একটি স্বয়ংক্রিয় ট্রিগারের ১০০% বা তার বেশি প্রভাব থাকতে হবে পূর্বের রিপোর্টের চেয়ে যেটির একই ট্রিগারিং ইস্যু ছিল গত ৪৫ মিনিটের মধ্যে।
-
নব شناسায়িত ইস্যু: যদি একটি নতুন ইস্যু সনাক্ত হয় যা গত ৪৫ মিনিটে ইতিমধ্যে সনাক্ত করা হয়নি, তবে একটি নতুন রিপোর্ট জেনারেট হয়।
PGA-এর আকার সীমাবদ্ধ করা
অতিরিক্ত PGA ব্যবহার হাই রেটের সোয়াপিং-এ নিয়ে যেতে পারে। যখন এটা হয়, সিস্টেম অনরেসপন্সিভ এবং অনস্টেবল হতে পারে। যদি এটা হয়, তবে PGA_AGGREGATE_LIMIT ইনিশিয়ালাইজেশন প্যারামিটার ব্যবহার করে সামগ্রিক PGA ব্যবহার সীমাবদ্ধ করার কথা বিবেচনা করুন।
নিচের সেকশনে বর্ণনা করা হয়েছে কীভাবে PGA_AGGREGATE_LIMIT ইনিশিয়ালাইজেশন প্যারামিটার ব্যবহার করে Oracle Database 12c R1 (12.1.0.1) এবং উচ্চতরে PGA-এর আকার সীমাবদ্ধ করতে হয়।
PGA_AGGREGATE_LIMIT প্যারামিটার সম্পর্কে
PGA_AGGREGATE_LIMIT প্যারামিটারে ডিফাইন করা ভ্যালু এক্সিড করলে, Oracle Database সেই সেশন বা প্রসেসগুলো অ্যাবোর্ট বা টার্মিনেট করে যেগুলো সবচেয়ে বেশি আনটিউনেবল PGA মেমরি কনসাম করছে। Oracle Database টার্মিনেশন নিচের ক্রমে সম্পাদন করে:
- সর্বোচ্চ আনটিউনেবল PGA মেমরি কনসাম করা সেশনগুলোর কলস অ্যাবোর্ট করে।
- যদি PGA মেমরি ইউজ এখনও
PGA_AGGREGATE_LIMIT-এর ওপর থাকে, তবে Oracle Database সেই সেশন এবং প্রসেসগুলো টার্মিনেট করে যেগুলো সবচেয়ে বেশি আনটিউনেবল PGA মেমরি কনসাম করছে।
Oracle Database প্যারালেল কোয়ারিগুলো একটি একক ইউনিট হিসেবে বিবেচনা করে। ডিফল্টভাবে, PGA_AGGREGATE_LIMIT প্যারামিটার সেট করা থাকে ২ GB, PGA_AGGREGATE_TARGET ভ্যালুর ২০০%, অথবা ৩ MB গুণ PROCESSES প্যারামিটারের ভ্যালু - এই তিনটির মধ্যে जो সবচেয়ে বড়। কিন্তু এটি ১২০% ফিজিক্যাল মেমরি সাইজ থেকে মোট System Global Area (SGA) সাইজ বাদ দিয়েগুলোকে এক্সিড করে না।
PGA_AGGREGATE_LIMIT প্যারামিটার সেট করা
PGA_AGGREGATE_LIMIT ইনিশিয়ালাইজেশন প্যারামিটার ডাইনামিক্যালি সেট করা যায়। ডেটাবেস রিস্টার্ট করার প্রয়োজন নেই। আপনি PGA_AGGREGATE_LIMIT-এর ভ্যালু সেট করতে পারেন चाहে Oracle Database অটোমেটিক মেমরি ম্যানেজমেন্ট ব্যবহার করছে কিনা।
PGA_AGGREGATE_LIMIT প্যারামিটার পরিবর্তন করা
PGA_AGGREGATE_LIMIT ইনিশিয়ালাইজেশন প্যারামিটারকে বাইটের সংখ্যায় একটি নতুন ভ্যালুতে সেট করুন। ভ্যালুকে 0 সেট করলে PGA মেমরির ওপর হার্ড লিমিট নিষ্ক্রিয় হয়।
যখন PGA_AGGREGATE_LIMIT এক্সিড হয়, Oracle Database নিচের অ্যাকশনগুলো সম্পাদন করে:
- সবচে বেশি আনটিউনেবল মেমরি ব্যবহার করা সেশনগুলোর সাথে জড়িত কলস অ্যাবোর্ট করে।
- যদি মোট PGA মেমরি ইউজ এখনও লিমিটের ওপর থাকে, তবে সবচেয়ে বেশি আনটিউনেবল মেমরি ব্যবহার করা সেশনগুলো টার্মিনেট করে।
sys.processes এবং ব্যাকগ্রাউন্ড প্রসেস job queue প্রসেস ছাড়া প্রভাবিত হয় না। বরং, যদি তারা সবচেয়ে বেশি আনটিউনেবল মেমরি ব্যবহার করে, তবে তারা পিরিওডিক্যালি তাদের PGA ইউজেজের একটি সংক্ষিপ্ত সারাংশ ট্রেস ফাইলে লেখে।
ASH এনহ্যান্সমেন্ট
Oracle 12c থেকে, আপনি ASH ডেটা ভিজ্যুয়ালাইজেশন অ্যাক্সেস করতে পারেন ASH Analytics নামে একটি নতুন OEM পৃষ্ঠার মাধ্যমে। এই পৃষ্ঠাটি আপনাকে লজিক্যাল ডাইমেনশনে ড্রিল ডাউন করতে সক্ষম করে। আপনি রিপোর্টগুলো অন্য ইউজারদেরও পাঠাতে পারেন যারা অফলাইনে সেগুলো দেখতে পারেন।

ছবির সোর্স: OCP 12C – Emergency Monitoring, Real-Time ADDM
উপসংহার
এই নতুন ফিচারগুলো সম্মিলিতভাবে আপনাকে Oracle Database 12c Release 1-এর জন্য ডেটাবেস পারফরম্যান্স ট্রাবলশুট এবং এনহ্যান্স করতে সাহায্য করে। এই সিরিজের পার্ট ২ Oracle Database 12.1.0.2-এ পারফরম্যান্স টিউনিং-এ আরও নতুন ফিচার এবং পরিবর্তন কভার করে।
ফিডব্যাক ট্যাব ব্যবহার করে যেকোনো মন্তব্য বা প্রশ্ন করুন।
রেফারেন্স
নিচের সোর্সগুলো এই ব্লগ পোস্টের জন্য রেফারেন্স হিসেবে ব্যবহার করা হয়েছে:
-
Database Performance Tuning Guide, Chapter 7: Automatic Performance Diagnostics: Real-Time ADDM Connection Modes
-
Database Performance Tuning Guide, Chapter 7: Automatic Performance Diagnostics: ADDM Analysis Results