PDA

توجه ! این یک نسخه آرشیو شده می باشد و در این حالت شما عکسی را مشاهده نمی کنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : استفاده از ابزار بازاجرا براي ذخيره و اجراي دوباره فعاليت‌هاي پايگاه‌داده



Borna66
04-05-2011, 12:52 AM
اشاره: يكي از مهم‌ترين فرآيندها در بررسي تأثير تغييرات سخت‌افزاري و نوع نرم‌افزاري بر پايگاه‌داده، ايجاد يك محيط آزمايش است كه بتواند به خوبي بيانگر بار كاري محيط واقعي باشد. هرچند نوشتن كدهاي SQL كه فرآيندهاي محيط عملياتي را شبيه‌سازي كند، امکان‌پذير است. اما اين كار به شدت زمان‌بر بوده و از سويي ممكن است نتواند دقيقاً آن چيزي را ايجاد كند كه در محيط عملياتي وجود دارد. هنگام ايجاد تغييرات در محيط عملياتي بايد حتماً جمله‌هاي SQL مشابه با محيط واقعي را در محيط آزمايشي بررسي كرد كه اين كار با ايجاد كدهاي ساده و اميدوار بودن به اين كه نتيجه آن مي‌تواند محيط عملياتي را شبيه‌سازي كرده و خروجي ارزشمندي ايجاد كند، متفاوت است. در طول اين گونه شبيه‌سازي‌ها بايد بعد از اعمال تنظيمات موردنظر در محيط آزمايشي، باري مشابه با باركاري سرور اصلي ايجاد كرد كه از لحاظ همزماني و ساير ويژگي‌هاي عملياتي كاملاً با آن مشابه باشد.




http://pnu-club.com/imported/2011/04/171.jpg

يكي از مهم‌ترين فرآيندها در بررسي تأثير تغييرات سخت‌افزاري و نوع نرم‌افزاري بر پايگاه‌داده، ايجاد يك محيط آزمايش است كه بتواند به خوبي بيانگر بار كاري محيط واقعي باشد. هرچند نوشتن كدهاي SQL كه فرآيندهاي محيط عملياتي را شبيه‌سازي كند، امکان‌پذير است. اما اين كار به شدت زمان‌بر بوده و از سويي ممكن است نتواند دقيقاً آن چيزي را ايجاد كند كه در محيط عملياتي وجود دارد. هنگام ايجاد تغييرات در محيط عملياتي بايد حتماً جمله‌هاي SQL مشابه با محيط واقعي را در محيط آزمايشي بررسي كرد كه اين كار با ايجاد كدهاي ساده و اميدوار بودن به اين كه نتيجه آن مي‌تواند محيط عملياتي را شبيه‌سازي كرده و خروجي ارزشمندي ايجاد كند، متفاوت است. در طول اين گونه شبيه‌سازي‌ها بايد بعد از اعمال تنظيمات موردنظر در محيط آزمايشي، باري مشابه با باركاري سرور اصلي ايجاد كرد كه از لحاظ همزماني و ساير ويژگي‌هاي عملياتي كاملاً با آن مشابه باشد.

Borna66
04-05-2011, 12:53 AM
به هـمــراه Oracle Database 11g مجـمــوعـه‌اي به نـام Oracle Real Application Testing ارائه شده‌است. اين مجموعه، شامل مجموعه‌اي از ابزارها است كه مي‌تواند تراكنش‌هاي پايگاه‌داده واقعي را ذخيره كرده و دوباره اجرا كند و درنهايت، خروجي آن‌را تحليل كند. يكي از ابزارهاي اين مجموعه به نام Database Replay مي‌تواند تراكنش‌ها را به همان ترتيبي كه در پايگاه‌داده رخ مي‌دهند، ثبت‌كند. سپس مي‌توانيد با استفاده از فايلي كه براي شما ايجاد مي‌شود، باركاري سرور اصلي را روي سرور ديگري كه تنظيمات مورد نظر را دارد، اعمال كنيد. مهم‌ترين چيزي كه بايد بدانيد اين است كه فرآيند Database Replay مي‌تواند دقيقاً همان زمان‌بندي، همزماني و ويژگي‌هاي تراكنشي را براي شما ايجاد كند كه در محيط واقعي رخ‌داده است. شکل1، فرآيند دريافت و اعمال دوباره فرآينــدها را در Database Replay نشان مي‌دهد. توضيحات پنج مرحله اين شکل مطابق با آيتم‌هاي زير است:

