غیر فعال شدن Read-only Oracle Home در اوراکل 23ai

قابلیت Read-only Oracle Home از اوراکل 18c ارائه شده و بر اساس آن، logfileها و فایلهای پیکربندی موجود در مسیر ORACLE_HOME نظیر listener.ora، sqlnet.ora، spfile.ora و … به دایرکتوریهای زیرشاخه ORACLE_BASE منتقل می شوند. Read-only Oracle Home در نسخه 18c و 19c به صورت پیش فرض فعال نیست اما این قابلیت در نسخه 21c در حالت پیش فرض فعال است:

[oracle@RAC3 ~]$ /oracle21c/home/bin/orabasehome
/oracle21c/base/homes/OraDB21Home1

(بیشتر…)

اوراکل 23ai – قابلیت staging table

همانطور که می دانید، استفاده از جداول staging در محیط Data Warehouse بسیار رایج است و کاربرد آن به زمان بارگذاری دیتا به دیتابیس Warehouse برمی گردد. معمولا در محیط Warehouse، داده های خام که از دیتابیسهای source دریافت می شوند در ابتدا به یک ناحیه موقت و یا همان جداول staging منتقل شده و بعد از فرایند پاکسازی داده های ناقض و ناسازگار و همچنین تبدیل داده ها به فرمت استاندارد، این داده ها در جداول نهایی و عملیاتی ذخیره می شوند.

علاوه بر بارگذاری اولیه، برای بروزرسانی هم از جداول staging استفاده می شود و گاها این جداول قبل از استفاده، truncate می شوند.

در اوراکل 23ai قابلیتی هر چند جزیی در این زمینه ارائه شد و از این نسخه می توانیم جداول از نوع staging ایجاد کنیم این کار با اضافه کردن عبارت FOR STAGING همراه با دستور CREATE TABLE قابل انجام است.

SQL> create table STGtbl (id number,name varchar2(100),address varchar2(1000)) FOR STAGING;
Table created.

(بیشتر…)

قابلیتهای شناخته شده ای که اوراکل از نسخه 23ai دیگر از آنها پشتیبانی نمی کند.

اوراکل در کنار قابلیتهای متعددی که در هر نسخه ارائه می کند، بعضی از قابلیتهای قبلی را deprecate و یا desupport می کند. deprecate به این معنی که آن قابلیت دیگر بهبودی نخواهد داشت و از نسخه های بعدی desupport می شود و desupport  هم به این معنی که اگر باگی داشته باشد، رفع باگی توسط اوراکل انجام نمی شود و بعضا به طور کامل امکان استفاده از آن از بین می رود.

در ادامه این متن تعدادی از قابلیتهای شناخته شده ای که اوراکل از نسخه 23ai دیگر از آنها پشتیبانی نمی کند، را مرور می کنیم.

ابزار Database Upgrade Assistant (DBUA) و ارتقای دستی: از نسخه 23ai اوراکل توصیه می کند از AutoUpgrade برای ارتقاء نسخه دیتابیس استفاده کنیم و از این نسخه، ابزار dbua را در محیط لینوکس پشتیبانی نمی کند همچنین اسکریپتهای ارتقاء دستی نظیر catupgrd, dbupgrade, catctl در این نسخه پشتیبانی نمی شوند البته استفاده از ابزار DBUA در محیط ویندوز کماکان امکان پذیر است.

 

(بیشتر…)

پشتیبانی دیتابیس اوراکل 23ai از AI Vector Search

همانطور که می دانید با استفاده از بردارها می توان داده های بدون ساختار نظیر عکس، ویدئو، صوت و … را به عدد(آرایه ای از اعداد) تبدیل کرد تا علاوه بر حفظ کیفیت محتوا، اثر شایانی را بر روی جستجوی معنایی گذاشت طوری که جستجوی برداری بر بسیاری از محدودیتهای سنتی غلبه کرده و این امکان را به ما می دهد تا با توصیف هر آنچه را که در ذهن داریم عملیات جستجو را انجام دهیم.

به عبارتی دیگر، با کمک جستجوی برداری می توانیم عکس، ویدئو، صوت و … را بر اساس محتوا و بر مبنای Similarity Search جستجو کنیم بدون آنکه از محتوای آنها متنی در جایی ثبت شده باشد، درحالیکه جستجوهای سنتی، جستجو را بر اساس کلمات کلیدی، شباهت واژگانی، فراوانی وقوع کلمات انجام می دهند.

