برطرف کردن گپ استندبای از اوراکل 10g با کمک incremental backup قابل انجام است البته به صورت کاملا دستی! انجام این کار نیازمند تعیین شماره scn، تهیه بکاپ از بانک اصلی(بصورت incremental)، ارسال فایل به سرور استندبای و …. بود از اوراکل 12cR1، بهبودهایی در این زمینه صورت پذیرفت و قسمتی از این عملیات به صورت خودکار قابل انجام است ولی کماکان نیاز بود با طی چند مرحله این کار انجام شود:
ایجاد SQL Profile به صورت دستی
برای اعمال نظر در مورد execution plan پرس و جویی که اصلاح متن ان امکان پذیر نیست، می توان از sql profile کمک گرفت و از طریق ایجاد ان، هینتهایی را به این پرس و جو اعمال کرد. در ادامه همراه با یک مثال ساده، اثر استفاده از sql profile را بررسی خواهیم کرد.
اجرای exp/expdp در محیط data guard
برای تهیه دامپ در محیط data guard، می توان از ابزار Exp بصورت مستقیم و از ابزار Expdp به صورت غیرمستقیم(با کمک database link) استفاده کرد همچنین با تبدیل data guard به snapshot standby، هم می توان مجددا از ابزار Expdp به صورت مستقیم بهره گرفت.
در ادامه به بررسی این سه روش خواهیم پرداخت.
افزودن دیتافایل UNNAMED00nnn به data guard
در صورتی که پارامتر standby_file_management در محیط data guard به مقدار manual تنظیم شده باشد، با افزودن دیتافایل جدید در بانک اصلی(primary)، data guard با خطای ORA-01110 متوقف خواهد شد. برای رفع این خطا، می توان این دیتافایل را به صورت دستی در data guard ایجاد کرد. مثال زیر ببینید.
همسان سازی خودکار پسورد فایل
یکی از ویژگی های اوراکل 12c، همسان سازی خودکار پسورد فایل در data guard می باشد. با این ویژگی، بعد از تغییر پسورد کاربر sys در primary، لزومی به انتقال(scp) پسورد فایل به data guard وجود ندارد.
پارامتر sql92_security
سوال: در صورتی که کاربر a تنها مجوز حذف اطلاعات(delete) را بر روی جدول usef.tbl1 دارا باشد(بدون داشتن مجوز select)، امکان اجرای دستور زیر را خواهد داشت؟
conn a/a
delete usef.tbl1 where name like ‘%u%’;
پسورد کاربر sys و پسوردفایل
پرسش: اگر با دستور orapwd پسوردفایل جدیدی ایجاد شود(همراه با پسوردی جدید برای کاربر sys) ، اطلاعات مربوط به پسورد کاربر sys در جداول data dictionary هم تغییر خواهد کرد؟
پاسخ: خیر، ایجاد و یا تغییر رمز sys در پسورد فایل، تغییری را در رمز کاربر sys در جداول data dictionary نخواهد گذاشت همچنین برای اتصال از راه دور(tns و sysdba) به بانک اطلاعاتی، ملاک همان پسوردفایل خواهد بود. مثال زیر را ببینید.
بررسی Invoker’s Rights و Definer’s Rights
پرسش: کاربر A قصد اجرای پروسیجری از کاربر B را دارد، برای انجام این کار، به کاربر A مجوز execute بر روی این پروسیجر داده شده است. در قسمتی از متن این پروسیجر، پسورد کاربر B هم تغییر خواهد کرد در صورتی که کاربر A، مجوز alter user را ندارد. با در نظر گرفتن این مسئله، کاربر A، امکان اجرای این پروسیجر را دارد؟
تعیین پسورد ساده برای کاربر sys در 12cR2
در زمان ساخت پسوردفایل در نسخه 12cR2، باید برای تعیین پسورد، پیچیدگی هایی را لحاظ کرد تا پسوردفایل قابل ایجاد باشد. برای نمونه پسورد باید حداقل شامل 8 کارکتر باشد که در این هشت کارکتر حداقل یک حرف، یک رقم و یک کارکتر خاص(شبیه _,# و ….) موجود باشد همچنین این کارکتر نباید مشابه نام کاربری باشد و …. در غیر این صورت ایجاد پسوردفایل با خطا متوقف خواهد شد:
پارامتر redo_transport_user
در اوراکل 11g با تغییر پسورد sys باید مجددا پسوردفایل به محیط data guard منتقل شود(برخلاف نسخه 12c). حال اگر یکی از برنامه های دوره ای تیم امنیت، تغییر پسورد کاربر sys باشد، این مسئله می تواند برای پشتیبان بانک ایجاد مزاحمت کند همچنین در صورت انتقال اطلاعات با دسترسی sysdba، به لحاظ امنیتی هم شاید بستر نفوذی بین این دو سرور ایجاد باشد.