1- زماني كه Database Replay فعال شود، فرآيند ذخيره ركوردها، عمليات‌هايي را كه روي پايگاه‌داده اعمال مي‌شوند، در چندين فايل ذخيره باركاري WC (سرنام Workload Capture) ذخيره مي‌كند.
2- اين فايل‌ها در مسيري كه توسط مدير پايگاه‌داده مشخص مي‌شود، ذخيره مي‌شوند.
3- سپس مي‌توان اين فايل‌ها را از طريق مكانيزم‌هايي نظير FTP به سرور آزمايشي منتقل کرد.
4- زماني كه فرآيند شبيه‌سازي فعال شود، برنامه راه‌انداز، شروع به خواندن فايل‌هاي WC مي‌كند.
5- يك Database Replay فايل‌هاي خوانده‌شده را روي سرور موردنظر اعمال مي‌كند.
http://pnu-club.com/imported/2011/04/172.jpg (http://shabakeh-mag.com/Data/Gallery/2011/2/Shabaih1.jpg)

شكل 1- معماري فرآيند Database Replay

Borna66
04-05-2011, 12:53 AM
ذخيره باركاري پايگاه‌داده (Capture)
فرآيند ايجاد Database Replay هم از طريق دستورات خط فرمان و هم از طريق Oracle Enterprise Manager امكان‌پذير است. براي ايجاد Database Replay از محيط Oracle Enterprise Manager به ترتيب زير عمل كنيد:
1- ابتدا يك مسير را در پايگاه‌داده مبدأ ايجاد كنيد. فايل‌هاي باركاري سرور در اين مسير ذخيره‌خواهد شد.

create directory replaydir as
'/home/oracle/replaydir';

2- سپس به سراغ Oracle Enterpirse Manger Database Controlرفته و مطابق شكل2 زبانه Softeware and Support را انتخاب كنيد. در اين صفحه روي لينك Database Replay كليك كنيد. اين لينك در قسمت Real Application Testing قرار دارد.
http://pnu-club.com/imported/2011/04/173.jpg (http://shabakeh-mag.com/Data/Gallery/2011/2/Shabaih2_s.jpg)

شكل 2- تب Software and Support در پنـجره اصـلي Oracle Enterprise Database Control

3- صفحه اصلي مربوط به لينك Database Replay سه عملكرد اصلي مرتبط با اين قابليت را نشان مي‌دهد كه مطابق با شکل 3 عبارتند از: Capture Workload، Preprocess Captured Workload و Replay Workload. در اين صفحه روي لينك Caputer Workload كليك كنيد.
http://pnu-club.com/imported/2011/04/174.jpg (http://shabakeh-mag.com/Data/Gallery/2011/2/Shabaih3_s.jpg)

شكل 3- صفحه اصلي لينك Database Replay
4- در صفحه بعدي به سؤالاتي نظير اين‌كه آيا مي‌خواهيد قبل از شروع به Caputure كردن پايگاه‌داده را خاموش كنيد يا نه، پاسخ دهيد. خاموش‌كردن پايگاه‌داده ضروري نيست، اما بهتر است انجام شود. زيرا اين كار از ذخيره ناقص اولين تراكنش‌ها جلوگيري مي‌كند و به شما اجازه مي‌دهد تا فرآيند Capture را از يك مبدأ و نقطه شروع مناسب آغاز كنيد. همچنين مسير ايجاد شده با نام REPLAYDIR را كه در مرحله قبل ايجاد كرديد، در اين قسمت واردكنيد. اين مسير براي ذخيره فايل‌هاي شبيه‌سازي باركاري استفاده خواهد شد. فيلترها را تنظيم كنيد تا فعاليت‌هاي كاربران خاص نظير SYS و SYSMAN و همچنين دستورات خاص نظير perl و sqlplus در فايل مذكور ذخيره نشود. مي‌توانيد فعاليت‌ها را براساس كاربر، برنامه و كدفراخواني‌شده فيلتر كنيد. همچنين مي‌توانيد انواع خاصي از فعاليت‌ها را نگهداري كنيد.
5- روي دكمه Submit كليك كنيد تا فرآيند Capture آغاز شود. صفحه بعدي وضعيت Capture را با عنوان «In Progress» نشان مي‌دهد. هم‌اكنون فعاليت‌هاي پايگاه‌داده در فايل‌هايي ذخيره‌مي‌شوند. به زمان آغاز Capture توجه كنيد. در اين مثال زمان شروع 11:30:04 صبح و تاريخ آن يازده ژوئيه 2007 است.
6- اجازه دهيد تا اين فرآيند آنقدر ادامه يابد تا بيشتر فعاليت‌هاي پايگاه‌داده را ذخيره كند. در اين مثال دوره زماني دو روزه به نظر كافي است.
7- به پنجره Database Replay رفته و لينك مربوط به باركاري كنوني را انتخاب كنيد. براي متوقف كردن فرآيند ذخيره Capture دكمه Stop را انتخاب كنيد.
8- به سراغ مسير ذخيره فايل برويد. فايل ذخيره شده در اين مسير را با استفاده از FTP يا ساير ابزارها به سيستم مورد نظر انتقال دهيد. پايگاه‌داده دو گزارش AWR (سرنام Automatic Workload Repository) را يكي قبل و ديگري بعد از فرآيند Capture ايجاد كرده و آن‌ها را به صورت خودكار بعد از پايان فرآيند Capture نگهداري مي‌كند.

