در صورتی که پارامتر standby_file_management در محیط data guard به مقدار manual تنظیم شده باشد، با افزودن دیتافایل جدید در بانک اصلی(primary)، data guard با خطای ORA-01110 متوقف خواهد شد. برای رفع این خطا، می توان این دیتافایل را به صورت دستی در data guard ایجاد کرد. مثال زیر ببینید.
Enable_Parallel_Dml
تا قبل از اوراکل 12c، برای اجرای همروند دستورات dmlای، باید در سطح session همروندی فعال می شد و عدم فعالسازی همروندی در این سطح، سبب می شد تا استفاده از hint در دستور dmlای، اثرگذار نباشد.
همسان سازی خودکار پسورد فایل
یکی از ویژگی های اوراکل 12c، همسان سازی خودکار پسورد فایل در data guard می باشد. با این ویژگی، بعد از تغییر پسورد کاربر sys در primary، لزومی به انتقال(scp) پسورد فایل به data guard وجود ندارد.
نوشتن پیام در فایل alert یا trace
برای نوشتن پیام در فایل alert و یا trace، می توان از DBMS_SYSTEM.KSDWRT استفاده کرد این پروسیجر دارای دو پارامتر می باشد که پارامتر اول ان مشخص می کند پیام در کدام یک از این دو فایل ثبت شود که عدد یک، پیام را در trace file ثبت خواهد کرد و عدد دو به منظور نوشتن در فایل alert می باشد همچنین عدد سه در هر دو این فایلها، پیام را ثبت خواهد کرد همچنین پیام باید در پارامتر دوم تعیین شود:
پارامتر sql92_security
سوال: در صورتی که کاربر a تنها مجوز حذف اطلاعات(delete) را بر روی جدول usef.tbl1 دارا باشد(بدون داشتن مجوز select)، امکان اجرای دستور زیر را خواهد داشت؟
conn a/a
delete usef.tbl1 where name like ‘%u%’;
تغییر نام یک pdb
برای تغییر نام یک pdb، ابتدا باید ان را بصورت restricted باز کرد:
alter pluggable database MY_PDB1 close;
alter pluggable database MY_PDB1 open restricted;
حذف فایل در plsql
برای حذف فایل از طریق محیط plsql می توان از پروسیجر DBMS_BACKUP_RESTORE.DELETEFILE استفاده کرد.
مثال زیر را ببینید:
[oracle@tracsb1 ~]$ touch test
SQL> exec dbms_backup_restore.deletefile(‘/home/oracle/test’);
PL/SQL procedure successfully completed
[oracle@tracsb1 ~]$ ls -l test
ls: cannot access test: No such file or directory
همانطور که در مثال می بینید، فایل test بعد از اجرای این پروسیجر حذف شده است.
آخرین زمان تغییر پسورد یک کاربر
سوال: اخرین باری که یک کاربر خاص کلمه عبورش را تغییر داده، چه زمانی بوده است؟
پاسخ:برای تعیین زمان تغییر پسورد یک کاربر، می توان به فیلد ptime از جدول user$ رجوع کرد. دستور زیر زمان تغییر پسوردهای کاربران را به صورت نزولی نشان خواهد داد:
select name,ptime AS “LAST TIME CHANGED” from sys.user$ where ptime IS NOT NULL order by ptime DESC;
ساخت یک کاربر مشابه کاربری دیگر
در صورتی که بخواهیم کاربری را به لحاظ دسترسی ها و کلمه عبور مشابه کاربر دیگر ایجاد کنیم، می توانیم از اسکریپتهای زیر استفاده کنیم.
توجه: در اسکریپتهای زیر فرض بر ان است که کاربر جدید، بر اساس مشخصات کاربر usef ساخته خواهد شد.
دستور alter table … move online
همانطور که می دانید، استفاده از دستور alter table …move برای جابجایی یک جدول، سبب می شود تا وضیعت ایندکسهای مربوط به جدول، به صورت unusable دراید. در نسخه 12.2، استفاده از کلمه کلیدی online در این دستور، مانع از نامعتبر شدن ایندکسها خواهد شد و کماکان ایندکسها در وضیعت valid باقی خواهند ماند.