Viewهای پیش‌فرض بانک‌اطلاعاتی اوراکل

در بانک اطلاعاتی گروهی View به صورت پیش فرض موجود می باشند. این View ها خواندنی بوده و بر روی آنها نمی توان تغیری اعمال کرد، این View ها به سه دسته تقسیم بندی می شوند:

  • USER: این View ها اطلاعاتی در مورد اشیایی می‌دهند که کاربر جاری مالک آنها می‌باشد.
  • ALL: این View ها اطلاعاتی در مورد اشیایی می‌دهند که کاربر به آنها دسترسی دارد.
  • DBA: این View ها اطلاعاتی در مورد اشیایی می‌دهند که در بانک اطلاعاتی موجود می‌باشند.
۱۷ فروردين ۹۴ ، ۲۰:۰۶ ۰ نظر
مهدی غفاری

روشن و خاموش کردن بانک‌اطلاعاتی

در پایگاه‌داده اوراکل میتوان بانک اطلاعاتی را با وضعیت‌های مختلف راه اندازی کرد. برای اینکار باید با کاربر SYS وارد محیط SQLPLUS شد(تنها کاربری که می‌تونه این کارو انجام بده چون کاربران دیگه role مربوطه رو ندارند). بانک‌اطلاعاتی برای راه اندازی کامل سه مرحله را پشت سر می گذارد.

  • STARTUP NOMOUNT: در این حالت فضای SGA اختصاص داده می‌شود. (رم از سیستم‌عامل گرفته می‌شود)، در حقیقت در این وضعیت تنها خود Instance راه اندازی شده ولی Control File خوانده نشده و Data File ها نیز برای استفاده باز نمی شوند و هیچ اتصالی نیز به بانک اطلاعتی وجود ندارد.

نکته: گاهی اوقات به هنگام انجام کارهای مربوط به نگهداری و Recovery بانک اطلاعاتی نمی توان بانک اطلاعاتی را برای دسترسی تمام کاربران باز نمود. به همین دلیل باز نمودن بانک اطلاعاتی در این حالت ضروری است. همچنین از حالت NOMOUNT به هنگام ایجاد بانک اطلاعاتی و ایجاد مجدد Control File ها استفاده می شود. 

  • STARTUP MOUNT: در این حالت Data File ها دوباره خوانده شده ولی بانک اطلاعاتی سرویس‌دهی نخواهد کرد. در حقیقت Instance به بانک اطلاعاتی متصل شده، Control Fileها را باز نموده و نام و مسیر Data File ها و Redo Log File ها را از آن ها می خواند، ولی هیچ تغییری نمی توان روی داده های بانک اطلاعاتی انجام داد. چون در این حالت هنوز به Data File های بانک اطلاعاتی نمی توان دسترسی داشت.

در صورتی که بانک اطلاعاتی قبلاً در حالت NOMOUNT راه اندازی شده باشد، می توان با استفاده از دستور زیر آن را در حالت MOUNT قرار داد:

SQL> ALTER DATABASE MOUNT;

همچنین با استفاده از دستور زیر می توان مستقیماً بانک اطلاعاتی را در حالت MOUNT راه اندازی نمود: 

SQL> STARTUP MOUNT;

