MATERIALIZED VIEW

همانطور که می دانید ویو(view) ذخیره پرس و جو در بانک اطلاعاتی به یک اسم خاص می باشد که عمده  کاربرد آن در امنیت و استقلال منظقی داده ها می باشد ویوها هیچ فضایی را برای ذخیره داده مصرف نمی کنند و با هر بار اجرا، پرس وجو را هم اجرا می کنند. همانند ویو، شی دیگری نیز وجود دارد که شامل یک پروس و جو می باشد که برخلاف ویو، خروجی پرس و جو را هم در جایی ذخیره می کند و در مواقع ضروری می توان آن را بروز کرد این شی Materialized View نام دارد.

(بیشتر…)

بروزرسانی کامل MV به صورت non-atomic

در صورتی که در زمان بروزرسانی mvها، نیازی به در دسترس بودن اطلاعات وجود ندارد، می توان در هنگام بروزرسانی کامل mv، از دستور truncate به جای delete استفاده کرد.

این تغییر سبب می شود تا هیچ فردی در زمان بروز رسانی mv، به اطلاعات آن دسترسی نداشته باشد پس این روش که اصطلاحا non-atomic هم نامیده می شود، خطراتی از قبیل لغو شدن بروزرسانی در حین درج اطلاعات را به همراه دارد که به همین دلیل استفاده کمتری نسبت به شیوه معمول دارد هر چند با استفاده از truncate به جای delete، سرعت بروزرسانی کامل(complete) بسیار افزایش خواهد یافت و کاهش حجم آرشیولاگ ایجاد شده دیتابیس هم از دیگر ثمرات آن می باشد.

(بیشتر…)

قابلیت PLUGGABLE DATABASE در اوراکل 12cR1

فرض کنید نقش مدیریت مجموعه “نگهداشت دیتابیس” را در سازمانی برعهده دارید که در آن سازمان، دیتابیسهای متعددی با حجم بارکاری بسیار پایین وجود دارند با توجه به بارکاری کم این دیتابیسها، اگر به ازای هر دیتابیس از سرور و یا ماشین مجزایی استفاده کنید، با چالشهای احتمالی زیادی روبه رو خواهید شد چالشهایی از قبیل:

1.ممکن است نیاز شود تعداد dbaها را افزایش دهید.

2.با توجه به حجم پایین بارکاری دیتابیسها، احتمالا از همه منابع سرور استفاده نخواهد شد و در صورت عدم استفاده از virtualization، ممکن است منابع زیادی به هدر برود.

3.در صورتی که سیاست سازمان به راه اندازی دیتاگارد باشد، باید برای هرکدام از دیتابیسها، دیتاگارد جداگانه ای راه اندازی شود که در این صورت، نگهداری سرورها و دیتاگاردها نیاز به هزینه بالایی خواهد داشت.

4.برای گرفتن بکاپ روزانه از دیتابیسها، باید مستقلا از همه آنها بکاپ گرفت که این کار برای تعداد بالای دیتابیس می تواند پرهزینه باشد.

با این فرض که نسخه اوراکل استفاده شده در این سازمان برابر با 11g است، دو راهکار جایگزین دیگر هم برای نگهداری این دیتابیسها وجود دارد که در ادامه چالشهای هر کدام از آنها را مورد بررسی قرار خواهیم داد.

راهکار اول: تجمیع همه دیتابیسها در قالب یک دیتابیس و ایجاد اسکیمای مجزا برای هر دیتابیس. تعدادی از معایب و چالشهای این راهکار را در ادامه می بینید:

1.با اهدای مجوز و یا نقش سطح بالا یه یک کاربر، آن کاربر می تواند دیتای همه اسکیماها و یا به عبارتی دیگر همه سامانه ها را ببینید و یا تغییر دهد.

2.در صورتی که کاربری منابع زیادی را از سیستم بگیرد، روی سامانه های دیگر هم اثر منفی خواهد گذاشت.

3.این ساختار بسیار مستعد اختلاط می باشد و اگر روزی تصمیم به جدا کردن سامانه ای را گرفته اید، روشهای زمانبری را برای جدا کردن آن سامان در پیش خواهید داشت.

