همانطور که می دانید؛ ایجاد گزارش awr در محیط ADG به صورت روتین امکان پذیر نمی باشد این اتفاق به دلیل عدم امکان ایجاد snapshot بر روی بانکی که در حالت read only قرار دارد، کاملا منطقی بنظر می رسد. در اوراکل 12cR2، راهکاری برای این مسئله اندیشیده شد و امکان تهیه این گزارش برای ADG هم فراهم شده است.
مانیتورینگ ایندکسها در اوراکل 11g و 12c
#پرسش: کدام یک از ایندکسها در بانک اطلاعاتی بلاستفاده و قابل حذف هستند؟ تعداد رجوع به یک ایندکس را چگونه می توان تعیین کرد؟
پاسخ: دست یافتن به پاسخ قسمت اول این سوال، در اوراکل نسخه 10g و 11g نسبتا کار ساده ای است این کار با اجرای یک دستور و همچنین طول کشیدن مدت زمانی از اجرای ان(گاها بیش از چند ماه)، قابل انجام خواهد بود.
ویژگی Multi Instance Redo Apply
در اوراکل 11g با پیاده سازی دیتاگارد به صورت کلاستر، تنها نودی که دستور alter database manage recover بر روی ان اجرا شده(برای اولین بار!)، مسئولیت اعمال کردن redoها را برعهده خواهد داشت و مابقی نودها می توانند برای گزارش گیری، تهیه بکاپ و یا دریافت redo (یا آرشیو) و… مورد استفاده قرار بگیرند.
در اوراکل 12cR2، بهبودی در این زمینه رخ داد که می توان با کمک آن، همه نودها را در recovery سهیم کرد. این قابلیت که (Multi Instance Redo Apply (MIRA نام دارد، امکان اعمال redoها را با کمک چند instance ممکن می سازد.
نگاهی گذرا به administrative privilegeها در اوراکل
راه اندازی دیتاگارد با کمک dbca
Unified Auditing
همانطور که می دانید، ثبت وقایع برای نسخه های قبل از اوراکل 12c، از طریق standard auditing امکان پذیر است. با کمک این شیوه از auditing، می توان تمامی عملیات کاربران حاضر در بانک اطلاعاتی را مانیتور نمود (البته به غیر از کاربرانی که با مجوز sysdba به بانک لاگین کرده اند.) این شیوه از auditing در کنار مزیتهای فراوانی که به همراه دارد، با محدودیتهایی هم روبروست، محدودیتهایی نظیر:
1.امکان دستکاری راحت audit record توسط کاربر sys
2.عدم ثبت وقایع کاربر sys در جدولی از بانک
3.عدم امکان auditing بر اساس role کاربران
4.عدم پارتیشن بندی پیش فرض جدول $aud و مشقتهای حذف بازه ای اطلاعات آن(delete + HWM)
5.عدم امکان auditing بر اساس مولفه هایی چون rman، datapump، sqlldr و …
6.عدم امکان auditing بر مبنای host name، ip address و …
و …
ریکاوری استندبای تا یک تاریخ یا scn مشخص
برای ریکاوری استندبای(با این فرض که استندبای عقب یا در حالت delay قرار دارد) تا یک تاریخ یا scn، مشخص می توان از دستور زیر استفاده کرد:
SQL> ALTER DATABASE RECOVER automatic standby database until time ‘2017-05-15 06:15:47’;
Database altered.
در این صورت با رسیدن ریکاوری به زمان تعیین شده، پیامی مشابه با پیام زیر، در alert log قابل مشاهده خواهد بود:
Incomplete Recovery applied until change 41254778 time 05/15/2017 06:15:47
Media Recovery Complete (DBSTEST)
Completed: ALTER DATABASE RECOVER automatic standby database until time ‘2017-05-15 06:15:47’
ستون last_login در ویوی dba_users
اخرین بار چه زمانی کاربر usef به بانک login کرده است؟؟؟ در اوراکل 12c، بدون تنظیم هیچ پارامتر اضافه ای، به راحتی می توان به این سوال پاسخ داد:
select LAST_LOGIN,username from dba_users where username=’USEF’;
فراخوانی lobs با dblink در اوراکل 12cR2
در اوراکل 11g، با کمک dblink نمی توان فیلدی که از نوع داده lobs می باشد را به صورت زیر فراخواند:
select * from usef.tbl@db11g;
ORA-22992: cannot use LOB locators selected from remote tables
همچنین اگر جدول مورد نظر در اوراکل ماقبل از نسخه 12cR2 باشد و فراخوانی ان در نسخه 12cR2 انجام شود، کماکان با خطا مواجه خواهد شد:
–in 12cR2 to 11g
select * from tbl@db11g;
ORA-65510: Distributed LOB operations are not supported on pre-12.2 databases.
حال اگر طرفین 12cR2 باشند، این محدودیت برطرف خواهد شد:
select * from tbl@db12r2;
1 <CLOB>
چالشهای دیتاگارد در محیط Multitenant
پرسش: در محیط Multitenant، با ایجاد یک pdb جدید، چه اتفاقی برای دیتاگارد رخ خواهد داد؟ آیا دیتاگارد از حالت ریکاور خارج خواهد شد؟ چگونه میتوان در زمان انجام عملیات pdb cloning و یا remote hot clone ، دیتاگارد را در حالت همسان با بانک اصلی نگه داشت؟ و …
در این متن قصد داریم تا به این دسته از سوالات پاسخ دهیم و شیوه های مختلف ایجاد یک pdb و همچنین نحوه اثر گذاری ان را بر روی دیتاگارد، مورد بررسی قرار دهیم.