Vector Databaseهای متعددی وجود دارند که می توان از آنها به طور تخصصی به عنوان دیتابیس بردار استفاده کرد اما بسیاری از این دیتابیسها از SQL، عملیات CRUD(create, read, update, delete)، بکاپ و ریکاوری و … پشتیبانی نمی کنند. بنابرین ذخیره این نوع از دیتا در دیتابیسهای رابطه ای می تواند یک مزیت به شمار بیاید چرا که انواع مختلفی از داده را می توان صرفا در یک دیتابیس ذخیره کرد و با ابزارهای سنتی با قابلیتهای مدرن کار کرد.

دیتابیس اوراکل به عنوان یک دیتابیس رابطه ای قدرتمند تلاش کرده تا در این زمینه راهکاری را ارائه کند. این دیتابیس از نسخه 23ai قابلیت AI Vector Search را به طور کامل پشتیبانی می کند. تبدیل داده های بدون ساختار مثل عکس و فیلم به اعداد(Vector Embedding)، ذخیره آنها در دیتابیس، ایندکس گذاری، امکان اجرای جستجوی شباهت(Similarity Search) و … از این نسخه(23ai) در دیتابیس اوراکل قابل انجام است.

همچنین از 23.4، برای بردارها نوع داده جدیدی به نام vector تعریف شده است که در این مستند نکاتی را در مورد این نوع داده و نحوه ذخیره اطلاعات در آن بیان خواهیم کرد.

(بیشتر…)

نصب نسخه FREE اوراکل 23ai بر روی ویندوز

نسخه FREE اوراکل 23ai را می توان در ویندوز هم  اجرا کرد که در این متن نحوه انجام آن را مشاهده خواهید کرد. البته همانطور که می دانید نسخه FREE محدودیتهایی دارد به طور مثال حجم هر دیتابیس(PDB) در نسخه FREE نمی تواند بیشتر از 12GB شود اندازه RAM و CPU هم محدودیت دارند:

بعد از دانلود فایل zip، آن را در مسیری دلخواه unzip می کنیم:

 

برای نصب، فایل Oracle Database 23ai Free را با Run as administrator اجرا می کنیم:

 

(بیشتر…)

نکته ای در مورد نصب Oracle Database 23ai Exadata بر روی اوراکل لینوکس

همانطور که می دانید اوراکل هنوز نسخه on-premises مربوط به 23ai را ارائه نکرده است و با توجه به وعده ای که داده است، حداکثر تا پایان نیمه دوم 2024 این نسخه را در دسترس همگان قرار خواهد داد(البته اگر مجددا خلف وعده نکند!) اما اخیرا نسخه 23.5 که روی Exadata قابل استفاده است را منتشر کرده که به صورت پیش فرض روی محیط اوراکل لینوکس هم قابل نصب است:

[oracle@OEL9 23ai]$ ./runInstaller

[oracle@OEL9 ~]$ /oracle/23ai/bin/sqlplus "/as sysdba"
SQL*Plus: Release 23.0.0.0.0 - for Oracle Cloud and Engineered Systems on Fri Aug 9 18:51:46 2024
Version 23.5.0.24.07
Copyright (c) 1982, 2024, Oracle.  All rights reserved.
Connected to an idle instance.

اما مسئله که سبب شد تا این مستند را بنویسم آن است که در زمان ایجاد دیتابیس از طریق این نرم افزار، با خطای زیر مواجه می شویم:

ORA-27350: This version of the Oracle Database software cannot be run on this platform

(بیشتر…)

اوراکل 23ai – تمامی Tablespaceها به صورت Bigfile ایجاد می شوند

از نسخه 23ai تمامی tablespaceهای سیستمی و همچنین users موجود در root container به صورت Bigfile ایجاد می شوند(به استثنای Temp tablespaceها):

SQL*Plus: Release 23.0.0.0.0 - Production on Sat Jun 8 22:43:40 2024
Version 23.4.0.24.05
SQL> select TABLESPACE_NAME,BIGFILE from  dba_tablespaces;
TABLESPACE_NAME                BIG
------------------------------ ---
SYSTEM                         YES
SYSAUX                         YES
UNDOTBS1                       YES
TEMP                           NO
USERS                          YES

tablespaceهای جدیدی هم که توسط DBA در root container ایجاد می شود به صورت Bigfile خواهند بود:

SQL> create tablespace tbs1;
Tablespace created.

SQL> select TABLESPACE_NAME,BIGFILE from  dba_tablespaces where TABLESPACE_NAME='TBS1';
TABLESPACE_NAME                BIG
------------------------------ ---
TBS1                           YES