Borna66
04-05-2011, 12:53 AM
شبيه‌سازي و اجراي تراكنش‌هاي ذخيره‌شده (Replay)
زماني كه فرآيند Capture در حال اجرا شدن است، يك كپي از محيط عملياتي را روي پايگاه‌داده مقصد ايجاد كنيد. يكي از بک‌آپ‌هاي پايگاه‌داده عملياتي را بازگردانده و آن‌را تا زمان آغاز شدن Capture به اصطلاح Recover كنيد. براي اين كار مي‌توانيد مطابق با كد زير از ابزارRecovery Manager يا RMAN استفاده كنيد:

RMAN> run {
2> set until time '2007-07-11 11:30:04';
3> restore database;
4> recover database;
5> }

بعد از كامل شدن Recovery پايگاه‌داده در سيستم مقصد با پايگاه‌داده در محيط عملياتي در لحظه آغاز ذخيره باركاري، دقيقاً مشابه هستند. حال مطابق با مراحل زير، فرآيند Replay باركاري را انجام دهيد:
1- ابتدا فايل‌هاي ايجاد شده را پيش‌پردازش كنيد، فرآيند Preprocess به ازاي هر Capture فقط يك بار انجام مي‌شود. با اين كار فايل‌هاي‌ايجادشده، قبل از Replay در سرور آزمايشي به Oracle Enterprise Mangager معرفي مي‌شوند. مطابق شکل 2 به سراغ صفحه Database Replay برويد و مطابق شکل 3 در پنجره، گزينه Preprocess Capture Workload (فعاليت دوم) را انتخاب كرده و اطلاعات درخواستي را وارد كنيد، از جمله نام مسير، نام كاربري سيستم‌عامل (در بيشتر موارد، نام كاربري سيستم‌عامل نيز Oracle است)، رمز كاربر سيستم‌عامل، نام كاربري و رمز كاربر پايگاه‌داده و... و درنهايت دكمه Submit را انتخاب كنيد. فرآيند پيش‌پردازش توسط يك job انجام شده و بعد از تكميل‌شدن آن، صفحه مرورگر عبارت Preprocessed را نمايش داده و آماده مرحله بعدي است.
2- به سراغ صفحه اصلي در Database Replay برويد و وظيفه سوم، يعني Replay Workload را انتخاب كنيد. سؤالات مشابه با مرحله قبل از شما پرسيده مي‌شود. به آن‌ها پاسخ دهيد و درنهايت دكمه Submit را انتخاب كنيد.
3- اكنون پايگاه‌داده شما، آماده اجراي فرآيند Replay است. در اين‌جا صفحه‌اي ظاهر مي‌شود که مي‌گويد كه درايور Replay فعال شده، اما فرآيند اصلي Replay هنوز آغاز نشده‌است.
4- اجراي Replay در قالب فرآيندي به نام Replay Client آغاز مي‌شود. با استفاده از دستور wrc فرآيند اجراي Replay Client را از خط فرمان و مطابق كد فهرست 1 انجام دهيد.

$ wrc userid=system password=<Password> replaydir=/home/oracle/replay
Workload Replay Client: Release 11.1.0.6.0 - Production on ....
Copyright (c) 1982, 2007, Oracle. All rights reserved.
Wait for the replay to start (02:50:03)


Replay started (02:51:34)

فهرست 1


5- زماني كه فرآيند Replay خاتمه يابد، ابزار Replay Client خروجي زير را نمايش مي‌دهد:

Replay finished (04:53:03)

برنامه Oracle Enterprise Manager نيز وضعيت Completed را نشان مي‌دهد. براي مشاهده وضعيت فرآيند ذخيره تراكنش‌ها و اجراي دوباره آن‌ها روي لينك Report كليك كنيد.

Borna66
04-05-2011, 12:53 AM
تحليل نتايج
حال كه فرآيند تخليه بار سرور اصلي روي سرور آزمايشي نيز انجام شد، مي‌توانيم خطاهاي احتمالي را بررسي كنيم. براي اين كار لينك View Workload Replay Report را انتخاب كنيد. گزارش خروجي را براي مشاهده هرگونه خطاي احتمالي، ناشي از نقص در برنامه يا هر علت ديگري بررسي كنيد. بعد از انجام اين كار، بررسي كنيد كه كارايي سيستم در مقايسه با سيستم‌ قبل به چه شكل بوده‌است.

