مدیریت دخیره سازی

اضافه کردن مخزن و حافظه‌

“مدیریت حافظه به صورت اتوماتیک، امکانی است برای اینکه مدیر پایگاه اطلاعات به کارهای دیگر خود رسیدگی کند.”

مدیر بانک اطلاعاتی برای مدیریت فضای دیسک زمان زیادی را صرف می‌کند.برای زیاد کردن سرعت1/O ، اطلاعات را به همراه مدیریت دیسک های فیزیکی در سرتاسر این دیسک‌ها گسترش می‌دهیم.

اکثر اوقات این کار توسط مدیر سیستم عامل، کسی که به‌صورت منطقی حجم را مدیریت می‌کند 

(LVM Logical Volume  Manager)، برای کامباین کردن تعداد زیادی دیسک فیزیکی داخل یک حجم منطقی که مورد استفاده Oracle  Database است، انجام می‌شود.

زمانی که فضای منطقی ما حجمش از فضای فیزیکی زیادتر می‌شود، باید تعطیلات را صرف اضافه کردن یک درایو جدید به فضای قبلی کنیم و اطلاعات را مجدداً درون همه درایوها به‌صورت متعادل پخش کنیم تا به‌صورت نرمال و اولیه خود برگردد. این مراحل حجم کاری بسیار زیادی را برعهده مدیر پایگاه داده‌ها می‌گذارد.

در پایگاه داده‌هایOracle10g  یک امکان جدید به نام Automatic Storage Management (ASM)به وجود آمده که در این مقاله ما به شناخت ASM می‌پردازیم:

‌ASM چیست؟

 ASMترکیبی است از مدیریت حجم منطقی و فایل سیستم هایی که درون پایگاه اطلاعاتی ما ذخیره می‌شوند.

در نسخه‌های قبلی اوراکل مدیریت این حجم ها توسط LVM صورت می‌گرفت، از قبیل تعریف کردن گروهی دیسک. این عملیات در Oracle 10g توسطASM  صورت می‌گیرد.

به این صورت می‌توانData File ها ،Control Fileها وLog File ها را روی گروه های تعریف شده جاسازی کرد. ASM به‌گونه‌ای عمل می‌کند که فایل سیستم های اوراکل را می‌سازد و اطلاعات را در سرتاسر دیسک های موجود پخش می‌کند. ASM به گونه‌ای طراحی شده است که  اطلاعات را برای ما در چندین دیسک ذخیره کند و همچنین اطلاعات روی دیسک‌ها را اضافه یا حذف کند که تمام این کارها به صورت متعادل و موزون انجام می‌گیرد.در صورتی که LVM  نمی تواند چنین کاری را انجام دهد.

همچنینRaw Device ها (یا قسمت های دیسک که OSهیچ قسمت‌بندی بر روی آن انجام نداده) را می‌تواند به صورت خیلی مناسب قسمت‌بندی کند. تقسیم‌بندی و مدیریتStorage های ASM توسط نوع جدیدی ازInstance  صورت می‌گیرد که به آنASM Instance  می‌گویند.

یکASM Instance  ، برای تمامی Instance های پایگاه داده های روی ASM Instance, Server  را مدیریت می‌کند.Instance  پایگاه داده‌ها اطلاعات مورد نیاز خودش را می خواند و می‌نویسد، اماASM Instance  ، داده‌ها و اطلاعات را در زمان متعادل کردن Operation ها می‌خواند و می‌نویسد.

اولین مرحله برای استفاده ازASM ، ساختن ASM Instance  رویDatabase Server  است.

دومین مرحله، ساختنData Files   و بقیه فایل های Database  روی Disk Group های ساخته شده است.

Creating An ASM Instance

ساختنASM Instance :

اگرOracle Database   نصب شده رویServer  ما، Oracle 10g  باشد، ساختن ASM Instance  به راحتی صورت می‌گیرد.

برای ساختنASM Instance  کافی است که روی یکی از صفحات Check Box, Database Creation Assistant   مربوط را انتخاب کنیم (DCA)،Database Creation Assistant  خودشASM Instance  را به خوبی Database  می‌سازد و ازASM Instance  به خوبی استفاده می‌کند.