اما در PDB این مسئله تفاوت جزیی دارد در این محیط، تمامی tablespaceهای سیستمی از نوع Bigfile هستند ولی USERS از نوع Smallfile هست:

SQL> select TABLESPACE_NAME,BIGFILE from  dba_tablespaces;
TABLESPACE_NAME                BIG
------------------------------ ---
SYSTEM                         YES
SYSAUX                         YES
UNDOTBS1                       YES
TEMP                           NO
USERS                          NO

(بیشتر…)

نصب نسخه FREE اوراکل 23ai

در این متن قصد داریم مراحل نصب Oracle Database 23ai free را بر روی اوراکل لینوکس 8 توضیح دهیم در ابتدا باید متذکر شویم که حجم هر دیتابیس(PDB) در نسخه FREE نمی تواند بیشتر از 12GB شود و همچنین برای استفاده از RAM و CPU هم محدودیت دارد:

RPM مربوطه را از سایت اوراکل دانلود می کنیم:

(بیشتر…)

ذخیره AWR snapshot خارج از SYSAUX

همانطور که می دانید AWR snapshotها در SYSAUX tablespace ذخیره می شوند و تا نسخه 19c نمی توان آنها را در tablespace مجزایی ذخیره کرد. این امکان در نسخه 19c با اضافه شدن پارامتر TABLESPACE_NAME به پروسیجر dbms_workload_repository.modify_snapshot_settings به وجود آمد.

Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 
SQL> desc dbms_workload_repository.modify_snapshot_settings
Parameter       Type     Mode Default? 
--------------- -------- ---- -------- 
RETENTION       NUMBER   IN   Y        
INTERVAL        NUMBER   IN   Y        
TOPNSQL         NUMBER   IN   Y        
DBID            NUMBER   IN   Y        
TABLESPACE_NAME VARCHAR2 IN   Y        
RETENTION       NUMBER   IN   Y        
INTERVAL        NUMBER   IN   Y        
TOPNSQL         VARCHAR2 IN            
DBID            NUMBER   IN   Y        
TABLESPACE_NAME VARCHAR2 IN   Y      

همچنین اوراکل در نسخه 21c ستون TABLESPACE_NAME را به ویوی awr_cdb_wr_control اضافه کرده است که از طریق آن می توانیم tablespace جاری AWR  را مشخص کنیم:

(بیشتر…)

اوراکل 23ai – ایجاد خودکار AWR Snapshot در سطح PDB

در زمان ارائه قابلیت Pluggable Database در نسخه 12cR1،ء AWR snapshotها صرفا در سطح CDB ایجاد می شدند و امکان ایجاد snapshot در سطح PDB وجود نداشت. در نسخه 12cR2 پارامتری به نام awr_pdb_autoflush_enabled اضافه شد که با تنظیم آن به مقدار TRUE، به صورت خودکار در سطح PDB هم AWR snapshot ایجاد می شود اما مقدار پیش فرض این پارامتر تا قبل از نسخه 23ai برابر با FALSE بوده و در نسخه 23ai به صورت پیش فرض فعال می باشد:

SQL*Plus: Release 23.0.0.0.0 - Developer-Release on Thu Sep 7 10:57:00 2023
SQL> show parameter awr_pdb_autoflush_enabled
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
awr_pdb_autoflush_enabled            boolean     TRUE

با این تغییر در صورتی که اسکریپت awrrpt.sql را در هر کدام از PDBها اجرا کنیم، گزینه AWR_PDB مقدار پیش فرض خواهد بود:

Specify the location of AWR Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AWR PDB reports can be generated using data stored in this PDB or ROOT.
Please enter the desired location at the prompt. Default value is 'AWR_PDB'.
    AWR_PDB  - Use AWR data from PDB
    AWR_ROOT - Use AWR data from ROOT
Enter value for awr_location: AWR_PDB
Location of AWR Data Specified: AWR_PDB

اما در نسخه های قبلی، گزینه AWR_ROOT مقدار پیش فرض بوده است:

Specify the location of AWR Data
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
AWR_ROOT - Use AWR data from root (default)
AWR_PDB - Use AWR data from PDB
Enter value for awr_location:

برای دیتابیسی با تعداد PDB زیاد و workload بسیار بالا، بهتر است پارامتر awr_snapshot_time_offset را هم در کنار پارامتر awr_pdb_autoflush_enabled تنظیم کنیم تا AWR snapshotها برای همه PDBها به صورت همزمان ایجاد نشوند و با ایجاد وقفه ای هر چند مختصر، از سکته دیتابیس جلوگیری شود.