اوراکل ZDLRA

ZERO DATA LOSS RECOVERY APPLIANCE یا ZDLRA یک راه حل جامع برای بکاپ و ریکاوری دیتابیس است که توسط شرکت اوراکل ارائه شده است. این راه حل، دیتابیس های اوراکل نسخه 10.2 به بالا که روی هر نوع پلتفرم و سیستم عامل خاص قرار گرفته اند را پشتیبانی می کند. اوراکل ZDLRA از سخت افزار و نرم افزار ویژه تشکیل شده است تا بکاپ و ریکاوری دیتابیس های اوراکل بدون DATA LOSS و با PERFORMANCE بهینه انجام گردد.

(بیشتر…)

auto_only Large Page در اوراکل 19c

در مطلب پیکربندی Huge Page برای دیتابیس اوراکل در مورد مقادیری که برای پارامتر USE_LARGE_PAGES قابل تنظیم است، نکاتی را مطرح کردیم و توضیح دادیم که برای این پارامتر می توان یکی از مقادیر FALSE, ONLY, TRUE را تنظیم کرد(مقدار AUTO در نسخه های جدید قابل تنظیم نیست.)

Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0

SQL> select value from v$parameter_valid_values p where upper(name)= ‘USE_LARGE_PAGES’;

VALUE

————–

TRUE

AUTO

ONLY

FALSE

در اوراکل نسخه 19c، مقدار AUTO_ONLY هم به این مجموعه مقادیر اضافه شده است که در این متن به بررسی این مقدار خواهیم پرداخت.

Connected to Oracle Database 19c Enterprise Edition Release 19.0.0.0.0

SQL> select value from v$parameter_valid_values p where upper(name)= ‘USE_LARGE_PAGES’;

VALUE

————–

TRUE

AUTO

ONLY

FALSE

AUTO_ONLY

(بیشتر…)

فشرده سازی جداول در اوراکل(TABLE COMPRESSION)

در دیتابیس های اوراکل نگارش 9i و بالاتر می توان جدول ها یا پارتیشن ها را فشرده نمود. فشرده بودن یا نبودن جدول ها به طور کامل از دید برنامه نویسان دیتابیس و APPLICATION مخفی است. در ادامه انواع روش های فشرده سازی جدول و ویژگی های آنها را معرفی می کنیم.

در نگارش 9 و 10 اوراکل، فشرده سازی به روش BASIC انجام می گیرد. روش BASIC برای جدول هایی که داده های آنها STATIC هستند مناسب است و در صورت انجام سایر عملیات DML داده های جدول از حالت فشرده خارج خواهد شد.

در نگارش 11 و بالاتر ، روش های دیگر فشرده سازی جدول ارائه شده است که با بکارگیری الگوریتم های خاص امکان استفاده از فشرده سازی برای جدول هایی که عملیات DML روی آنها انجام می شود را فراهم می کند. بنابراین این روش های فشرده سازی مناسب سیستم های OLTP هستند.

(بیشتر…)

Fix کردن پلن کوئری های فاقد bind variable

برای دستور زیر، دو plan در دیتابیس موجود است:

SQL> select * from mytbl where object_id=9;

SQL> @plan_hash_value

قصد داریم با ایجاد sql profile، پلن شماره 1787877304 را برای پرس و جو 9tfrqw5x3qw8s، فیکس کنیم:

SQL> @coe_xfr_sql_profile.sql    9tfrqw5x3qw8s    1787877304

(بیشتر…)

حذف ایندکسهای ایجاد شده با فیچر Auto Indexing

ایندکسهای از نوع auto index را نمی توان با دستور drop index حذف کرد:

SQL> select index_name,auto from dba_indexes where AUTO=’YES’;

INDEX_NAME                   AUTO

———————-               ——–

SYS_AI_9qxxvpz1p5359    YES

SQL> drop index “SYS_AI_9qxxvpz1p5359”;

ORA-65532: cannot alter or drop automatically created indexes

(بیشتر…)

تست قسمتی از عملیات TTS بدون down time(اوراکل 19c)

برای انجام عملیات Transportable Tablespaces، باید در زمان اجرای دستور expdp و انتقال دیتافایلهای tablespace به سرور مقصد(و یا تهیه بکاپ از دیتافایلها)، tablespace را در حالت read only قرار داد(در دیتابیس مبدا) و اگر در حین اجرای دستور expdpء، tablespace در حالت read write(online) قرار داشته باشد، دستور با خطای زیر متوقف خواهد شد:

ORA-29335: tablespace ‘TBS01’ is not read only

Job “SYS”.”SYS_EXPORT_TRANSPORTABLE_01″ stopped due to fatal error at Wed Jan 20 10:32:48 2021 elapsed 0 00:00:14

(بیشتر…)

چند مثال کاربردی از دستور sed در لینوکس

همانطور که می دانید، از دستور sed در سیستم عامل لینوکس، برای پردازش متن استفاده می شود این دستور، فیلتر کردن و تبدیل متن را با سرعت بسیار بالایی ممکن می سازد. در این متن سعی کردیم چند مثال کاربردی را برای این دستور ارائه کنیم.

1.اضافه کردن فضای خالی زیر هر خط:

[oracle@oLinux7 ~]$ sed G  pfile.ora

(بیشتر…)

نکاتی در مورد حداکثر طول کاراکتر ORACLE_SID

همانطور که می دانید، متغیر محیطی ORACLE_SID، نام instance اوراکل را مشخص می کند:

 [oracle@Primary ~]$ echo $ORACLE_SID

sid

SQL> select INSTANCE_NAME from v$instance;

INSTANCE_NAME

—————-

sid

در این متن نکاتی را در مورد حداکثر طول کاراکتر ORACLE_SID و نام instance ارائه خواهیم کرد.

در زمان کار با ابزار netmgr، امکان استفاده از sid با طول بیشتر از 8 کاراکتر وجود ندارد و در صورت تنظیم با خطای زیر مواجه خواهیم شد:

(بیشتر…)

اهدای مجوز در سطح اسکیما در اوراکل و پستگرس

در مطلب قبلی سعی کردیم تفاوتهای schema و user را در دیتابیس پستگرس و اوراکل تشریح کنیم. در این مطلب به اهدای مجوز در سطح اسکیما در این دو دیتابیس خواهیم پرداخت.

در دیتابیس پستگرس می توان به راحتی و با اجرای یک دستور مجوز دسترسی به تمامی جداول موجود در یک اسکیما را به کاربران اهدا کرد.مثال زیر را ببینید.

postgres=# \c postgres vahid

postgres=> select current_user;

 vahid

postgres=> select * from myschema.tbl1;

ERROR:  permission denied for schema myschema

خطای فوق عدم دسترسی کاربر vahid به جدول myschema.tbl1 را نشان می دهد. برای برطرف کردن این خطا، از طریق کاربر postgres که superuser هم هست به دیتابیس متصل شده و دستور زیر را اجرا می کنیم:

postgres=> \c postgres postgres

postgres=# grant usage on schema myschema to vahid;

GRANT

postgres=# GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA myschema TO vahid;

GRANT

(بیشتر…)