برای ارتقای دیتا بیس از نسخه‌های پایین‌تر به10g  و برای انتقال تمامی قسمت  های Database  به ASM باید نکات زیر را مدنظر بگیریم:

1- ساختنASM Instance  به صورت دستی‌

2 -داشتن دانش ساختDisk Group

ساخت ASM Instance  به صورت دستی به راحتی صورت می گیرد. با ساختن کلیه مسیر اجرایی برای Instance  ساختASM Instance  شروع می‌شود.به طور مثال اگر اسمDatabase Instance  موجود Oracle 10g باشد و تمامDump  فایل ها و پارامتر فایل‌ها  در مسیر C:/Oracle/admin10g باشد برای ساخت ASM Instance  دایرکتوری جدیدی می‌سازیم.

C:/ Oracle/admin/asm10، که10 ASM نشان دهنده و مشخص کننده اسمASM Instance  است.

مرحله بعدی، ساختن پارامتر فایل است.

بیشتر پارامترهای موجود در پارامتر فایلInstance Database   روی   ASM Instanceتاثیری ندارد، در نتیجه این فایل می‌تواند به راحتی و خیلی سریع ساخته شود.

پارامتر فایل را با اسمinitasm 10.ora  و با دستورات زیر می‌سازیم:
 

asm=Instnce-type
c:/bdump/asm10/admin/oracle=Background-dump-dest
c:/bdump/asm10/admin/oracle=core-dump-dest
c:/bdump/asm10/admin/oracle=user-dump-dest
10.1.0.1.0=Compatible
":x11.1"=Asm-disk group

 

: Instance-type پارامتر جدیدی است که برای متمایز کردن Database Instance وASM Instance   از آن استفاده می‌شود.

: Asm- disk group مشخص کننده درایوی است کهASM Instance   از این درایو برای ذخیره اطلاعات  استفاده می‌کند.

11.1x- : این نمادی است که در (UNC) Universal Naming Convention  قرار گرفته و درNetwork  استفاده می‌شود.

(.11) این نماد مشخص کننده ASM در حال اجراست.

(:x) این نماد که به صورت پارامتر عمل می‌کند مشخص کننده درایو ما است که می‌تواند به صورت D:  یا E:  نوشته شود.

به طور کلی نشان دهنده Location  ما است.

می‌توان به جای استفاده از “:11.1x از ”11.1D:” یا ”11.1E:—” استفاده شود اما استفاده از نماد به صورت پارامتر به مراتب راحتتر و بهتر است.

اگر سیستم عامل موجود در روی Server  مورد نظر ما ویندوز باشد نیاز به ساخت Windows Service  داریم. برای اجرای Instance  جدید این کار را توسط ابزار OraDIM  انجام می‌دهیم که این امکان را به ما می‌دهد تا همزمان Service, Instance ها را برای ما بسازد.

Drive مورد نظر برای استفاده ASM Trorage  را توسط ابزار asmTool  که به همراه Oracle Database 10g  نصب می‌شود، معرفی می‌کنیم. می‌توان asmTool  را قبل یا بعد ازStart  کردنASM Instance  اجرا کنیم.

استفاده ازServer Parameter  فایل،ASM Instance  را فعال می‌کند تا به صورت اتوماتیک اسم Disk Group جدید را درونASM- Disk Group  ثبت کند.

در نتیجهDisk Group  هایی که در پارامترASm-Disk Group  نامشان ذکر شده باشد، به صورت اتوماتیک در هر زمان  Start ,+ASM Instance شود، Start  می‌شوند. بعد ازStart   شدن ASM Instance تمام Instance های Database  روی ‌Server به صورت اتوماتیکASM Instance   را پیدا می‌کنند.

 

Creating Disk Group

ساختنDisk Group :

