بهبودی در فیچر Automatic In-Memory در اوراکل 21c

قبلا در مقاله ای قابلیت Automatic In-Memory که یکی از فیچرهای جدید اوراکل در نسخه 18c است را مورد بررسی قرار دادیم. همانطور که در “مقاله یاد شده” اشاره کردیم، قابلیت Automatic In-Memory از طریق پارامتر INMEMORY_AUTOMATIC_LEVEL کنترل می شود که در نسخه 18c در دو سطح LOW و MEDIUM قابل تنظیم است. در نسخه 21c می توان مقدار High را هم برای این پارامتر تنظیم کرد که در ادامه نکاتی را در این مورد ارائه خواهیم کرد.

 

Automatic In-Memory در سطح High

با تنظیم پارامتر INMEMORY_AUTOMATIC_LEVEL به مقدار High، خصیصه inmemory برای segmentهای غیر سیستمی دیتابیس به صورت INMEMORY MEMCOMPRESS AUTO فعال خواهد شد(به استثنای external table، IOTها و ایندکسها). البته اگر از قبل قابلیت INMEMORY برای سگمنتی تنظیم شده باشد، تغییری در خصیصه inmemory_compression آن ایجاد نخواهد شد.

(بیشتر…)

استفاده همزمان از EXCLUDE و INCLUDE در ابزارهای DataPump

از اوراکل نسخه 21c می توان پارامترهای EXCLUDE  و INCLUDE را در یک دستور بکار گرفت. در زمان استفاده همزمان از این دو پارامتر، اوراکل ابتدا پارامتر INCLUDE را در نظر گرفته و با پردازش مقدار آن، objectهایی که باید از آنها دامپ گرفته شود را مشخص می کند و در نهایت از بین این objectها، بر اساس پارامتر EXCLUDE، پردازش و فیلترینگ را انجام می دهد.

در ادامه مثالهایی را از نحوه استفاده همرمان این دو پارامتر مشاهده می کنید.

مثال 1: از همه جداولی که در اسکیمای usef قرار دارند و اسامی آنها با پیشوند TBL شروع می شود، دامپی گرفته شود به جز جدول TBL18:

(بیشتر…)

پشتیانی Flashback Database از Shrink Datafile در اوراکل 21c

تا قبل از اوراکل 21c، امکان flashback کردن دیتابیس به نقطه ای قبل از عملیات shrink datafile وجود نداشت:

SQL*Plus: Release 19.0.0.0.0 – Production on Wed Sep 15 17:25:54 2021

Version 19.9.0.0.0

SQL> select current_scn,flashback_on from v$database;

CURRENT_SCN FLASHBACK_ON

———– ——————

    2557655 YES

SQL> select bytes from v$datafile where file#=1;

     BYTES

———-

 999153664

SQL> alter database datafile 1 resize 996147200;

Database altered.

SQL> startup mount force;

ORACLE instance started.

Total System Global Area 2.0200E+10 bytes

Fixed Size                 19766544 bytes

Variable Size            2617245696 bytes

Database Buffers         1.7515E+10 bytes

Redo Buffers               47341568 bytes

Database mounted.

SQL>  flashback database to scn 2557655;

ORA-38766: cannot flashback data file 1; file resized smaller

ORA-01110: data file 1:

‘/oracle19cR9/base/oradata/DB19R9/datafile/o1_mf_system_jn3s5rmk_.dbf’

(بیشتر…)

Mandatory Profile در اوراکل 21c

همانطور که می دانید از طریق پروفایل می توان برای هر کاربر در دو سطح مصرف منابع و password complexity محدودیتهایی را اعمال کرد. پروفایلها در سطح کاربر قابل تنظیم هستند و هر کاربر می تواند تنها یک پرفایل داشته باشد.

در اوراکل 21c نوع جدیدی از پروفایل تحت عنوان Mandatory Profile ارائه شد که در سطح root container قابل ایجاد است و می توان این دسته از پروفایلها را برای یک یا چند pdb تنظیم کرد که در این صورت، پالیسی مربوط به این پروفایل، برای همه کاربران موجود در آن pdb اعمال خواهد شد.

Mandatory Profile صرفا قرار است در زمینه تنظیم پسورد برای کاربران محدودیت ایجاد کند به این صورت که مثلا پسورد کاربر حداقل n کارکتر داشته باشد. این قبیل محدودیتها از طریق ایجاد یک FUNCTION و تنظیم پارامتر PASSWORD_VERIFY_FUNCTION(در پروفایل) قابل اعمال هستند.

(بیشتر…)

اوراکل 21c – اعمال فوری تغییرات در Unified Audit Policy

تا قبل از اوراکل نسخه 21c، هرگونه تغییر در یک Unified Audit Policy، برای sessionهای متصل به دیتابیس اعمال نمی شد و برای اثرپذیری فوری تغییرات audit policy، باید کاربران متصل به دیتابیس را مجبور به log out کرد تا بعد از اتصال مجدد به دیتابیس، مطابق با قوانین جدید audit شوند. این محدودیت را در سناریوی زیر توضیح دادیم.

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 – Production

–session 1:

SQL> create user vahid identified by a;

User created.

SQL> grant create session to vahid;

Grant succeeded.

SQL> grant select on usef.tbl1 to vahid;

Grant succeeded.

SQL> create audit policy audpolselect actions select on usef.tbl1;

Audit policy created.

–session 2:

SQL> conn vahid/a@192.168.56.22:1521/pdb1

Connected.

