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

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

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

مدیر بانک اطلاعاتی برای مدیریت فضای دیسک زمان زیادی را صرف می‌کند.برای زیاد کردن سرعت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   را به مراتب راحت تر کند.

نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد