بانک اطلاعاتی اوراکل

وحید یوسف زاده

بانک اطلاعاتی اوراکل

وحید یوسف زاده

RMAN در محیط RAC

| پنجشنبه, ۱۴ آبان ۱۳۹۴، ۰۸:۴۷ ب.ظ

در هنگام استفاده از RMAN در محیط RAC، اگر از چند کانال برای موازی سازی عملیات استفاده شود می توان به جای تحمیل بار بر روی یک نود، کانالها را طوری تنظیم کرد تا بار بر روی نودهای مختلف پخش شود این کار را می توان به صورت زیر انجام داد:

بازیابی دیتافایل با آرشیولاگ

| يكشنبه, ۱۰ آبان ۱۳۹۴، ۰۸:۳۱ ب.ظ

فرض کنید دیتافایلی که جدیدا به بانک اضافه شده بنا به دلایلی از بین رفته باشد در این صورت اگر آرشیوها از زمان ایجاد دیتافایل موجود باشند، این امکان وجود دارد که این دیتافایل را بازیابی کرد.

البته همانطور که گفته شد، این کار شرط بسیار سختی دارد:

"همه آرشیو لاگها از زمان ایجاد دیتافایل موجود باشند"

(..., Cluster File System(ACFS, OCFS2

| دوشنبه, ۱۳ مهر ۱۳۹۴، ۰۹:۵۳ ب.ظ

دانلود PDF

همانطور که می دانید در محیط RAC، همه database fileها(از قبیل datafileها، کنترل فایلها و redo log fileها) و فایلهای voting disk و OCR باید در یک فضای مشترک بین نودها قرار بگیرند به همین دلیل در زمان راه اندازی RAC نوع سیستم فایل فضای مورد استفاده بین نودها، باید طوری انتخاب شود تا بتواند امکان sharing را به وجود آورد در حال حاضر سیستم فایلهای مختلفی وجود دارند تا این امکان را فراهم کنند.

enq: TM - contention

| پنجشنبه, ۲ مهر ۱۳۹۴، ۰۹:۵۶ ق.ظ

دانلود pdf

enq: TM – contention معمولا به دو دلیل اصلی زیر رخ می دهد(البته دلایل دیگر هم دارد):

1. عدم ایندکس گذاری بر روی کلید خارجی در جدول child

2. direct load insert

افزودن نود جدید در محیط rac

| شنبه, ۲۸ شهریور ۱۳۹۴، ۱۰:۰۰ ب.ظ

دانلود pdf

زمانی که یک بانک اطلاعاتی به محیط rac منتقل می شود، ممکن است نتوان از همان ابتدا تعداد نودهای مورد نیاز برای این بانک را  به خوبی تشخیص داد به همین دلیل شاید در آینده لازم باشد تا نودی از نودهای فعلی را حذف کرد تا در هزینه صرفه جویی شود و یا اینکه تعداد نودها را بالا برد تا بتوان از مزایای آن برای سیستم استفاده کرد.

ORA-00060: Deadlock

| چهارشنبه, ۱۸ شهریور ۱۳۹۴، ۰۹:۱۵ ب.ظ


User2

User1

 

update  usef_wait set a=25 where a=18 ;

update  usef_wait set a=35 where a=19 ;

 

 

update  usef_wait set a=36 where a=19 ;

update  usef_wait set a=26 where a=18 ;

 

enq: TX - row lock contention

| چهارشنبه, ۱۸ شهریور ۱۳۹۴، ۰۹:۰۶ ب.ظ

PDF دانلود 

این نوع wait معمولا زمانی که چند نفر بخواهند به صورت همزمان یک رکورد را تغییر دهند، اتفاق می افتد. وبرای کم رنگ کردن آن باید برنامه را طوری تغییر داد تا کاربر زودتر مجبور به rollback یا commit شود.


ابن wait در مود Share(mode=4 و ستون p1 ویوی v$active_session_history برابر با 1415053316 می باشد) و یا مود Exclusive(mode=6 و p1=1415053318) ممکن است اتفاق بیفتد.


روشهای شناسایی و رفع Block Corruption

| يكشنبه, ۱۵ شهریور ۱۳۹۴، ۱۰:۲۸ ب.ظ

block corruption در بانک اطلاعاتی اوراکل خطای بسیار معروفی است که ممکن است سبب از دست رفتن داده شود این خطا معمولا به خاطر مشکلات سخت افزاری یا سیستم عاملی رخ می دهد و در صورت نداشتن backup سالم از قسمت خراب شده به ناچار باید از اطلاعات ذخیره شده در آن قسمت، صرف نظر کنیم. این اتفاق به دو شکل ممکن است رخ دهد:

cursor sharing و bind variable

| شنبه, ۷ شهریور ۱۳۹۴، ۰۸:۵۱ ب.ظ

وقتی که اوراکل دستوری را اجرا می کند، سعی دارد تا فرم قابل اجرای دستور اجرا شده(که plan آن مشخص شده) را در library cache نگهدارد تا در صورت امکان از آن استفاده مجدد کند حال اگر این فرم پارس شده برای دستور دیگری مورد استفاده قرار بگیرد می گویند یک soft parse انجام شده است و در صورتی که اوراکل مجبور شود یک فرم جدید قابل اجرا(که در library cache موجود نیست) برای دستور وارده بسازد، hard parse صورت گرفته است.

رفع گپ از استندبای با rman

| يكشنبه, ۱ شهریور ۱۳۹۴، ۰۸:۲۶ ب.ظ

فرض کنید یک بانک اطلاعاتی با چندین ترابایت data تنها یک آرشیوی که در استندبای اعمال نشده را از دست داده است در این حالت، راه اندازی دوباره استندبای به دلیل محدویتهایی مثل شبکه، ممکن است کاری بسیار پر مشقت باشد برای جلوگیری از این کار(راه اندازی مجدد)، می توان با دانستن scn جاری استندبای، از بانک اصلی به صورت incremental بکاپ گرفت و gap ایجاد شده بین بانک اصلی و استندبای را رفع کرد.

متدهای table reorganization

| يكشنبه, ۲۵ مرداد ۱۳۹۴، ۱۰:۲۱ ب.ظ

معمولا بعد از مدتی کار بر روی جداول و یا در پی اتفاقاتی خاص، ممکن است که نیاز شود تا جدولی خاص از یک tablespace و یا کل objectهای tablespace را دوباره سازماندهی کنیم tablespace reorganization معمولا به عنوان یک امر خطیر در حیطه وظایف dba محسوب می شود. آنچه که در این قسمت قصد داریم در مورد آن مطالبی را ارائه کنیم، دلایل نیاز به reorganization و چگونگی انجام آن می باشد.

index scan و table scan

| سه شنبه, ۲۰ مرداد ۱۳۹۴، ۰۵:۴۴ ب.ظ

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

روش ساخت db-link بدون تنظیم tns

| چهارشنبه, ۱۴ مرداد ۱۳۹۴، ۱۰:۳۱ ب.ظ

 روش اول:


Create database link source connect to username identified by password using

'hostname/port/sid';

نمایش اطلاعات درون datafile +دانلود نرم افزار

| سه شنبه, ۱۳ مرداد ۱۳۹۴، ۱۱:۴۷ ب.ظ

اطلاعات درون یک datafile را می توان با ابزارهای ارائه شده و بدون استفاده از بانک اطلاعاتی خواند. اما این اطلاعات عموما ناقض هستند و باید بسیار خبره بود تا اطلاعات کامل و دقیقی را با این ابزارها بدست آورد.  

ولی باز با این اوصاف، شاید دسترسی به اطلاعات نصفه و نیمه دیتافایلها، در کنار جالب بودن آن، کمکی هم به ما بکند. برای مثال، می توان به راحتی با داشتن یک دیتافایل از بانک، dbid بانک را بدست آورد و یا مشخصات کاربران بانک را فهمید و یا اطلاعات truncate شده را در درون آن یافت و ...

بازیابی سریع datafile با کمک file descriptor لینوکس

| جمعه, ۹ مرداد ۱۳۹۴، ۰۸:۲۹ ب.ظ

 در صورت حذف اتفاقی datafile از روی سیستم عامل لینوکس، می توانیم با طی مراحلی، datafile حذف شده را برگردانیم(البته با اقدام فوری).البته این کار تا زمانی که بانک اطلاعاتی کماکان در حال اجرا باشد، قابل انجام است در غیر این صورت، لینکی که file descriptor به آن اشاره می کند، برای همیشه حذف خواهد شد.