–session 1:

SQL> audit policy audpolselect by vahid;

Audit succeeded

–session 2:

SQL> show user

USER is “VAHID”

SQL> select count(*) from usef.tbl1;

  COUNT(*)

———-

         3

فعال شدن audit policy قبل از اجرای دستور select، منجر به audit کاربر vahid نخواهد شد:

SQL> select dbusername,action_name,unified_audit_policies from unified_audit_trail where unified_audit_policies like ‘%AUDPOLSELECT%’;

no rows selected

(بیشتر…)

rotate خودکار فایل های Alert Log در اوراکل 21c

همانطور که می دانید اوراکل فایلهای Alert Log را به دو فرمت xml(در دایرکتوری diag/../alert) و text(در دایرکتوری diag/../trace) ایجاد می کند و در این فایلها، اطلاعاتی در مورد عملیات log switch، تنظیم پارامتر ها، پیامهای مربوط به startup و shutdown دیتابیس و همچنین گزارش بعضی از خطهای دیتابیسی و … را  ثبت می کند.

[root@oLinux7 trace]# ls *alert*

alert_db21c.log

 [root@oLinux7 alert]# ls log*

log.xml

این فایلها مستعد رشد هستند و در صورت عدم مداخله DBA ممکن است حجم آنها به چند گیگابایت برسد و تا قبل از اوراکل نسخه 21cء، rotation خودکاری برای این فایلها انجام نخواهد شد.

در نسخه 21c قابلیت rotate خودکار این فایلها توسط اوراکل به وجود آمد و اوراکل مدیریت عملیات rotate را با ارائه سه hidden parameter زیر امکان پذیر کرده است:

(بیشتر…)

اوراکل 21c – آماده سازی مقدمات راه اندازی دیتاگارد با Broker

در اوراکل 21c می توان با کمک Data Guard Broker محیط دیتابیس primary را برای راه اندازی Data Gaurd آماده کرد. قرار دادن دیتابیس در مود archivelog، فعال کردن force logging، تنظیم پارامترها، ایجاد Standby Redo Log و … صرفا با اجرای یک دستور در محیط Broker انجام می شود. این دستور PREPARE DATABASE FOR DATA GUARD است که در قسمت زیر نحوه اجرای آن را به همراه عملیاتی که انجام می دهد، مشاهده می کنید:

DGMGRL> PREPARE DATABASE FOR DATA GUARD WITH DB_UNIQUE_NAME IS db21c

DB_RECOVERY_FILE_DEST_SIZE is “550G”

DB_RECOVERY_FILE_DEST is “/oracle21c/FRA”;

(بیشتر…)

اوراکل 21c- مقایسه explain plan با کمک تابع compare_explain

در اوراکل 21c تابعی با نام compare_explain به dbms_xplan اضافه شد که امکان مقایسه بین explain planهای دو دستور را فراهم می کند. در قسمت انتهایی گزارش(Comparison Results) این تابع، تفاوت دو plan نمایش داده خواهد شد.

مثال زیر را ببینید.

SQL> create table mytbl as select * from dba_objects;

Table created

SQL> create index ind1_object_id on mytbl(object_id);

Index created

SQL> explain plan  set statement_id = ‘Plan1’  for select /*+ full(mytbl) */ * from mytbl where object_id=9;

Explained

SQL> explain plan  set statement_id = ‘Plan2’ for select /*+ index(mytbl) */ * from mytbl where object_id=9;   

Explained

SQL> VARIABLE varvar1 varchar2(9000)

SQL> exec :varvar1 := dbms_xplan.compare_explain(‘Plan1′,’Plan2’);

PL/SQL procedure successfully completed.

(بیشتر…)

Read-only Oracle Home در اوراکل 21c(تغییر مسیر دایرکتوری dbs و network)

یکی از فیچرهای جدیدی که در اوراکل 18c ارائه شد Read-only Oracle Home بود که مطابق با آن، logfileها و فایلهای پیکربندی موجود در مسیر ORACLE_HOME نظیر listener.ora، sqlnet.ora، spfile.ora و … به دایرکتوریهای زیرشاخه ORACLE_BASE منتقل می شوند(عمده فایلهای پیکربندی، در زیر دایرکتوری network/admin و dbs قرار می گیرند).

انتقال فایلهای پیکربندی از ORACLE_BASE به ORACLE_HOME سبب شده تا نیاز به تغییر در فایلهای ORACLE_HOME به حداقل برسد به طوری که اگر یک Read-only Oracle Home را در پارتیشن read-only قرار دهیم، اوراکل بدون مشکل به کارش ادامه خواهد داد مگر آنکه نیاز به اعمال patch بر روی نرم افزار داشته باشیم که در این صورت باید پارتیشن را در حالت read write قرار دهیم.

(بیشتر…)

قابلیت Data Pump Checksum در اوراکل 21c

اوراکل در نسخه 21c این امکان را می دهد تا در هنگام گرفتن دامپ، checksumای در dump file قرار داده شود تا در هر زمان(به خصوص بعد از جابجایی)  بتوان اعتبار و صحت فایل دامپ را مورد بررسی قرار داد و با کمک این اطلاعات کنترلی از عدم خرابی dump fileها اطمینان حاصل کرد.

به این منظور، پارامتر CHECKSUM به لیست پارامترهای Data Pump اضافه شده و برای استفاده از این ویژگی باید در کنار دستور expdp پارامتر CHECKSUM را برابر با مقدار YES قرار داد:

(بیشتر…)