شیوه بروزرسانی از راه دور pdb در اوراکل 12c قبلا مورد بررسی قرار گرفت(ایجاد و بروزرسانی pdb به صورت از راه دور) در اوراکل 18c قابلیت جدیدی در این زمینه ارائه شد که امکان تغییر نقش pdb مبدا و مقصد و به عبارت دیگر، switchover بین این pdbها را هموار می کند.
توقف اجرای دستور یک کاربر(CANCEL SQL)
برای توقف اجرای دستور یک کاربر در اوراکل 11g، می توان از دستور kill session استفاده کرد که سبب خروج کاربر از بانک هم خواهد شد. از اوراکل 12cR2 این قابلیت بوجود امد تا بدون اخراج کاربر از بانک، صرفا دستور در حال اجرای ان کاربر را متوقف نمود.
Identity Column در اوراکل 12c
تا قبل از اوراکل نسخه 12c، برای مقدار دهی خودکار ستون کلید اصلی، معمولا از sequence استفاده می شد. در اوراکل 12c، این کار با کمک قابلیت Identity Column قابل انجام است البته اوراکل هم در پس زمینه این ویژگی، از sequence استفاده می کند و استفاده از ویژگی Identity Column، منجر به ایجاد sequence خواهد شد.
(بیشتر…)TEMPORARY UNDO در اوراکل 12c
تا قبل از اوراکل 12c، اطلاعات undo مربوط به جداول از نوع global temporary table، درundo tablespace پیش فرض بانک قرار می گیرد.
در اوراکل نسخه 12c، قابلیت TEMPORARY UNDO ارائه شد که با کمک آن، می توان اطلاعات undo این نوع از جداول را در temporary tablespace قرار داد.
(بیشتر…)بروزرسانی Out of Place – ویژگی جدید MATERIALIZED VIEW در اوراکل 12c
تا قبل از اوراکل نسخه 12c، معمولا بروزرسانی به طور مستقیم در جدول مربوط به MV اتفاق می افتاد(ابتدا اطلاعات حذف شده و سپس در همان session، اطلاعات جدید درج می شوند و نهایتا commit رخ خواهد داد) به بیانی دیگر، در این نسخه ها، بروزرسانی تنها به صورت in place (در جا) اتفاق می افتد که مرحله delete آن ممکن است متناسب با حجم جدول، زمان زیادی را صرف کند.
در نسخه 12c این امکان بوجود امد تا بدون هرگونه تغییر جدول اصلی مربوط به MATERIALIZED VIEW، بروزرسانی انجام شود که این شکل از بروزرسانی، Out of Place نام دارد.
(بیشتر…)ستون نامریی(Invisible Column) در اوراکل 12c
ایجاد ستون نامریی از اوراکل 12c امکان پذیر شد این نوع از ستون، به صورت پیش فرض در لیست ستونهای جدول، قابل مشاهده نیستند و برای دسترسی به اطلاعات آن، باید به صراحت از نام این ستون در دستور استفاده کرد.
(بیشتر…)آمارگیری بعد از درج انبوه در اوراکل 12c
در نسخه 11g، با اجرای دستور create table as، آماری از جدول ایجاد شده، ثبت نمی شود:
create table us_tbl1 as select * from dba_source;
SELECT table_name,num_rows FROM dba_tables WHERE table_name = ‘US_TBL1’;
حال اگر همین دستور در نسخه 12c اجرا شود، نتیجه چیزی دیگری خواهد بود(البته استثناهایی هم در این زمینه وجود دارد):
create table us_tbl1 as select * from dba_source;
SELECT table_name,num_rows FROM dba_tables WHERE table_name = ‘US_TBL1’;
همچنین می توان با هینت NO_GATHER_OPTIMIZER_STATISTICS، از این قابلیت جدید، صرف نظر کرد:
create table us_tbl1 as select /*+ NO_GATHER_OPTIMIZER_STATISTICS */ * from dba_source ;
افزایش ظرفیت نوع داده VARCHAR به 32767
در اوراکل 12c، با تنظیم پارامتر MAX_STRING_SIZE به مقدار EXTENDED، می توانیم ظرفیت نوع داده VARCHAR2 و NVARCHAR2 را از 4000 به 32767 افزایش دهیم.
(بیشتر…)پارامتر views_as_tables در data pump
با این ویژگی، امکان گرفتن دامپ از خروجی یک ویو هم مهیا خواهد شد همچنین در زمان برگرداندن این ویو، جدولی در بانک مقصد ایجاد خواهد شد:
expdp usef/abc@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
Export: Release 12.1.0.2.0 – Production on Sat Jul 2 10:41:26 2016
Starting “USEF”.”SYS_EXPORT_TABLE_01″: usef/********@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
Total estimation using BLOCKS method: 16 KB
. . exported “USEF”.”USEF_VIEW1″ 163.3 KB 5086 rows
Master table “USEF”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
Job “USEF”.”SYS_EXPORT_TABLE_01″ successfully completed at Sat Jul 2 10:41:38 2016 elapsed 0 00:00:11
برگرداندن ویو به صورت جدول در بانک مقصد:
impdp usef/abc@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
Import: Release 12.1.0.2.0 – Production on Sun Jul 3 09:40:23 2016
Starting “USEF”.”SYS_IMPORT_TABLE_01″: usef/********@pdb1 directory=usef dumpfile=test.dmp views_as_tables=usef_view1
. . imported “USEF”.”USEF_VIEW1″ 163.3 KB 5086 rows
Job “USEF”.”SYS_IMPORT_TABLE_01″ successfully completed at Sun Jul 3 09:40:25 2016 elapsed 0 00:00:01
غیرفعال سازی logging بهنگام impdp
برای بهبود سرعت برگرداندن اطلاعات dumpfile، می توان از پارامتر logging به هنگام اجرای دستور impdp استفاده کرد و با تنظیم این پارامتر(که از اوراکل 12c ارائه شد) به مقدار DISABLE_ARCHIVE_LOGGING:Y، مانع از ایجاد آرشیولاگ در زمان impdp شد:
impdp directory=usef dumpfile=c.dmp schemas=usef TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
Import: Release 12.1.0.2.0 – Production on Tue Jul 5 15:02:28 2016
. . imported “USEF”.”COM_LOC” 533.490 MB 226333 rows
در صورت استفاده از data guard در چنین محیطی، اطلاعات import شده به سمت data guard منتقل نخواهند شد و با رجوع به این جدول در محیط data guard، با خطای زیر مواجه خواهیم شد:
select count(*) from usef.com_loc
ORA-01578: ORACLE data block corrupted (file # 6, block # 555)
ORA-01110: data file 6: ‘/u02/oradata/usef2/datafile/users.258.916411623’
ORA-26040: Data block was loaded using the NOLOGGING option
البته اگر دیتابیس در حالت force logging قرار داشته باشد، امکان استفاده از چنین ویژگی ای وجود ندارد(معمولا قبل از راه اندازی data guard، اوراکل تاکید دارد تا این گزینه فعال شود).
این ویژگی در سطح ایندکس هم قابل استفاده می باشد:
TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y:INDEX