ارتقا نسخه Grid Infrastructure به 19.8 با اعمال Patch و بدون Downtime در سطح دیتابیس(در محیط کلاستر)

از اوراکل 19.6RU، می توان بدون Downtime در سطح دیتابیس، عملیات Patching را بر روی Grid Infrastructure انجام داد. از اینرو قصد داریم patch شماره 31305339 که مربوط به GI Release Update 19.8 می باشد را بر روی Grid Infrastructure نسخه 19.6 اعمال کنیم(در محیط کلاستر).

به صورت کلی می توان این عملیات را در دو مرحله زیر خلاصه کرد:

1.نصب گرید 19cR3 به صورت Software only و اعمال پچ 19.8RU بر روی  آن

2.سوییچ بین grid 19.6 و grid 19.8 با اجرای دستور gridSetup.sh به همراه پارامتر SwitchGridhome

در ادامه متن، نحوه انجام این عملیات را تشریح خواهیم کرد.

(بیشتر…)

مراحل Relink کردن Grid Infrastructure در محیط Cluster

انجام عملیات Relink برای نرم افزار oracle نیاز به پیش نیاز خاصی ندارد و صرفا توصیه می شود که قبل از انجام relink، دیتابیس و سرویس listener را استاپ کنیم اما relink کردن برای Grid Infrastructure کمی متفاوت است که در این متن مراحل آن را برای محیط Cluster مشاهده می کنید.

توجه: این متن برای اوراکل نسخه 12cR2 به بعد قابل استفاده می باشد.

 

(بیشتر…)

اضافه کردن نود به RAC 18c

کلاستری با سه نود در حال سرویس دهی می باشد که به دلایل پرفورمنسی قصد داریم نود دیگری را به این کلاستر اضافه کنیم:

 [grid@RAC2 ~]$ olsnodes -s -t

RAC2 Active  Unpinned

RAC1 Active  Unpinned

RAC4 Active  Unpinned

[oracle@RAC2 ~]$ srvctl status database -d db18c

Instance db18c1 is running on node RAC2

Instance db18c3 is running on node RAC1

Instance db18c4 is running on node RAC4

همانطور که در خروجی دستور مشاهده می کنید، سه نود با نامهای RAC1,RAC2,RAC4 در کلاستر موجود هستند و قصد داریم نود RAC3 را به این مجموعه اضافه کنیم.

(بیشتر…)

حذف نود در محیط کلاستر(اوراکل 18c,19c)

در این متن قصد داریم نودی(RAC3) را از یک کلاستر چهار نوده حذف کنیم. خصوصیات کلاستر را در قسمت زیر مشاهده می کنید:

[grid@RAC3 ~]$ srvctl config database -d db18c

Type: RAC

Database instances: db18c1,db18c2,db18c3,db18c4

Configured nodes: RAC2,RAC3,RAC1,RAC4

[oracle@RAC3 ~]$ srvctl status database -d db18c

Instance db18c1 is running on node RAC2

Instance db18c2 is running on node RAC3

Instance db18c3 is running on node RAC1

Instance db18c4 is running on node RAC4

قبل از وارد شدن به مراحل حذف RAC3، مهمترین قدمهای حذف یک نود در محیط کلاستر را مرور می کنیم:

1.متوقف کردن سرویس(database و asm) و حذف آنها در نود مورد نظر

2.حذف نرم افزار اوراکل

3.حذف نرم افزار grid

4.بروزرسانی oraInventory

 

در ادامه با جزییات بیشتری و در طی پنج مرحله عملیات حذف نود را شرح خواهیم داد.

 

(بیشتر…)

ویووهای Dynamic Performance و Data Dictionary در دیتابیس اوراکل

view یکی از OBJECT های دیتابیس اوراکل است که روش ساخت و استفاده از آن را در متن “VIEW در دیتابیس اوراکل” توضیح دادیم. دو دسته ویوو در دیتابیس اوراکل وجود دارد که بعد از ایجاد دیتابیس به صورت اتوماتیک ساخته می شوند و با  استفاده از PUBLIC SYNONYM در اختیار کاربران دیتابیس قرار می گیرند.

این ویووها که به صورت دائمی توسط دیتابیس اوراکل بروزرسانی می شوند شامل اطلاعات کلی OBJECTها و اجزای دیتابیس هستند.

یک دسته از این ویووها Dynamic Performance است که نام آنها معمولا با $V یا $GV شروع می شود. دسته دیگر ویووهای دیتادیکشنری (Data Dictionary) هستند.

