در این مطلب می خواهیم دستورهایی را آموزش دهیم که از طریق آنها عضوی را به گروه موجود اضافه کنیم، گروه جدید را ایجاد کنیم. شکل زیر (۱) نشان می دهد که چهار گروه با شماره های ۱ و ۲ و ۳ و ۴ وجود دارد که هر یک تنها دارای یک عضو (یک فایل online redo log) هستند.

پیکربندی های قانونی و غیر قانونی برای Online Redo Log

۱ – تمامی گروه های ریدولاگ باید تعداد برابری عضو داشته باشند. البته اجباری نیست که گروه ها تعداد اعضای یکسانی داشته باشند. به عنوان مثال یک گروه می تواند تنها یک عضو و دیگری دو عضو داشته باشد.

۲ – اینکه تمامی اعضای باید به صورت مالتی پلکس و دارای تعداد یکسان عضو باشد در مقابل خطاهای رسانه و از دسترس رفتن برخی از عضوها مقابله می کند به طوری که عضوهای دیگری برای عمل کردن وجود دارند.

۳ – حداقل تعداد ۲ گروه در هر instance تنها نیازمندی و اجبار از نظر پایگاه داده است. به عنوان مثال هر instance می تواند ۳ گروه داشته باشد که هر یک ۲ عضو دارند. هر عضو از هر گروه بر روی یکی از دیسک های DiskA و DiskB قرار می گیرند.

۴ – مالتی پلکس کردن یعنی داشتن چند گروه ریدولاگ (حداقل ۲ گروه) و هر یک چندین (بهتر است تعداد مساوی) عضو داشته باشند که هر یک از اعضای گروه ها باید بر روی دیسک های متفاوتی مانند شکل زیر (۱) باشند. در این حالت اگر یک عضو به دلیل از کار افتادن دیسک از دسترس فرایند LGWR خارج شود، بازهم اعضای دیگری از همان گروه برای نوشته شدن توسط LGWR وجود دارند و نتیجه آن این است که instance به عملکرد خود بدون مشکل ادامه می دهد.

ایجاد گروه Online Redo Log

به طور کلی می توانیم به دو صورت یک فایل online redo log جدید را اضافه کنیم، ایجاد یک گروه جدید یا اضافه کردن یک عضو جدید به یک گروهی که از پیش ایجاد شده بود. توجه کنید پیشنهاد می شود که هر یک از اعضای گروه redo log بر روی دیسک های متفاوت قرار داشته باشند (مالتی پلکس کردن) تا از تک نقطه شکست جلوگیری شود.

برای ایجاد یک گروه جدید باید از دستور alter database add logfile استفاده کنیم. در دستور زیر یک گروه redo log جدید ایجاد می شود که دارای دو عضو هستند. توجه کنید هر دو عضو درون یک دیسک هستند ولی شما باید هر عضو را روی دیسک جدید ایجاد کنید.

زمانی که گروه redo log جدید ایجاد می شود، وضعیت اعضای آن در حالت UNUSED قرار دارد. همچنین به صورت خودکار عددی به عنوان شماره گروه یا #group به آن اختصاص داده می شود که یکی بیشتر از عدد گروه اخری و قبلی است. مثلا اگر شماره آخرین گروه ۳ باشد، شماره گروه جدید ۴ خواهد بود. اگر بخواهید شماره گروه را خودتان تعیین کنید باید همانند دستور زیر شماره گروه را باید جلوی عبارت group قرار دهید.

در دستور بالا از عبارت blocksize استفاده شده است، در واقع عبارت blocksize نیز اندازه بلاک های مربوط به اعضای یک گروه را تعیین می کند. توجه کنید که عبارت های group و blocksize هر دو عباراتی اختیاری هستند.

مفهوم پارامتر MAXLOGFILES

توجه کنید که یک پایگاه داده اوراکل حداکثر می تواند تا اندازه MAXLOGFILES گروه داشته باشد. MAXLOGFILES یکی از پارامترهایی است که در اسکریپتی که برای ایجاد دستی یک پایگاه داده باید تعیین شود. به طور کلی در اوراکل یک پایگاه داده از طریق ابزار گرافیکی dbca (یا database configure assitance) و یا از طریق نوشتن یک اسکریپت ایجاد می شود که این اسکریپت به زبان SQL و حاوی دستورهای اوراکل است.

در زمان ایجاد یک گروه اگر بخواهیم به صورت دستی شماره گروه را تعیین کنیم، بیشترین مقداری که می توانیم جلوی عبارت group در دستور alter database add logfile قرار دهیم برابر با اندازه پارامتر MAXLOGFILES است.

قواعد اندازه فایل Online Redo Log

توجه کنید اندازه هر یک از فایل های (اعضای) درون گروه توسط پارامتر size تعیین می شود. موارد زیر قواعد کلی تعیین اندازه online redo log را نشان می دهند.

۱ – تمامی اعضای یک گروه باید هم اندازه باشند.

۲ – اعضای گروه های مختلف می توانند اندازه متفاوتی داشته باشند.

۳ – حداقل اندازه یک فایل online redo log برابر ۴ مگابایت است.

۴ – اندازه یک فایل  online redo log بسته به محدودیت های سیستم عاملی دارد که برای نصب اوراکل که استفاده می شود.

۴ – در زمان تعیین اندازه فایل online redo log باید در نظر گرفته شود که آیا پایگاه داده در حالت ARCHIVELOG وجود دارد یا نه؟

۵ – اگر اندازه فایل های ریدولاگ بسیار کوچک باشد بنابراین تعداد log switch های متعددی رخ می دهند. بنابراین اندازه این فایل ها تاثیر مستقیمی بر روی کارایی پایگاه داده دارد.

۶ – معمولا اندازه بلاک های دیتافایل ها بین ۲ کیلوبایت و ۳۲ کیلیوبایت است ولی اندازه بلاک های مختص به ریدولاگ ها برابر اندازه سکتورهای دیسکی است که ریدولاگ بر روی آن ذخیره می شوند. اندازه سکتورها به صورت پیشفرض برابر ۵۱۲ بایت است.

اسکریپت زیر وضعیت هر فایل online redo log را نشان می دهد. اگر فایل آرشیو نشده باشد زیر ستون archived عبارت NO نوشته می شود.

دوره برنامه نویسی SQL

چگونه اندازه فایل های Online Redo Log را پیدا کنیم

 

افزودن یک عضو جدید به گروه Online Redo Log