معمولاً هنگامی که نیاز به Recovery کامل بانک اطلاعاتی ، تغییر نام Data Fileها، تغییر به حالت Archive Log Mode و غیره می باشد، لازم است تا بانک اطلاعاتی را در حالت MOUNT راه اندازی نمود.

    • STARTUP OPEN: در این حالت بانک اطلاعاتی به طور کامل آماده سرویس‌دهی می شود، این دستور معادل دستور STARTUP می‌باشد. در این حالت تمام کاربران مجاز می توانند به بانک اطلاعاتی متصل شده و عملیات مختلفی را روی آن انجام دهند. قبل از این مرحله کاربران عمومی نمی توانستند به بانک اطلاعاتی متصل شوند. دقت داشته باشید زمانی که دستور STARTUP را به تنهایی صادر می‌کنید هر ۳ مرحله به طور خودکار انجام می‌شود. ولی اگر قبلاً بانک اطلاعاتی در حالت MOUNT راه اندازی شده باشد، می توان با استفاده از دستور زیر آن را در حالت OPEN قرار داد:
    SQL> ALTER DATABASE OPEN;

    می توان با استفاده از یکی از دستورات زیر مستقیماً بانک اطلاعاتی را در حالت OPEN راه اندازی نمود:

    SQL> STARTUP;
    SQL> STARTUP OPEN;

    به هنگام باز کردن بانک اطلاعاتی، سرور اوراکل ابتدا تمام Data File ها و Redo Log File ها را باز نموده و سپس چک می کند که حتماً بانک اطلاعاتی در حالت سازگار قرار داشته باشد. اگر بانک اطلاعاتی در حالت سازگار نباشد، در این صورت قبل از باز نمودن بانک اطلاعاتی، فرایندهای پس زمینه عملیات Instance Recovery را به طور اتوماتیک انجام می دهند. اگر علاوه بر Instance Recovery نیاز به Media Recovery نیز باشد، اوراکل اعلام می کند که نیاز به Recovery بانک اطلاعاتی می باشد و تا زمانی که شما عملیات Recovery را انجام ندهید بانک اطلاعاتی را باز نخواهد کرد.

    نکته: بعد از اجرای STARTUP اول دیتابیس دیگر اجازه اجرای STARTUP را نمی‌دهد(خطاهای زیر) در این حالت برای ادامه مراحل استارت‌کردن اوراکل از Alter در ابتدای دستورات استفاده کنید.

    (ORA-01081: cannot start already-running ORACLE - shut it down first)
    (SP2-0734: unknown command beginning "startup op..." - rest of line ignore)

    نکته: اگر بخواهیم از مراحل پایینتر به مرحله بالاتر برویم فقط با alter می‌توانیم اینکار را انجام دهیم:

    alter database open

    نکته: اگر هر کدام از حالت‌های استارت را از لولی بالاتر به طور مستقیم برای روشن کردن دیتابیس به کار بگیریم به طور خودکار لول‌های قبلی نیز اجرا می‌شوند. به عنوان مثال وقتی STARTUP OPEN کنیم دیتابیس به طور کامل اجرا می‌شود.

    نکته: نمی‌توان از لول‌های بالاتر به لول‌های قبل مستقیم سوییچ کرد(حتی با ALTER) حتماً باید دیتابیس SHUTDOWN شود بعد از ابتدا به آن لول از START رفت.

    ادامه مطلب...
    ۱۷ فروردين ۹۴ ، ۲۰:۰۲ ۲ نظر
    مهدی غفاری

    ایجاد یک بانک‌ جدید و تنظیم EM

    ممکن است در طول کار با بانک اطلاعاتی اوراکل نیاز به ایجاد یک مخزن یا همان DataBase جدید داشته باشید با استفاده از دستور ذیل می توانید اقدام به تولید یک بانک اطلاعاتی جدید نمایید.

    DBCA

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

    DROP DATABASE;

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

    SELECT CREATED,NAME FROM V$DATABASE;

    تنظیم محیط EM اوراکل برای بانک جدید

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

    SET ORACLE_SID=LAST_DATABASE_NAME

    EMCA -DECONFIG DBCONTROL DB

    تا این مرحله تنظیمات مربوط به EM بانک اطلاعاتی قبلی حذف می‌گردد.

    SET ORACLE_SID=NEW_DATABASE_NAME

    EMCA -CONFIG DBCONTROL DB -REPOS RECREATE

    EMCTL START DBCONSOLE

    در این مراحل تنظیمات مربوط به EM بانک اطلاعاتی جدید انجام می‌گیرد.

    ۱۷ فروردين ۹۴ ، ۱۹:۲۹ ۰ نظر
    مهدی غفاری

    شنونده اوراکل(LSNRCTL)

    هر نمونه برای دریافت در خواست و پاسخ دهی به نیاز کاربران از یک شنونده استفاده می‌کند در اوراکل بعد از ایجاد بانک اطلاعاتی یک شنونده به طور خودکار راه اندازی می‌شود. برای اطلاع از نام این شنونده می‌توان از دستور زیر استفاده کرد:

    LSNRCTL SHOW CURRENT_LISTENER

    برای کسب اطلاعات از وضعیت شنونده جاری میتوان از دستور زیر استفاده کرد:

    LSNRCTL STATUS

    برای متوقف و یا استارت کردن این شنونده می توان از دو دستور زیر استفاده کرد:

    نکته: حتماً توجه داشته باشید که برای stop یا start نمودن شنونده حتماً از طریق شل ادمین سیستم اقدام کنید.

    LSNRCTL STOP
    LSNRCTL START
    ۱۷ فروردين ۹۴ ، ۱۹:۲۳ ۱ نظر
    مهدی غفاری

    DataBase Resident Connection Pool یا DRCP

    در اوراکل ابزاری بنام DRCP وجود دارد این ابزار مدیریت ارتباطات کاربران را عهده دار است، DRCP همانند واسط JNDI در درون بانک اطلاعاتی عمل می‌کند و باعث می‌شود تا منابع سخت‌افزاری کامپیوتر سرویس دهنده آزاد‌تر باشد.

    ۱۷ فروردين ۹۴ ، ۱۹:۲۱ ۰ نظر
    مهدی غفاری

    معماری‌های بانک اطلاعاتی اوراکل در سطح سرویس دهنده

    بانک‌اطلاعاتی اوراکل دو معماری در سمت سرویس دهنده برای پردازش درخواست‌های کاربران ارائه می‌دهد:

    • معماری Dedicated Server: زمانی از این معماری استفاده می کنیم که تعداد تراکنش‌های بانک اطلاعاتی کم ولی حجم تراکنش‌ها بالا است.
    • معماری Shared Server: زمانی از این معماری استفاده می‌کنیم که تعداد تراکنش‌ها بالا ولی حجم تراکنش‌ها پایین است. در حالت‌هایی ممکن است که بخواهیم بعد از نصب اوراکل معماری اوراکل را به حالت Shared Server تغیر دهیم، برای اینکار کافیست از دستور زیر استفاده کنیم.
    ALTER SYSTEM SHARED_SERVER=80;

    در این حالت 80 فرایند به طور همزمان اقدام به پاسخگویی نیاز کاربران می کنند. حال اگر بخواهیم معماری را به حالت Dedicated Server تغیر دهیم میتوانیم از دستور ذیل استفاده نماییم.

    ALTER SYSTEM SHARED_SERVER=0;
    ۱۷ فروردين ۹۴ ، ۱۹:۱۹ ۰ نظر
    مهدی غفاری

    session در اوراکل

    هرگاه کاربری به بانک اطلاعاتی متصل گردد، بانک اطلاعاتی برای کاربر مذکور یک جلسه یا همان SESSION ایجاد می‌کند، با استفاده از دستور زیر می‌توان کاربرانی که با نام کاربری SYSTEM به اوراکل متصل شده‌اند را مشاهده کرد.

    SELECT SERIAL# , SID , USERNAME , MACHINE , STATUS , PROGRAM FROM V$SESSION WHERE USERNAME =’SYSTEM’;

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

    ALTER SYSTEM KILL SESSION ’75,20’;

    دقت داشته باشید که عدد 75 به SID اشاره کرده و عدد 20، SERIAL# است. برای یافتن تعداد SESSION های فعال می‌توان از دستور زیر استفاده کرد.

    SELECT SESSIONS_CURRENT FROM V$LICENSE;
    ۱۷ فروردين ۹۴ ، ۱۹:۱۵ ۰ نظر
    مهدی غفاری

    دستورات کنسولی محیط SQLPlus - قسمت اول

    در محیط CMD وارد نرم‌افزار SQLPLUS می‌شیم.

    sqlplus

    قویترین کاربری که در سطح بانک‌اطلاعاتی اوراکل داریم SYS است.

    تعویض پسورد

    برای تعویض پسورد توسط خود یوزر در بانک‌اطلاعاتی:

    set password  

    یا در ورژن‌های جدید اوراکل:

    password

    مسئله حق مالکیت

    ما با ۲ نوع یوزر موقع نصب اوراکل آشنا شدیم، به تصویر زیر دقت کنید:

    تصویر فوق نشان می‌دهد که مالک RDBMS کاربر Oracle است (در قسمت بالا معرفی نمودیم)

    در سلسله مراتب قدرت کاربر ، کاربر sys و سپس system قرار دارند و پس از آنها کاربرانی که تعریف می‌نماییم.

    ادامه مطلب...
    ۱۴ فروردين ۹۴ ، ۲۰:۱۴ ۰ نظر
    مهدی غفاری

    نصب و راه‌اندازی بانک‌اطلاعاتی اوراکل 12C

    جهت نصب بانک‌اطلاعاتی اوراکل گام‌های زیر را دنبال کنید:

    بعد از دانلود فایل‌ها از سایت شرکت اوراکل ابتدا آنها را از حالت فشرده خارج کنید. (همچنین می‌توانید از پی‌سی‌دنلود اقدام به دانلود فایل‌ها کنید.)
    پس از ورود به پوشه برنامه، بر روی فایل setup.exe راست کلیک کنید و با ادمین آن را اجرا کنید. با اجرای این فایل پنجره‌ای مطابق با تصویر زیر نمایش داده می‌شود. کمی صبر کنید تا وارد مرحله بعدی نصب شوید.

    ادامه مطلب...
    ۰۷ فروردين ۹۴ ، ۱۷:۰۲ ۳۷ نظر
    مهدی غفاری

    پرسش و پاسخ

    س: آیا ساختار کش ساختاری منسجم است؟

    ج: بله - ولی به طور دستی قابلیت ویرایش توسط DBA را ندارد مگر با برنامه‌نویسی از طریق SQLJ

    نکته: با SQLJ حتی می‌توان روش رمزنگاری اوراکل را هم عوض کرد.

    س: وقتی تعداد داده‌های جدول در دیتابیس زیاد باشد آیا موقع کوئری گرفتن تمام این جدول به یکباره کش می‌شود؟

    ج: اگر تعداد داده‌های جدول شما خیلی زیاد باشد که امکان کش بصورت یکباره وجود نداشته باشد اوراکل جدول را تکه تکه کش می‌کند. و در این صورت سیستم کش اوراکل از بیس رفته است. به طور مثال اگه حدول شما بسیار بزرگ باشد و رم کافی نداشته باشید اوراکل تکه تکه جدول رو درون فضای SGA می‌آورد و روی PGA پردازش را انجام می‌دهد و اگر به داده مورد نظر خود نرسد تکه فعلی را از فضای SGA بیرونن می‌برد و تکه بعدی را وارد فضای SGA می‌کند تا پردازش آن صورت گیرد.

    س: زمانی که اوراکل چند جدول را کش کرده است و برای کش کردن جدول جدید دیگر فضای رمی نداریم چه اتفاقی می‌افتد؟

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

    س: اگر ما ۱۰ میلیون رکورد داشته باشیم و بخوایم روی این ۱۰ میلیون رکورد کوئری بزنیم اوراکل تا چه مقدار توانایی انجام سریع این کوئری رو داره؟

    ج: اگر شما ۱۰ میلیون رکورد داشته باشید و بخواین روی این ۱۰ میلیون رکورد کوئری بزنید و RAM کافی نداشته باشیم نه تنها اوراکل خوب عمل نمی‌کنه بلکه ضعیف هم عمل نمی‌کنه (این مطلب در مورد تمام دیتابیس‌ها صادقه، چون شما باید محفظه کش‌ات حداقل اندازه result هات باشه)

    به خاطر همین موضوع ما از SI به محیط RAC سوییچ می‌کنیم چون هرچه قدر هم سرور ما قوی باشه جوابگو SGA نیست چون وقتی دیتای ما که تو هارده نزدیک 20exabyte باشه شما هیچ رمی رو نمی‌تونید روی یک سرور بذارید که فضای SGA بتونه این حجم اطلاعات رو بالا بیاره و کش کنه(البته ۲۰ اگزابایت ما وقتی میاد رو RAM میشه نزدیک ۵ اگزابایت ولی باز ما همچین رمی رو نمی‌تونیم برای یک سرور در حالت SI پیدا کنیم) برای همین ما ورود پیدا می‌کنیم به محیط RAC که در این محیط ما دیگر یک فضای SGA نداریم و مجموعه‌ای از کلاسترها رو داریم که مثلاً هر کلاستر ۶۴ گیگ RAM داره(حالا وقتی ما صحبت از ۲۰ اگزابایت می‌کنیم حتماً نیاز به ۱۰۰۰ کلاستر ۶۴ گیگ RAM داریم که بتونیم از اون کش استفاده کنیم)

    س: فضای SGA و PGA چقدر است؟

    ج: این فضا موقع نصب توسط DBA از درصدی از مقدار رم شما مشخص می‌شود. همچنین بعد از نصب در صورت نیاز به تغییر قابل تغییر است.

    ادامه مطلب...
    ۰۳ فروردين ۹۴ ، ۰۱:۲۲ ۰ نظر
    مهدی غفاری