همانطور که می دانید، در زمان اجرای پروسیجر FINISH_REDEF_TABLE، باید برای مدت زمان کوتاهی جدول به صورت exclusive قفل شود تا اجرای پروسیجر با موفقیت خاتمه یابد در غیر این صورت، اجرای این پروسیجر تا اتمام تراکنشهایی دیگری که بر روی جدول در حال اجرا هستند، متوقف و در حالت انتطار باقی خواهد ماند:
مشاهده پیشرفت عملیات REDEFINITION با کمک ویوی V$ONLINE_REDEF
در اوراکل نسخه 12c، با کمک ویوی V$ONLINE_REDEF می توان روند پیشرفت عملیات REDEFINITION را به صورت انلاین دنبال کرد:
SQL> exec DBMS_REDEFINITION.REDEF_TABLE(‘USEF’,’MYTBL’,’ROW STORE COMPRESS ADVANCED’);
SQL> select ORIGINAL_TABLE_NAME,INTERIM_TABLE_NAME,OPERATION,SUBOPERATION,PROGRESS from V$ONLINE_REDEF ;
اوراکل 12cR2 – پارتیشن بندی external table
می دانیم که اطلاعات جداول از نوع external، در خارج از محیط دیتابیس و در قالب فایلی در سیستم عامل ذخیره می شوند. بسیار روشن است که اگر حجم فایل حاوی دیتا از حد مشخصی بیشتر شود، عملیات جستجو با سرعت کندتری انجام خواهد شد.
اوراکل در نسخه 12c قابلیت پارتیشن بندی external table را ارائه کرده است که میتواند در سرعت دستیابی به اطلاعات این نوع از جداول بهبودی را ایجاد کند. در ادامه این متن، به بررسی این قابلیت خواهیم پرداخت.
ویژگی Multi-column list partitioning در اوراکل 12cR2
تا قبل از اوراکل 12cR2، پارتیشن بندی به روش list، صرفا بر اساس یک ستون قابل انجام بود به عبارت دیگر، تنها می توان یک ستون را به عنوان partition key مشخص کرد در غیر این صورت، با خطای ORA-14304 مواجه خواهیم شد:
SQL*Plus: Release 12.1.0.2.0 Production on Sat Dec 14 17:10:54 2019
SQL> CREATE TABLE person( id NUMBER, name VARCHAR2(30),EYE_COLOR VARCHAR2(10),blood_group VARCHAR2(10))
PARTITION BY LIST (EYE_COLOR,blood_group)
(PARTITION p1 VALUES (‘BL’,’B+’),
PARTITION p2 VALUES (‘BL’,’O-‘),
PARTITION p3 VALUES (‘GR’,’A+’),
PARTITION p4 VALUES (‘GR’,’B+’),
PARTITION p5 VALUES(default)
);
ORA-14304: List partitioning method expects a single partitioning column
اهدای مجوز insert و update در سطح ستون
مجوزهای insert و update را می توان در سطح ستونهای یک جدول به کاربران اهدا نمود.
دستور grant در مثال زیر، مجوز اجرای دستور update بر روی ستونهای name و last_name از جدول sys.mytbl را به کاربر usef اهدا می کند:
SQL> create table sys.mytbl(id number,name varchar2(9),last_name varchar2(9));
Table created
SQL> insert into sys.mytbl values(1,’vahid’,’usefzadeh’);
1 row inserted
SQL> commit;
Commit complete
SQL> grant update(name,last_name) on mytbl to usef;
Grant succeeded
آشنایی با مفهوم Editioning و پارامترهای آن در دیتاپامپ
احتمالا تاکنون هنگام ایجاد یک آبجکت مانند ویو، با این خطا مواجه شده اید:
ORA-00955: name is already used by an existing object
همانطور که می دانید این خطا زمانی رخ می دهد که آبجکتی با نام مورد نظر قبلا در بانک موجود باشد.
گاهی ممکن است، بدلایل مختلف از جمله توسعه و تغییر در برنامه یا ساختار بانک اطلاعاتی، نیاز باشد در متن یک ویو یا یک پروسیجر یا دستورات یک trigger تغییراتی را ایجاد کرده و عملکرد جدید آنها را قبل از استقرار کامل در سیستم تست کنیم.
مسلما ایجاد این آبجکتها با ساختار و نام جدید، نیاز به تغییرات در برنامه کاربردی دارد، که البته این موضوع خوشایند و مطلوب برنامه نویسان وکاربران نمی باشد.
اوراکل از نسخه ی 11g به بعد، قابلیت جدیدی با عنوان editioning را به پایگاه داده خود افزوده است.
آشنایی با معماری اوراکل
در این مقاله قصد داریم تا با نگاهی اجمالی به معماری اوراکل، ابتدا با مفاهیم این ساختار آشنا شویم سپس در مقاله های آتی به جزئیات این مبحث بیشتر پرداخته و ساختار اوراکل را مورد بررسی کاملتری قرار خواهیم داد.
پایگاه داده اوراکل در نگاه کلی به دو مفهوم اصلی تقسیم می شود :
1.ساختار database ( فضای دیسک )
2.ساختار instance ( فضای RAM )
عکس زیر یک نمونه از معماری اوراکل را نشان می دهد.

ارسال unified audit trail به syslog و Event Viewer(اوراکل 18c/19c)
در اوراکل 18c، پارامتری به نام UNIFIED_AUDIT_SYSTEMLOG اضافه شد که امکان نوشتن unified audit trail را در محیط سیستم عامل فراهم می کند با این قابلیت می توان فیلدهای کلیدی unified audit trail را در محیط لینوکس به syslog و در محیط ویندوز به Event Viewer فرستاد.
SQL> show parameter unified_audit_systemlog
NAME TYPE VALUE
———————————— ———- ———-
unified_audit_systemlog string
قصد داریم با طی چند مرحله، این قابلیت را در محیط لینوکس پیکربندی کنیم.
اجرای همروند در ابزار های expdp/impdp
با این پارامتر تعیین می کنیم که حداکثر چه تعداد پروسس(worker process) در عملیات export/import مورد استفاده قرار گیرد استفاده به جا و درست از این پارامتر سرعت عملیات را افزایش می دهد.
دو روش برای تخمین سایز ایندکس قبل از ایجاد آن
قبل از ایجاد ایندکس می توان با کمک statisticهای موجود در دیتابیس، سایز آن را تخمین زد که در این متن، دو روش انجام این کار را مشاهده خواهید کرد.