اوراكل
محتویات
اوراکل چیست؟
پایگاه داده اوراکل (Oracle Database) در صنعت کامپیوتر به مجموعهای از اطلاعات گفته میشود که توسط ‹‹سامانه مدیریت پایگاه دادههای اوراکل» اداره میشوند. این محصول توسط شرکت اوراکل تولید شدهاست.
معماری اصلی نرمافزار اوراکل در ویرایشهای ۵ و ۸ تغییرات عمدهای داشت. اوراکل پایگاه داده توزیع شدهای است که با سیستمعاملهای متفاوتی میتواند کار کند.
مدیریت منابع پایگاه داده اوراکل
مدیر منابع پایگاه داده یا Oracle Redource Manager با کنترل زمانبندی اختصاص منابع و اجرای آنها در پایگاه داده به اولویتبندی و مدیریت توزیع منابع میان Sessionهای متصل به پایگاه داده میپردازد. در نسخههای قبل از اوراکل 11g مدیر منابع پایگاه داده تنها میتوانست پردازنده سیستم را مدیریت کند. اکنون در نسخه جدید، مدیر منابع میتواند مدیریت واحد I/O (سرنام input/output) را نیز در اختیار داشتهباشد.
اجازه بدهید نگاهی داشتهباشیم به بعضی از ویژگیهای جدید مدیر منابع در اوراکل 11g که به شما کمک میکند تا کارایی رسانه ذخیرهسازی یا Storage متصل به سیستم را ارزیابی کرده و میزان I/O را به ازای هر کاربر محدود کنید.
سپس آموختههای خود را با پاسخ به چند سؤال ساده در معرض آزمایش قراردهید، سؤالاتی که ممکن است مشابه آن را در آزمون Oracle Database 11g: New Features for Administructors مشاهدهکنید.
آزمون فوق برای ارتقای دارندگان مدرک Oracle Certified Professional به نسخه 11g استفاده میشود.
کنترل و تعیین میزان مجاز I/O
قابلیت تعیین میزان مجاز I/O به شما امکان میدهد تا کارایی Storage متصل به سیستم را ارزیابی کرده و مشخص کنید که آیا مشکلات ناشی از ضعف احتمالی در کارایی پردازشهایی با ماهیت I/O به پایگاه داده مربوط میشود یا به Storage. تعیین میزان مجاز I/O از کتابخانههای نرمافزاری برای تولید I/O در فایلهای پایگاه داده استفاده میکند و سپس با نظارت بر نتیجه درخواست، از وضعیت سیستم آگاه میشود.
با استفاده از این قابلیت، میتوان شاخصههای اندازهگیری I/O مانند میزان I/O در هر ثانیه (IOPS)، مقدار حجم براساس مگابایت بر ثانیه (MBps) و تأخیر در انجام پردازشهای I/O را تعیین و مشخص کرد.
شما میتوانید در Oracle Enterprise Manager به روش CALIBRATE_IO که در بسته DBMS_RESOURCE_MANAGER قرار دارد و به عنوان ابزار تعیین میزان مجاز برای I/O به کار میرود، دسترسی داشتهباشید. کد فهرست1 نحوه استفاده از روش CALIBRATE_IO را نشان میدهد.
رسمالخط و نحوه استفاده از روش CALIBRATE_IO
روش CALIBRATE_IO دو پارامتر ورودی دارد:
- پارامتر اول NUM_PHYSICAL_DISKS (تعداد دیسکهای فیزیکی)
- پارامتر دوم MAX_LATENCY (حداکثر تأخیر در دسترسی به دیسک به واحد میلیثانیه).
این روش همچنین سه پارامتر خروجی دارد:
MAX_IPS یا حداکثر تعداد عملیات I/O در هرثانیه؛ MAX_MBPS، حداکثر حجم تبادل داده به مگابایت در ثانیه و ACTUAL_LATENCY یا میزان تأخیر مشاهده شده در زمان انجام بررسیها.
با اجرای پرسوجو روی دیدکاربری یا View با نام V$IO_CALIBRATION_STATUS میتوانید در طول دوره اجرای فرآیند تعیین میزان مجاز I/O، وضعیت اعمال درخواست فوق را مشاهده کرده و بعد از اتمام فرآیند تعیین میزان مجاز I/O نتایج را از طریق جدول DBA_RSRC_IO_CALIBRATE مشاهده کنید.
سوال
سؤال: کدام دو جمله فرآیند تعیین و تنظیم میزان مجاز I/O را به درستی توضیح میدهد؟
الف- این ابزار برای ارزیابی کارایی I/O در سطح رسانه ذخیرهسازی و سرور پایگاه داده به کار میرود.
ب - این ابزار از روش CALIBRATE_IO برای جمعآوری اطلاعات استفاده میکند.
پ - زمان اجرای روش CALIBRATE_IO همیشه ثابت است و با تعداد دیسکها ارتباطی ندارد.
ت - این روش از I/Oها به روش ترتیبی استفادهمیکند و برای این کار از فایلهای Datafile اوراکل به منظور دسترسی به رسانه ذخیرهسازی استفاده میکند.
جواب:
- گزینههای الف و ب، درست هستند.
ابزار تعیین میزان مجاز I/O برای تحقیق درباره کارایی I/O در سطح رسانهذخیرهسازی و سرورهای پایگاه داده از CLAIBRATE_IO استفاده میکند.
- گزینه پ نادرست است، زیرا زمان اجرا به تعداد دیسکها و زیررسانه ذخیرهسازی بستگی دارد و متناسب با تعداد نودهای پایگاه داده افزایشمییابد.
- گزینه ت نادرست است، زیرا برخلاف سایر ابزارهای متفرقه که درخواستهای I/O را به صورت ترتیبی ارسال میکنند، قابلیت تعیین میزان مجاز I/O این کار به صورت موازی و تصادفی انجام میدهد و برای دسترسی به رسانه ذخیرهسازی از Datafileهای اوراکل استفاده میکند.
سؤال: پیشنیازهای اجرای فرآیند تعیین میزان مجاز I/O چیست؟
الف- وضعیت I/O ناهمزمان باید غیرفعال شدهباشد.
ب - مؤلفه TIMED_STATISTICS باید TRUE شدهباشد.
پ - کاربر باید مجوز SYSDBA داشته باشد.
ت - مؤلفه TIMED_STATISTICS باید FALSE شدهباشد.
جواب:
- گزینههای ب و پ، درست هستند.
زمان تأخیر تنها زمانی که TIMED_STATISTICS با مقدار TRUE تنظیمشدهباشد، اندازهگیریمیشود و کاربر باید قبل از اجرای این روش، مجوز SYSDBA را داشتهباشد.
- گزینه الف نادرست است، زیرا I/O ناهمزمان باید قبل از اجرای این روش فعال شدهباشد، در غیر این صورت پیام خطای زیر بازگردانده میشود:
ORA-56708: Could not find any datafiles with asynchronous i/o capability
ایجاد محدودیت I/O به ازای هر Session ارتباطی
در نسخههای قبلی پایگاه داده اوراکل، برای مدیران پایگاه داده این امکان فراهم شدهبود تا حداکثر زمانی را که یک ارتباط میتوانست فعال باشد تا یک رویداد خاص اتفاق بیافتد، مشخص کنند، بهعنوان مثال، بعد از مدت زمان معینی به ازای هر ارتباط برقرار شده، فراخوانی را قطع و ارتباط یا Session ایجاد شده را به اصطلاح kill کنند یا آنکه در این موارد Session را به یک گروه مشتریان جدید ببرند.
در پایگاه داده اوراکل 11g شما میتوانید مدیر منابع پایگاه داده را طوری تنظیم کنید که به ازای Sessionهایی که از محدوده مجاز مصرف منابع I/O تخطی میکنند، کارها و پردازشهای خاصی انجام دهد.
شما میتوانید حداکثر تعداد درخواستهای I/O یا حداکثر حجم I/O را به ازای هر درخواست مشخص کنید تا در صورت گذر از این محدودیت، Session به یک گروه مصرفکننده جدید انتقال یابد یا آنکه به اصطلاح kill شود.
این قابلیت دو کاربرد دارد:
- برای شناسایی پرسوجوهای کنترلنشده
- برای انتقال Sessionهایی با فراخوانیهای زمانبر به گروههای مصرفکننده با اولویت کمتر.
زمانی که شما یک برنامه مدیریت منابع ایجاد میکنید، میتوانید از طریق آرگومان switch_io_megabytes، محدودیتهای روی منابع I/O را مشخص کنید.
این آرگومان مقدار I/O (در واحد مگابایت) به ازای هر Session را قبل از انجام یک فرآیند خاص مشخص میکند. همچنین آرگومان switch_io_reqs نیز وجود دارد که تعداد درخواستهای I/O که هر Session میتواند قبل از انجام یک فرآیند خاص ایجاد کند، مشخص میکند.
در هر دو مورد، مقدار پیشفرض، NULL است که به معنای تعداد درخواست نامحدود است.
سؤال:
شما دستور فهرست دو را اجرا کردهاید، مدیر منابع پایگاه داده چه زمانی و به ازای کدام Sessionها، گروه مصرفکننده منابع را از oltp_group به batch_group انتقال میدهد؟
الف- این برنامه به ازای تمام Sessionهایی که زمان استفاده آنها بیش از 180 ثانیه باشد، آن Session را به یک گروه مصرفکننده منابع دیگر میبرد.
ب - این برنامه Session کنونی را در صورتی که بیش از 180 ثانیه به طول انجامد و تعداد درخواستهای I/O آن بیش از سههزار مورد باشد، از حجم I/O درخواستی آن که بیش از 2048 مگابایت میشود به یک گروه مصرفکننده منابع دیگر میبرد.
پ - این برنامه همه Sessionهایی را که بیش از 180 ثانیه فعال باشند و تعداد درخواستهای I/O آنها را که بیش از سههزار مورد باشد و حجم I/O درخواستی آن را که بیش از 2048 مگابایت میشود، به یک گروه مصرفکننده منابع دیگر میبرد.
ت - این برنامه در صورتی که فراخوانی انجام شده در حال حاضر، بیش از 180 ثانیه به طول انجامد و تعداد درخواستهای I/O آن بیش از سههزار مورد باشد و حجم I/O درخواستی آن بیش از 2048 مگابایت شود، Session کنونی را به یک گروه مصرفکننده منابع دیگر میبرد.
جواب:
گزینه ت درست است.
این سوییچ تنها به ازای فراخوانی کنونی در همین Session رخ میدهد. مدیریت منابع پایگاه داده، این فراخوانی را از OLTP_GROUP به BATCH_GROUP سوییچ میکند؛ به شرطی که این فراخوانی به ازای هر یک از مؤلفههای کنترلی، از حد مجاز آن مؤلفه عبور کند، که شامل زمان سپریشده، تعداد درخواستهای I/O یا میزان حجم I/O است.
انتقال از گروه oltp_group به batch_group
سؤال: کدام جمله درباره محدود کردن I/O به ازای هر Session درست است؟
الف- این قابلیت امکان جابهجا کردن خودکار گروه مصرفی را براساس آستانه و محدودیتهای تعریفشده برای I/O فراهم میکند.
ب - این قابلیت میتواند یک گروه را kill یا Abort کند و برای تصمیمگیری میتواند هر ترکیبی از سه گزینه زمان سپریشده، تعداد درخواستها و حجم I/O ناشی از درخواستها (به مگابایت) را مبنا قرار دهد.
پ - مانع استفاده Session از منابع I/O بیشتر شده، اما آن را به گروه کاربری دیگر منتقل نمیکند یا آن را نمیکشد.
ت - این قابلیت تنها زمانی که با محدودیت منابع مواجه باشیم و Session سعی کند تا از حد مجاز خود عبور کند، مانع آن میشود.
جواب:
- گزینههای الف و ب درست هستند.
با استفاده از پارامترهای switch_io_reqs، switch_io_megabytes و switch_time میتوانید میزان استفاده از I/O را به ازای هر Session کنترل کرده و آن را به گروه کاربری دیگر منتقل کنید یا آنکه در صورتی که Session از یک آستانه مجاز عبور کرد میتوانید آن را kill یا abort کنید.
- گزینه پ نادرست است، زیرا محدودکردن Session یا آن را به گروه مصرفکننده (consumer group) دیگری میبرد یا آن را به اصطلاح kill میکند، اما فعالیت Session در همین گروه را متوقف نمیکند.
- پاسخ ت نادرست است، زیرا مصرف I/O به ازای هر Session محدود میشود بدون آنکه حجم منابع در دسترس سیستم در نظر گرفته شود.
وضعیت I/O
در پایگاه داده اوراکل 11g، مجموعهای از دیدهای مجازی وجود دارد که وضعیت همه I/Oهای ایجاد شده توسط Instance پایگاه داده را جمعآوری میکند.
دیدهای کاربری مجازی به ازای هر نوع عملیات، اطلاعات آماری مربوط به آن را به طور مداوم جمعآوری میکنند که عبارتند از:
- تعداد درخواستهای مرتبط، میزان حجم به مگابایت، کل زمان انتظار برای I/O به میلیثانیه و تعداد کل موارد انتظار.
- وضعیت گروههای مصرفکننده و مؤلفه به مخزن کنترل خودکار بار کاری انتقال یافته و در این مخزن جمعآوری میشوند.
سؤال:
فرض کنیم شما یک پایگاه داده را با نام PROD در محیط Single Instance نگهداری و مدیریت میکنید. شما باید اطلاعات آماری را برای I/O ایجاد شده توسط این Instance جمعآوری کنید. کدام سه دید کاربری مجازی میتواند در این مورد به شما کمک کند؟
الف- V$IOSTAT_FILE
ب - V$IOSTAT_FUNCTION
پ - V$IOSTAT_CONSUMER_GROUP
ت - V$IOSTAT_NETWORK
جواب:
گزینههای الف، ب و پ درست هستند.
V$IOSTAT_FILE اطلاعات مربوط به وضعیت I/O همه فایلهای پایگاه داده را (شامل datafile، temp fileها و سایــر انـــواع فـــایـلهــای database) نشان میدهد.
V$IOSTAT_FUNCTION وضـعـیــت I/O را بـــرای توابع پایگاه داده (نظیر LGWR و DBWR) نشان میدهد.
V$IOSTAT_CONSUMER_GROUP وضعیت I/O را برای گروههای مصرفکننده مختلف نشان میدهد.
اگر مدیر منابع پایگاه داده فعال شدهباشد، وضعیت I/O برای همه گروههایی که بخشی از پلان فعالشده کنونی هستند، ذخـیــره میشـــود.
پاســخ ت نادرســت اســت، زیــرا V$IOSTAT_NETWORK اطلاعات مربوط به آمار I/O مربوط به دسترسی به فایلها از طریق Instanceهای دوردست پایگاه داده را جمعآوری میکند.
منبع: ماهنامه شبكه
|
|