براي مقايسه سيستم قبلي و جديد، بايد گزارش‌هاي AWR مربوط به آن‌ها در دوره زماني ثبت وقايع در سرور مبدأ و تكرار آن‌ها در سرور مقصد را با هم مقايسه كنيد. گزارش AWR مجموعه‌اي از نشانگرها را شامل مي‌شود كه كارايي پايگاه‌داده را در دوره زماني مذكور نشان مي‌دهد. در Oracle Enterprise Manger مطابق شکل 2 به سراغ تب Performance رفته و تصاوير لحظه‌اي مربوط به هر Capture و Replay را با هم مقايسه كنيد (شکل2). شکل 5 بخشي از گزارش AWR است و در هر دو پايگاه‌داده، در هر زمان رويدادهايي را نشان مي‌دهد كه بيشترين وقت را به خود اختصاص داده‌اند.
http://pnu-club.com/imported/2011/04/175.jpg (http://shabakeh-mag.com/Data/Gallery/2011/2/Shabaih4.jpg)

شكل 4- شاخص‌هاي اصلي در سيستم جديد و قديم

اين مقايسه، يك تحليل ساده از كارايي سيستم‌هاي جديد و قديم را نشان مي‌دهد. شاخص‌هاي اصلي، عبارتند از زمان پردازنده كه در سيستم جديد، تنها 8,47 واحد از زمان پايگاه‌داده را به خود اختصاص داده‌است، در حالي‌كه اين رقم در سيستم اصلي تقريباً هجده واحد است. فرآيند db file sequential read نيز يازده‌درصد از زمان سيستم جديد را گرفته است كه در سيستم قبلي نوزده‌درصد بود. اين شاخص‌ها، از جمله مواردي هستند كه عملكرد سيستم جديد را نشان مي‌دهند و همه آن‌ها كاملاً مشابه با عمليات واقعي در سرور اصلي و نه بر اساس شبيه‌سازي‌هاي دستي ايجاد شده‌اند. درنتيجه، با توجه به گزارش‌هاي فوق مي‌توان گفت كه سيستم جديد به مراتب بهتر از سيستم قبلي كار خواهد كرد.

Borna66
04-05-2011, 12:54 AM
تغييرات بيشتر
اگر مي‌خواهيد تغييرات ديگري را روي سيستم جديد انجام داده و دوباره آن‌را بررسي كنيد، تنها كافي است كه بار كاري ذخيره‌شده را دوباره Replay كنيد و به Capture دوباره بار كاري از سرور اصلي و پردازش دوباره آن نيازي نيست. به‌عنوان‌مثال، ابتدا يك Restore Point ايجاد كنيد:

create restore point pre_change;

حال تغييرات مورد نظر را روي سيستم اعمال كرده و درنهايت Replay را در سيستم جديد انجام دهيد. اگر بعد از تحليل نتايج در Replay جديد، به ايجاد تغييرات در سيستم جديد و اجراي يك Replay ديگر نياز بود، ابتدا همه تغييرات اعمال شده را با استفاده از دستور زير Roll Back كنيد:

flashback database to restore point
pre_change;

شما مي‌توانيد اين چرخه change/analyse/rollback را هر چندبار كه لازم باشد، انجام دهيد تا درنهايت بهترين تنظيمات را براي باركاري محيط عملياتي به دست آوريد.

Borna66
04-05-2011, 12:54 AM
نتيجه‌گيري
تغييرات در سطح سيستم، امري اجتناب‌ناپذير است. تغيير پارامتر‌ها، افزودن بسته‌ها يا Patchها و سخت‌افزار و... از جمله اين تغييرات هستند. تغييرات نيز همانند مرگ و ماليات هميشه وجود خواهند داشت. اما آنچه مهم است نحوه برخورد با آن‌ها است. اگر نتيجه دقيق تغييرات با دقت بالايي پيش‌بيني شود، خطرات مرحله پياده‌سازي نيز حذف مي‌شود يا به حداقل مي‌رسد.

فرآيند Database Replay به مديران پايگاه‌داده امكان مي‌دهد تا بدون نياز به هماهنگي با ساير گروه‌ها فرآيندهاي شبيه‌سازي را انجام داده و تأثير دقيق تغييرات را با اجراي چند دستور ساده مشاهده كنند و در عين حال باركاري پايگاه‌داده واقعي را در محيط آزمايشي ايجاد كرده و تجربه كنند. كاهش ريسك درنهايت به ايجاد زيرساختاري منجر مي‌شود كه دسترسي‌پذيري به سيستم را در بهترين سطح ممكن ارائه مي‌دهد.