راهکار دوم: استفاده از چند instance و قرار دادن چند دیتابیس به صورت مجزا از هم در یک سرور. چالشهای این راهکار بسیار بدیهی است و مدیریت دیتابیسها در این محیط می تواند برای dba ایجاد چالش کند.

حال در اوراکل 12c، ویژگی جدیدی ارائه شد که نه تنها مشکلات مذکور را مرتفع می کند بلکه قابلیتهای جدیدی را هم به همراه دارد این ویژگی (pluggable database(PDB نام دارد.

(بیشتر…)

Full Database Caching

در نسخه های قبل از 12c، این قابلیت وجود داشت تا سگمنتهای خاصی که به کررات مورد استفاده قرار می گیرند را برای ماندن بیشتر در حافظه، انتخاب کنیم این کار در صورت انتخاب درست، می توانست سبب بهتر شدن کلی کارایی شود.

حال در نسخه 12c این قابلیت به وجود امد تا این اتفاق در سطح کل بانک اطلاعاتی قابل انجام باشد(البته در صورت امکان).

(بیشتر…)

RAC – Dynamic Remastering

در محیط RAC هر instance بخشی از GRD را در SGA خود جای می دهد و همانطور که می دانید GRD هم حاوی اطلاعاتی از قبیل data block address، SCN، past image، current image و … می باشد پس در نتیجه هر instance، اطلاعات مجموعه ای از بلاکها را کنترل می کند و master آنها می باشد و متقابلا هر بلاک هم یک نود مستر دارد به طوری که اگر مستر فعلی بلاک دچار مشکل شود، نود دیگری مسئولیت این بلاکها را به عنوان مستر بر عهده می گیرد.

(بیشتر…)

LARGE OBJECT SEGMENTS

برای ذخیره داده های بدون ساختار در بانک اطلاعاتی اوراکل، ابتدا نوع داده LONG و LONG RAW ارائه شد که LONG برای ذخیره کاراکترهای با حجم زیاد و LONG RAW برای فایلهای باینری(صوت، تصویر و ..) استفاده می شد(و البته می شود) این نوع داده دارای محدودیتهای بسیاری بودند که شاید به همین دلیل اوراکل در نسخه 8i، نوع داده (large object)LOB را معرفی کرد که بسیاری از محدودیتهای LONG و LONG RAW را برطرف می کند از جمله این رفع محدودیتها می توان به موراد زیر اشاره کرد: (بیشتر…)

EM Express در اوراکل 12c

EM DB Express ابزار گرافیکی ای است که می تواند برای مانیتورینگ بانک اطلاعاتی مورد استفاده قرار بگیرد. این ابزار نسبت به ابزار گرافیکی Enterprise manager که در اوراکل ماقبل 12c موجود بود، قابلیتهای بسیار کمتری دارد به طوری که با وجود ابزارهای گرافیکی همانند Grid/Cloud  control شاید کمتر کسی به سراغ این ابزار برود.

(بیشتر…)

لینوکس برای dba(آشنایی با دستورات و فایلها در لینوکس)

فایلها و پوشه ها

فایل inittab

زمانی که پروسس init شروع به کار می کند، فایل inittab را در مسیر etc/ می خواند تا بداند دقیقا چه سرویسهایی را در چه runlevelای اجرا کند  و نهایتا در runlevelای که این فایل به عنوان runlevel پیش فرض معرفی کرده است، توقف می کند و وارد runlevel های بعدی نخواهد شد.

(بیشتر…)

تغییر و بازیابی پسورد

فرض کنید فردی تنها پسورد یوزر sys را از بین یوزرهای بانک در اختیار دارد و در عین حال قصد دسترسی به یوزر دیگری را دارد تا برای آن یوزر، تغییراتی را اعمال کند

به طور مثال می خواهد برای آن یوزر، job ای را که با dbms_job تعریف شده را broken کند، بدون تردید با قابلیت یوزر sys این فرد می تواند پسورد آن یوزر را به راحتی تغییر دهد اما این تغییر ممکن است سد راهی برای برنامه کاربردی خاص و یا افراد دیگری که از طریق این یوزر به بانک وصل می شوند، شود و در این صورت با تغییر پسورد این یوزر، تغییرات دیگری هم باید انجام شود که ممکن است پرهزینه باشد.

(بیشتر…)