یکی از امکانات ASM  این است که زمانی که به ASM Instance  وصل هستیم می‌توان Disk Group  اضافه یا حذف کنیم.تنها مشکل این است که باید با کاربری کهgrant ،Sysdba   دارد بهDatabase  وصل شویم و همچنین برای پی بردن به اینکه به کدامیک ازDisk ها وصل شده‌ایم برای اضافه یا حذف کردنDisk Group  می‌توانیم از جدول V$ASM- Instance  گزارش بگیریم.

Disk Group ای که مثلا‌ با نام  My Dataروی Database ،Oracle 10g  ساخته‌ می شود می تواند  شامل چند عدد دیسک باشد. کلمه Normal Redundancy  امکانMirroring   را روی فایل هایGroup Disk می دهد.اگر دیسک ها به صورت خارجی توسط Raid مدیریت ‌شود، یا زمانی که Mirroring  روی تمامی فایل ها اهمیت چشمگیری نداشته باشد، از امکان External Redundancy  استفاده می‌کنیم. دیسک گروهMy Data   شامل دو Failure Group است به صورتی کهDrive های موجود ما fوg  هستند که روی Drive هایH   وMirroring I   صورت می‌گیرد و هرگز درایوF   روی Mirroring  نمی‌شود. پس می‌توان فهمید که Disk group ،My Data  از 4 دیسک تشکیل شده است که روی کدام درایو F ،g ،H  و I تعریف شده است و اینDisk group   از دو Failure Group تشکیل شده که هر کدام از اینFailure Group  ها کنترل دو درایو را در اختیار دارند. پس g ، Fتحت کنترل یک Failure Group  هستند و  I ، Hتحت کنترل Failure Group  دیگر. به این دلیل g mirroring  وF   رویI ،H  صورت می‌گیرد.

Placing Data on a Disk Group

قرار دادن داده‌ها روی Disk Group:

قرار گرفتنobject های جدید روی Disk Group  ساده است.

می‌توان در زمان ساخت Data base  فایل‌ها و Redolog member  ها اسم‌Disk Group را درFile name  ذکر کرد.

برای مثال:

Create Tablespace geo- names

siz: e 100 M "+ My Data" Data file

(+) علامت قبل از اسمDisk Group  نشان دهنده اسم گروه است نه‌Operating System Filename.

به این ترتیب هرObject ای که درون heo-name ,Tablespace  ساخته شود، روی دیسک گروه My Data  ساخته می‌شود.

Adding Or Removing Storage

اضافه کردن یا حذف کردن مخزن:

می‌توان به راحتی دیسکی را به Disk Group اضافه یا حذف کنیم.

