منبع اصلی نوشتار زیر در این لینک قرار دارد

مدیریت Redo Log ها و Archive Log ها – بخش دوم

در پایگاه داده اوراکل هر گونه اتفاق مانند تغییر یا حذف مقدار ستون یک جدول توسط SQL یک رکورد که توصیفی از آن تغییر است در فایل های Redo Log نوشته می شوند. داشتن بیش از یک فایل برای نوشتن توسط فرایند LGWR مفید و حتی ضروری است. فرایند پس از نوشتن در اولین فایل و پر کردن آن به سراغ فایل بعدی می رود و در نهایت پس از پر کردن آخرین فایل برای نوشتن اطلاعات جدید دوباره به سراغ اولین فایل رفته و روی آن بازنویسی می کند. اگر حالت ARCHIVELOG فعال باشد پس از پرشدن فایل ها یک پشتیبان از فایل ها گرفته شده و در محلی ذخیره می کند.همچنین می توانید هر فایل را در قالب گروه هایی دسته بندی کنید و گروه ها را نیز در قالب اعضای آنها دسته بندی کنید. بطور مثال اگر دو فایل داریم پس دو گروه نیز داریم. گروه اول برای فایل LOG1 که خود این گروه می تواند شامل دو عضو (دو فایل) A_LOG1 و B_LOG1 باشند. فرایند LGWR در یک زمان اطلاعات را روی هر دو فایل A_LOG1 و B_LOG2 می نویسد که عین هم هستند و حالت Mirror ایجاد می کند. دومین فایل که LOG2 نام دارد در غالب گروه 2 و دارای دو عضو A_LOG2 و B_LOG2 است و مانند قبل پس از پرشدن فایل های گروه 1 فرایند به سراغ فایل های این گروه رفته و در یک زمان روی آنها اطلاعات یکسانی را می نویسد. به هیچ عنوان اوراکل در یک لحظه روی دو عضو از دو گروه متفاوت نمی نویسند و همچنین باید اندازه اعضای یک گروه یکسان باشند ولی می شود که تعداد اعضای گروه با گروه دیگری متفاوت باشد. در اوراکل دو پارامتر MAXLOGFILE و MAXLOGMEMBER به ترتیب حداکثر اندازه تعداد گروه ها (فایل های Redo Log) و اعضای هر گروه را در هنگام ایجاد پایگاه داده مانند استفاده از دستور CREATE DATABASE استفاده می شوند.

بدست آوردن اطلاعات از Redo Log :

سه View به نام های v$log,v$logfile و v$log_history اطلاعاتی از فایل های Redo Log را نشان می دهند. v$log اطلاعات فایل Redo Log را از Control File نشان می دهد، V$logfile تعیین وضعیت گروه ها و اعضای آنها و v$log_history تاریخچه log را نشان می دهد. بطور مثال برای پیدا کردن مسیر و گروه متناظر هر فایل از دستور زیر استفاده کنید.

;select * from v$logfile

\"\"

اگر ستون STATUS خالی باشد فایل در حال استفاده شدن است.

یا بدست آوردن اطلاعات کلی از هر فایل با استفاده از کوئری زیر :

;select * from v$log

ایجاد گروه جدید :

با استفاده از دستور alter database به همراه add logfile یک گروه جدید که شامل یک فایل (یک عضو) است ایجاد می کنیم. بطور مثال دستور زیر در مسیر قرار گیری فایل های Redo Log یک فایل به نام Logfile1.log به حجم 50 مگابایت می سازد.

;alter database add logfile group (‘C:\\oraclexe\\app\\oracle\\flash_recovery_area\\XE\\ONLINELOG\\newlog1.log’) size 50m

در شکل بالا می بینید که هر گروه دارای یک عدد بعنوان شناسه آن گروه است که از دیگر گروه ها متمایز می شود. در دستور زیر عدد 3 بعد عبارت group برای تعیین شناسه گروه استفاده می شود و در صورتی که مانند دستور بالا تعیین نشود یکی به آخرین عدد اضافه می شود.

;alter database add logfile group 3 (‘C:\\oraclexe\\app\\oracle\\flash_recovery_area\\XE\\ONLINELOG\\newlog1.log’) size 50m

افزودن یک عضو جدید به گروه :

می توانید با استفاده از دستور alter database به همراه member  یک فایل (یک عضو) را که ایجاد می کند و به یک گروه نسبت به دهید. (توجه کنید که اعضای یک گروه باید هم اندازه باشند). بطور مثال دستور زیر فایلی که قبلن ایجاد کردید را به گروه 2 اختصاص می دهد.

; alter database add logfile member ‘C:\\oraclexe\\app\\oracle\\flash_recovery_area\\XE\\ONLINELOG\\logfile2_grp1.log’ to group 1

پس از اجرای دستور بالا اگر کوئری زیر را اجرا کنید خواهید دید که گروه 1 شامل دو فایل (دو غضو) است که فرایند LGWR همزمان روی آنها می نویسد. البته بهتر است اعضای هر گروه روی دیسک جداگانه ای قرار بگیرند.

;select * from v$logfile where group#=1

تغییر نام و محل اعضا :

می توان از دستور های سیستم عامل مانند mv در یونیکس ها و move در ویندوز می توان برای تغییر نام و از دستور alter database برای تغییر نام اعضا استفاده نمود. پیش از انتقال فایل ها لازم است که پشتیبانی از آنها تهیه نمود. فرض کنید فایل های Log در دو دیسک diska و diskb قرار دارند. هر گروه شامل دو عضو که هر عضو آنها در دیسکی جداگانه وجود دارند.

diska/logs/log1_a.log/

diskb/logs/log1_b.log/

diska/logs/log2_a.log/

diska/logs/log2_b.log/

برای انتقال ابتدا باید با داشتن مجوز sysdba پایگاه داده را shutdown کنید و سپس با یکی از دستور های سیستم عامل میزبان فایل ها را از مکان فعلی به مکان جدید انتقال دهید.

shutdown

بطور مثال در سیستم عامل های لینوکسی با استفاده از دستور mv آنها را انتقال می دهیم.

mv /diska/logs/log1_a.log /diskc/logs/log1_c.log

mv /diska/logs/log2_a.log /diskc/logs/log2_c.log

سپس می توانید برای تغییر نام فایل ها پایگاه داره را بصورت mount شده startup کنید و با اسفاده از دستور alter database به همراه rename file نام آنها را تغییر دهید.

;alter database rename file ‘/diska/logs/log1_a.log’, ‘/diska/logs/log2_a.log’ to ‘/diskc/logs/log1_c.log’, ‘/diskc/logs/log2_c.log’

دستور بالا به ترتیب فایل log1_a به log1_c و فایل log2_a را به log2_c تغییر می دهد.

سپس با دستور زیر پایگاه داده را open ود دسترس تمامی کاربران قرار دهید.

;alter database open



برچسب ها : , ,