نصب اوراکل 19c بر روی اوراکل لینوکس 6 با بروزرسانی GLIBC

همانطور که می دانید، اوراکل از نصب نسخه 19c بر روی سیستم عامل Oracle Linux 6.X پیشتیانی نمی کند این مسئله به پایین بودن نسخه GLIBC(GNU libc) موجود در این نسخه از سیستم عامل برمی گردد:

 [root@ol6 ~]# cat /etc/issue

Oracle Linux Server release 6.7

[oracle@ol6 home]$ ./runInstaller

/19c/home/perl/bin/perl: /lib64/libc.so.6: version `GLIBC_2.14′ not found (required by /19c/home/perl/bin/perl)

در متن خطا می بینیم که این مشکل به دلیل نبود GLIBC نسخه 2.14 رخ داده است. برای حل این مسئله، می توان GLIBC_2.14(و یا نسخه های بالاتر) را به این نسخه از سیستم عامل اضافه کرد که در ادامه این کار را انجام خواهیم داد.

(بیشتر…)

External Table و In-Memory – اوراکل 18c

تا قبل از اوراکل 18c، امکان استفاده از قابلیت in memory برای جداول از نوع external وجود نداشت:

SQL*Plus: Release 12.2.0.1.0 Production on Mon May 18 12:05:36 2020

SQL> alter table mytbl inmemory;

ORA-30657: operation not supported on external organized table

این قابلیت در اوراکل 18c برای محیط exadata ارائه شد.

Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0

 SQL> alter table mytbl inmemory;

ORA-12755: Feature In-Memory External Tables is disabled due to unsupported capability.

SQL> alter system set “_exadata_feature_on”=true scope=spfile;

System altered.

SQL> startup force;

SQL> alter table mytbl inmemory;

Table altered

SQL> SELECT table_name, inmemory, inmemory_compression FROM user_external_tables;

TABLE_NAME   INMEMORY    INMEMORY_COMPRESSION

———–  ———  ———————-

MYTBL        ENABLED        FOR QUERY LOW

(بیشتر…)

دستورات DDL و CONSTRAINT ها

در این فصل دستورات از نوع DDL(DATA DEFINITION LANGUAGE) معرفی می شوند. مفهوم OBJECT و برخی از نوع داده هایی که در دیتابیس اوراکل استفاده می شوند را توضیح می دهیم. همچنین انواع CONSTRAINTها توضیح داده می شوند و خطاهایی که با رعایت نکردن آنها رخ می دهند را معرفی می کنیم.

(بیشتر…)

ویژگی In-Memory FastStart در اوراکل 12cR2

یکی از چالشهای قابلیت in-memory در نسخه 12cR1 به هزینه بر بودن load اولیه اطلاعات(در in-memory) بعد از restart شدن دیتابیس برمی گردد چرا که اطلاعات در دیسک به صورت row format ذخیره شده و در زمان بارگذاری باید به فرمت ستونی و (عمدتا) به شکل فشرده در حافظه(in-memory) قرار بگیرند که این کار می تواند مصرف بالای منابع(مخصوصا cpu) را به همراه داشته باشد.

اوراکل در نسخه 12cR2، برای حل این مسئله، قابلیت جدیدی به نام In-Memory FastStart را ارائه کرد که بر اساس آن، اطلاعات موجود در in-memory با همان فرمتی که در حافظه قرار دارند، در دیسک و در یک tablespace مجزا ذخیره می شوند.

(بیشتر…)

دستورات DML و کنترل تراکنش ها

در این فصل انواع دستورات DML(Data Manipulation Language) توضیح داده می شوند. دستورهای INSERT، DELETE، UPDATE از نوع DML هستند که باعث می شوند اطلاعات جدول های دیتابیس تغییر یابند. همچنین در ادامه، روش کنترل تراکنش ها بر اساس مفهوم READ CONSISTENCY و عملیات COMMIT، ROLLBACK و SAVEPOINT توضیح داده می شوند.

زمانی که یک دستور از نوع DML اجرا می شود یکی از حالت های زیر رخ می دهد:

1.اطلاعات جدید به یک جدول اضافه می شوند(توسط دستور INSERT).

2.اطلاعات قبلی تغییر می کند(توسط دستور UPDATE).

3.اطلاعات قبلی حذف می شوند(توسط دستور DELETE).

(بیشتر…)

نگاهی به استثنائاتی در مورد پارامترهای PGA

در مطلب “بررسی پارامترهای PGA” با پارامترهایی آشنا شدیم که قرار است محدودیتی را برای مصرف PGA در سطح پروسس و یا instance ایجاد کنند. در این مطلب خواهیم دید که در بعضی از شرایط مقدار در نظر گرفته شده برای پارامترهای pga_max_size، pga_aggrigate_target_ و حتی پارامتر PGA_AGGREGATE_LIMIT، نمی تواند PGA مصرف شده توسط پروسسها را محدود کند و پروسسها تا جایی که سرور و محدودیتهای سیستم عاملی اجازه می دهد، از RAM و SWAP استفاده می کنند.

به عنوان نمونه، مطابق با داکیومنتهای اوراکل، حداکثر PGA مورد استفاده یک پروسس توسط پارامتر مخفی pga_max_size_ کنترل می شود و علاوه بر این پارامتر، مقدار PGA استفاده شده برای یک پروسس به تنهایی نمی تواند بزرگتر از مقدار تنظیم شده برای پارامتر pga_aggrigate_target  باشد.

(بیشتر…)

بررسی پارامترهای رسمی و مخفی مربوط به PGA

همانطور که می دانید PGA متشکل از قسمتهای مختلفی می باشد که میزان استفاده هر پروسس از هر کدام از این قسمتها را می توان با کمک پارامترهای نظیر sort_area_size، hash_area_size، bitmap_merge_area_size و… کنترل کرد.

با این حال از اوراکل 9i، پارامتر دیگری به نام PGA_AGGREGATE_TARGET اضافه شد که با مقداردهی آن، اندازه هر یک از قسمتهای PGA توسط خود اوراکل مدیریت می شود.

اوراکل تلاش می کند مجموع فضای PGA تخصیص داده شده(pga1+pga2+pga3+…) به پروسسها را به مقدار در نظر گرفته شده برای پارامتر PGA_AGGREGATE_TARGET محدود کند اما در مواقعی، به خصوص در زمان بالا رفتن بارکاری سیستم و یا پایین بودن مقدار پارامتر PGA_AGGREGATE_TARGET، ممکن است مجموع فضای PGA تخصیص داده شده، از مقدار تنظیم شده برای این پارامتر بیشتر شود.

از این رو، مقدار تعیین شده برای پارامتر PGA_AGGREGATE_TARGET صرفا به عنوان یک soft limit در نظر گرفته خواهد شد و حتی در شرایطی ممکن است فضای PGA تخصیص داده شده به یک پروسس، از مقدار تنظیم شده برای این پارامتر تجاوز کند!(مطلب “نگاهی به استثنائاتی در مورد پارامترهای PGA” را مطالعه کنید)

(بیشتر…)

پیکربندی Huge Page برای دیتابیس اوراکل

در مطلب “چرا Huge Page” در مورد مزایا و دلایل استفاده از Huge Page مطالبی را ارائه کردیم در این مطلب قصد داریم نکاتی را در مورد Huge Page برای دیتابیس اوراکل ارائه کنیم.

همانند دیتابیس پستگرس، دیتابیس اوراکل هم در صورت پیکربندی Huge Page در محیط سیستم عامل، به صورت خودکار و در زمان استارت شدن instance، برای فضای shared memory از Huge Page استفاده خواهد کرد.

اوراکل برای کنترل استفاده و یا عدم استفاده از Huge Page، پارامتر USE_LARGE_PAGES را ارائه کرده که در همین ابتدای متن، توضیحاتی را در مورد این پارامتر ارائه می کنیم.

(بیشتر…)