برای اضافه کردن دیسک به گروه ابتدا دیسک مورد نظر را باید به Server (یا بهStorage Network  یا (Disk Array  اضافه کنیم وUser  نصب کننده دیسک را بهUser ای که نرم افزارOracle Database  را نصب کرده تغییر دهیم. مرحله بعد اضافه کردن دیسک به صورتLogic ای است که توسط دستورAfter Disk Group  دیسک جدید را به ASM Instance اضافه می‌کنیم.

به طور مثال برای اضافه کردن دو دیسک بهMy Data  دستورات زیر را می‌نویسیم:

After Disk Group My Data

Add Fail group my data 01 disk ":j."

Fail group my data 01 disk ":k."

هیچ الزامی نیست که به همه Failue Group ها درDisk Group  دیسک اضافه کنیم. می‌توان فقط به یکی از Failure Group ها دیسک اضافه کنیم و بقیه را به حالت خود رها کنیم، اما اضافه کردن دیسک به همهFailure Group ها به مراتب بهتر است، به این دلیل که تعادل فضاها در یک سطح قرار می گیرند. وقتی دیسکی به گروه اضافه می‌شود،ASM  به صورت اتوماتیک داده‌های ذخیره شده در گروه را مجدداً بالانس می‌کند. برای مثال اگر 30درصد از فضای دیسک را داده‌ها اشغال کرده باشند این داده ها در تمام درایوها پراکنده و پخش می‌شوند. در این روشO/I  به مراتب کمتر صورت می‌گیرد تا زمانی که فقط 30درصد از فضایTable Space ها اشغال شده، باشند.

برای حذف کردن دیسک از Disk Group از دستورAfter Disk Group Drop  استفاده می‌کنیم. بعد از حذف کردن تمامی دیسک هایی که می‌خواستیم حذف شوند توسط دستورAfter Disk Group Rebalance  مجددا Instanceًرا بالانس می‌کنیم. بعد باید منتظر باشیم تا ASM تمام داده های موجود روی دیسک را حذف کند.

Recovering From a Disk Failure

برگرداندن تمام اطلاعات از Disk Failure:وقتی درایوی به مشکل برمی‌خورد ASM به صورت اتوماتیک از Disk Group  حذفش می‌کند و مجدداً هر فایل Mirror  شده که در زمان از بین رفتن Drive ، از بین رفته باشد را می‌سازد و اطلاعاتش را از اول بالانس می‌کند تا زمانی که رویDisk Group   فضای خالی داریم ASM شروع می‌کند به مجدد Mirror کردن اطلاعات از درایو ازبین رفته وDatabase Instance  هم بیکار می‌ماند تاASM  کارش تمام شود.
اما اگر فضای کافی نداشته باشیم تا بتوانیم اطلاعات روی درایو از بین رفته را
Recover  کنیم،Database  از کارش دست می‌کشد و به حالتSTOP  درمی‌آید. به دلیل اینکه ASM برای ساختن مجدد فایل ها نیاز به فضای کافی دارد.
در این حالت تنها کار اضافه کردن فضای کافی به دیسک است.

Life Get Easier

این مقاله بیشتر روی رویه  Command-lineای تمرکز دارد، به دلیل اینکه درک کردن ASM بسیار مهم است. اما ‌ASM توسط Enterprise Manager Oracle  (OEM) وGrid Control  هم به طور کامل ساپورت می‌شود . OEM تنها برای اضافه یا حذف Disk Group  به کار نمی‌رود، بلکه می‌توان OEM  را به نحوی Configure  کرد تا زمانی که یک دیسک از بین رفت و یا Disk Group  با کمبود فضا مواجه شد، برای مدیر بانک اطلا‌عاتی ایمیل  بفرستد و ما را در جریان Failure  رخ داده، بگذاردASM . این قدرت را دارد که کارdba   را به مراتب راحت تر کند.

Oracle Availability

Oracle 10g  Available

 Grid Computing یکی از معماری‌های جدید Computing  است. این معماری انجام محاسبات و سرویس دهی به جای استفاده از ابر کامپیوترها با فضاهای دیسک بالا و مقادیر زیادی از حافظه که خود مستلزم صرف هزینه های بالا‌ جهت خرید و نگهداری آنها است، می‌توان از کامپیوترهایی با پردازشگرها و هارد دیسک‌های معمولی و با تجهیزات عادی با هزینه‌هایی بسیار ارزان‌تر در تعداد بیشتر استفاده کرد. در نهایت، می توان این دستگاه‌ها را با ساختاری مناسب تبدیل به واحدی برای پردازش اطلاعات کرد. حتی در روشComputing  امکان استفاده از سیستم‌ عامل های متفاوت وجود دارد و مهم تر از همه آنکه انعطاف‌پذیری در تعویض هر کدام از اجزای اینGrid  موجب ایجاد هیچ گونه خللی در سرویس دادن به کاربران نمی‌شود. ORACLE 10gتوسط محیطEnterprise  خود، امکان دادن سرویس‌های گسترده‌ای را روی محیطGrid  فراهم آورده است. این تکنولوژی باعث کاهش هزینه‌های مرتبط در قسمت تکنولوژی فناوری اطلاعات شده است به طوری که با هر هزینه‌ای امکان استفاده از معماریGrid  وجود دارد. یکی از رقابت‌های موجود در بین پیاده‌سازی ساختارهای Grid توسط شرکت ها در فناوری‌اطلاعات، پیش‌بینیDowntime  های پایگاه داده و ارایه راه‌حل‌های متفاوت بسته به —نوع مشکل به وجود آمده —با استفاده از تکنولوژیGrid Computing است.
ORACLE 10g
با توجه به تقسیم‌بندی عواملی که باعث در دسترس نبودن یک پایگاه داده می‌شود راه‌حل‌های متفاوتی را ارایه کرده است.

Unplanned Downtime -1

مواردی که نمی‌توان کنترلی بر رویDown   بودن یک سیستم داشت، به عنوانUnplanned Downtime  شناخته می‌شوند.

1-1- Computer Failures:

از دلایلی که به طور ناخواسته سیستم و یا پایگاه داده را خارج از سرویس دهی می‌کند، مشکلاتی است که برای سخت افزار به وجود می‌آیدORACLE 10g . راه‌حلی را که برای این نوع خطا ارایه می‌دهد استفاده از

Fast Database Recovery وReal Application Cluster  است.

1-1-1- Real Application Cluster

در بحثClustering ، اوراکل قابلیت نصب به روی چند سیستم با معماری‌های متفاوت را دارد، در حالیکه تمام آنها به یکsingle shared database  دسترسی دارند و این مساله از دید کاربران سیستم وApplication  هایی که باDatabase  کار می‌کنند پنهان است و همه آنها چند سیستم را در قالب یکUnified Systemm می‌بینند. حسنClustring  در این است که بسته به بالا رفتنload  سیستم، امکان اضافه کردنnode  جدید بدون نیاز به جایگزین کردن کل پایگاه داده با یک مقیاس بزرگ تر وجود دارد. وجود دیسک‌های آرایه‌ای قدرت بیشتری به ORACLE 10g  جهت پیاده‌سازی Real Application Cluster   بخشیده است. در تکنولوژیApplication Clustering  به وجودآمدن مشکل برای یکی ازnode  های سیستم هیچ مانعی برای ادامه کار سایرnode ها به وجودنخواهد آورد و سایرnode  ها از در دسترس نبودنnode  مشکل دار، به سرعت آگاه خواهند شد و این آگاهی درORACLE 10g  در چند لحظه کوتاه مشخص خواهد شد و دیگر نیازی بهtime ou t  مربوط به پروتکلTCP/IP  نخواهد بود.

2-1-1- Fast Database Recovery :

Fast Database Recovery از امکانات دیگر اوراکل در مورد خطاهای ناشی از سخت افزار مانندcrash  کردن سیستم عامل است. که با بهینه‌سازی که درORACLE 10g  صورت گرفته، پایگاه داده به صورت اتوماتیک تعداد دفعات عملیاتcheck point  را جهتstartup  شدن سیستم بعد از حالتcrash  در دفعه بعد محاسبه خواهد کرد. به طوری که درORACLE 10g  سیستم به جای دقیقه‌ها انتظار برای در دسترس بودن برای کاربران ظرف چند ثانیه قادر به سرویس دادن مجدد خواهد بود.

2-1- Data Failure :

مواردی که باعث از بین رفتن اطلاعات مربوط به کاربران می‌شوند متفاوت است و می‌توان علت آن را در Storage hardware   ،  Human error ،Corruption  وSite Failure  جست وجو کرد.

1-2-1- Storage Hardware:

 Automatic Storage Management که به اختصارASM  نامیده می‌شود، ازVolume Manager های قوی مربوط بهDatabase ORACLE 10g  است که بدون نیاز به نصب نرم‌افزار جدید و یا تهیه سخت افزاری خاص به صورت مستقیم باKernel Oracle  کار می‌کند. این‌Volume Manager امکان پخش کردن همه فایل ها به رویStorage های متفاوت و همچنین امکان(Stripe Aَnd Mirror Everything) SAME  که نوعیmirroring  است را نیز فراهم می‌آورد کهDBA  را قادر به مدیریتStorage  های پایگاه داده خود به صورت ساده می‌کند.

2-2-1- Human Error:

برای رفع مشکل کاربرانی که اطلاعات خود را به صورت ناگهانی و ناخواسته توسط خودشان از دست می‌دهند،ORACLE 10g  راه حلی را با نام تکنولوژی Flash Back ارایه کرده است. این تکنولوژی ازOracle 9i  وجود داشته است ولی در نسخه01g  امکانات بیشتری به آن اضافه شده است.

از جمله می‌توان به:

    Flashback ,Transaction Query,

   Flashback  Versions  Query

Flashback   Database,

اشاره کرد که بسته به حالت های مختلف حتی یک کاربر بدون مراجعه بهDBA  این امکان را برای خود فراهم می‌کند که اطلاعات از دست رفته خود را باز گرداند بدون اینکه نیاز به ایجاد وقفه در کار کاربران دیگر و همچنینDown  کردن پایگاه داده جهت برگرداندن نسخه پشتیبان باشد.

تکنولوژی که در Flashback  استفاده می‌شود، نوعی گرفتنContinuous Backup  یا Storage Snapshot توسط خودDatabase Oracle  است که باعث می‌شودRecovery  یک پایگاه داده01g  از ساعت ها و روزها به چند دقیقه تقلیل پیدا کند.

3-2-1- Data Corruption:

Data corruption زمانی به وجودمی‌آید که یک دستورI /O  از طرف پایگاه داده جهت دسترسی به یک رکورد داده می‌شود ولی آدرس مقصد برای دسترسی به اطلاعات که توسط سیستم عامل بهDatabase Oracle  داده می‌شود اشتباه استOracle Hardware Assisted Resilient Data (HARD)  برنامه‌ای است که قبل از رجوع به نقطه‌ای از هارد دیسک جهت بازیابی اطلاعات با الگوریتم خاص مسیرdata  ذخیره شده روی دیسک توسط پایگاه داده را ارزیابی می‌کند و از صحت مسیر اطمینان حاصل می‌کند تا از به وجودآمدن مشکل فوق جلوگیری کند.

4-2-1- Site Failures :

از جمله مشکلاتی که پایگاه داده را در مقیاسی بزرگ تر غیر قابل دسترسی می‌کند، می‌توان به بلایای طبیعی از جمله زلزله و سیل اشاره کرد که باعث از دست رفتن اطلاعات می‌شوند که جهت رفع مشکلoracle  امکانData Guard  خود را به عنوان یک راه‌حل ارایه می‌دهد که در واقع نوعیStandby copy  از پایگاه داده می‌شود که این امکان را برایDatabase Administrator  فراهم می‌آورد که نسخه کپی را در مکانی خارج از سایت و پایگاه داده اصلی آن سوی دنیا پیاده‌سازی کند. در این روش کلیه تغییراتی که بر روی پایگاه داده اصلی انجام می‌شود ، یک نسخه از آن به رویStandby Database  کپی می‌شود، تا هنگام بروز مشکل برای پایگاه داده اصلی، پایگاه دادهStandby Database  جایگزین آن شود بدون کمترین مقدار در از دست دادن اطلاعات.

Pianned Down Time -2

تغییراتی که در جهت ارتقای سیستم ها و یا موارد عملیاتی مانند تهیه نسخه پشتیبان و مدیریت بهینه سیستم هستند، جز زمان های در دسترس نبودن پایگاه داده به صورت قابل پیش‌بینی به حساب می‌آیند. از جمله بهData Changes  وSystem Changes  می‌توان اشاره کرد که برای حالت Data Changes ‌می‌توان به امکاناتPARTITION TABLE  و ساختنINDEX  اشاره کرد که وجود این امکانات باعث افزایش مدیریت بهتر حافظه و بالا رفتن سرعت می‌شودSystem Changes . از موارد دیگری است که به عنوانPlanned Down Time  به حساب می‌آید. در این حالت پایگاه داده برای اضافه کردن و یا حذف کردن سخت‌افزار در دسترس نخواهد بود کهORACLE 10g  از امکاناتی به نامDynamic Resource Provisioning  استفاده می‌کند و عملیاتی از جمله اضافه کردن و یا کم کردن پردازشگر را بهSMP Server  فراهم می‌کند و یا اضافه کردن و یا کم کردنnode  به Real Application Cluster  و حذف و اضافه هارددیسک بدون ایجاد و اختلال در فعالیت پایگاه داده را انجام می دهد.