در ادامه تفاوت این دو دسته از viewها را توضیح می دهیم.

(بیشتر…)

مستثنی کردن اطلاعات ستونهای از نوع LOB در دیتاپامپ

قصد داریم از جدولی که بعضی از ستونهای آن حاوی اطلاعات LOB است دامپی را تهیه کنیم، منتها با توجه به حجم بالایی که اطلاعات LOB در این جدول دارند و همچنین به دلایل دیگری چون سرعت بیشتر، امنیت و یا تخصیص فضای کمتر، تصمیم داریم مانع از ثبت این اطلاعات در دامپ شده و یا حداقل در زمان import از برگرداندن این اطلاعات ممانعت کنیم.

راهکار چیست؟

مستثنی کردن اطلاعات ستونهای از نوع LOB در زمان انجام عملیات export از اوراکل نسخه 12c به راحتی قابل کنترل است این کار با ایجاد ویو و استفاده از پارامتر views_as_tables قابل انجام است اما برای برگرداندن دامپ حاوی اطلاعات LOB، نمی توان از این راهکار استفاده کرد و در این صورت استفاده از پارامتر REMAP_DATA راهگشا خواهد بود.

(بیشتر…)

آموزش PL/SQL قسمت سوم – عملگرهای PL/SQL

کامپایلر زبان PL/SQL با توجه به نوع عملگر استفاده شده در برنامه، عملیات خاصی را بر روی داده ها انجام می دهد. عملگرها به 5 دسته تقسیم می شوند که در ادامه هر کدام را با مثال توضیح می دهیم.

1.عملگرهای ریاضی

2.عملگرهای رابطه ای

3.عملگرهای مقایسه ای

4.عملگرهای منطقی

5.عملگرهای رشته ای

(بیشتر…)

پارامتر MAX_IDLE_BLOCKER_TIME در اوراکل 19c

با تنظیم پارامتر MAX_IDLE_BLOCKER_TIME می توان sessionای که رکورد(به صورت کلی منبعی را) در اختیار گرفته و در پی آن منجر به block شدن session دیگری شده است را بعد از مدتی زمان مشخصی، kill کرد البته با این شرط که این session(ه blocker) در این مدت زمان، idle باشد.

برای مثال، با اجرای دستور زیر، blocker بعد از آنکه به مدت یک دقیقه در وضعیت idle قرار بگیرد، kill خواهد شد.

(بیشتر…)

Update بخشی از اطلاعات JSON با کمک تابع JSON_MERGEPATCH – اوراکل 19c

قصد داریم در جدول MYTBL، بخشی از اطلاعات ستون ettelaat که از نوع JSON می باشد را update کنیم به این صورت که مقدار داده first_name، برای id شماره 1، از Vahid به RamTollah تغییر کند:

SQL> select id,ettelaat from mytbl d where id=1;

        ID ETTELAAT

———- ——————————

   1          {

               “first_name“:”Vahid“,

               “last_name“:”Usefzadeh“,

               “Salary“:”500000“,

               “phone“:”09128110000

               }

با انجام بروزرسانی به شیوه رایج در اوراکل، با خطا مواجه خواهیم شد:

SQL> update MYTBL  d set d.ettelaat.first_name =’RamTollah’ where  d.ettelaat.first_name=’Vahid’ and id=1;

ORA-40557: cannot update a JSON value

(بیشتر…)

آموزش PL/SQL قسمت دوم – متغیر ، CONSTANT و LITERAL در PL/SQL

در زبان PL/SQL متغیر (VARIABLE) نامی است که به یک محل ذخیره سازی اختصاص می یابد و برنامه ها می توانند اطلاعات خود را در این محل ذخیره کنند. هر متغیر بر اساس یک نوع داده تعریف می شود. انواع نوع داده ها را در متن قبل توضیح دادیم. در واقع نوع داده برای یک متغیر موارد زیر را مشخص می کند.

1.سایز متغیر

2.قالب کلی متغیر

3.محدوده مقدارهایی که می توانیم در متغیر ذخیره کنیم.

4.عملیاتی که می توانیم روی آن متغیر انجام دهیم.

بنابراین به هر متغیر یک قسمت از فضای حافظه اختصاص می یابد و با استفاده از نام متغیر می توانیم به این فضا دسترسی داشته باشیم.

(بیشتر…)