FLEX ASM

با نصب کلاستر به صورت standard ASM(روش رایج در نسخه 11g)، هر نود شامل یک ASM instance و یک db instance خواهد بود که با افتادن ASM instance در یک نود، db instance موجود در ان نود هم به خطا برخواهد خورد و امکان استفاده از ASM instanceهای دیگر برای این db instance ممکن نخواهد بود به عبارت دیگر، هر db instance تنها به ASM instance موجود در سرورش متکی می باشد. در اوراکل 12c ویژگی ای ارائه شد که می تواند این نقصان را برطرف کند، این ویژگی FLEX ASM نام دارد و می توان به کمک ان، همه نودهای موجود در فضای کلاستر را تنها به اعتبار یک ASM instance سرپا نگه داشت البته این ویژگی مزیتهای دیگری هم به همراه دارد که به تعدادی از انها در این نوشتار خواهیم پرداخت.

(بیشتر…)

(Asm Utility(AMDU,KFED,KFOD

همانطور که می دانید، در هر asm disk علاوه بر داده های بانک اطلاعاتی، نوع دیگری از داده هم ذخیره می شود که فراداده مربوط به ان دیسک می باشد و این نوع از داده ها معمولا در قسمت ابتدایی دیسک و به عبارتی در بلاک صفر ذخیره می شوند و کپی ای از ان هم در بلاک 510 برای مسائل امنیتی ذخیره می شود(2088960 bytes / 4096 = 510) البته قسمتی از فراداده داده ذخیره شده در این بلاکها، مربوط به خود دیسک نمی باشد بلکه اطلاعاتی در مورد دیسک گروهی هست که دیسک عضو ان می باشد.

(بیشتر…)

ارسال فایل بین ASM و non-ASM

همانطور که می دانید برای مدیریت فایلهای موجود در محیط asm، نمی توان از دستورات سیستم عاملی استفاده کرد(البته در محیط acfs که بر روی asm پیاده می شود، این نقصان برطرف شده است).

برای مثال نمی توان با دستوراتی چون cp ،mv و… در سطح لینوکس، بر روی فایلهای موجود در فضای asm اعمال مدیریت کرد در صورتی که ممکن است برای یک مدیر بانک اطلاعاتی، انجام چنین کاری بسیار ضروری باشد(انتقال فایل به محیط بیرون، اصلاح و ….).

یکی از این عملیاتهای پرکاربرد، انتقال فایل بین دو محیط سیستم عامل و asm می باشد که در ادامه با ارائه سه روش، به شیوه انجام آن خواهیم پرداخت.

(بیشتر…)

اتصال از راه دور به کاربران فاقد پسورد

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

[root@ol7 ~]# passwd -d root
Removing password for user root.
passwd: Success

برای اتصال کاربر root(کاربری که پسورد ندارد) از طریق ssh، باید قبلا پارامتر PermitEmptyPasswords را در فایل پیکربندی ssh به مقدار yes تنظیم شده باشد:

[root@ol7 ~]# vi /etc/ssh/sshd_config
PermitEmptyPasswords yes

در نهایت هم باید سرویس sshd را restart کرد:

[root@ol7 ~]# systemctl restart sshd.service

با این تغییر می توان بدون پسورد از طریق این کاربر به سرور ol7 متصل شد:

[root@hkm6 ~]# ssh root@192.168.1.20
The authenticity of host ‘192.168.1.20 (192.168.1.20)’ can’t be established.
RSA key fingerprint is 40:98:53:51:b7:05:fe:6b:5f🇦🇪83:2b:d4:a3:c8:bf.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added ‘192.168.1.20’ (RSA) to the list of known hosts.
[root@ol7 ~]#

گزینه ALTERNATE در پارامتر log_archive_dest_n

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

حال زمانی را فرض کنید که دو دیسک بلاستفاده با فضای تقریبا محدود در سرور موجود هستند و شما قصد دارید هر دو این فضاها را برای ذخیره سازی ارشیولاگها استفاده کنید به این صورت که در ابتدا ارشیو در یکی از این مسیرها قرار بگیرد و در صورت پر شدن، به مسیر دوم سوییچ کند.

برای این کار می توان از گزینهALTERNATE در پارامتر log_archive_dest استفاده کرد.

(بیشتر…)

نمایش username و instance_name در sqlplus

برای نمایش username و instance_name در محیط sqlplus باید دستور زیر را در این محیط اجرا کرد:

SET SQLPROMPT “_USER @ _CONNECT_IDENTIFIER> “

SYS @ stb1>

این تنظیم با خروج از محیط sqlplus از بین خواهد رفت برای اعمال پایدار این قبیل تنظیمات، باید دستور را به فایل glogin.sql اضافه کرد:

vi /oracle/11g/sqlplus/admin/glogin.sql

SET SQLPROMPT “_USER @ _CONNECT_IDENTIFIER> “

پارامتر USE_SID_AS_SERVICE_listener

برای اتصال از راه دور(از طریق tns) به یک pdb، نیاز است تا در فایل tnsnames.ora، به جای استفاده از sid، از service_name استفاده شود. حال اگر برنامه ای(app) در محیط کاری موجود باشد که صرفا از sid پشتیبانی می کند، طبیعتا امکان اتصال به pdb از طریق این برنامه امکان پذیر نخواهد بود.

برای حل این مشکل، می توان پارامتر USE_SID_AS_SERVICE_listener را به فایل listener.ora اضافه کرد تا sid تعریف شده در برنامه ها به صورت service_name لحاظ شوند:

vi $ORACLE_HOME/network/admin/listener.ora
USE_SID_AS_SERVICE_listener=on

برای اعمال این تغییر، نیاز است تا سرویس لیسنر reload شود:

lsnrctl reload

کاراکتر Sqlprefix در sqlplus

فرض کنید در حال نوشتن پرس و جویی طولانی در محیط sqlplus هستیم، در همین حال اسامی فیلدهای جداول را به صورت دقیق بخاطر نداریم، در این صورت ممکن از ادامه نوشتن این پرس و جو منصرف شویم تا اسامی ستونهای جدول را مورد بازبینی قرار دهیم(describe)!!!

روش بهتری هم برای یافتن اسامی ستونهای جدول در حین اجرای این پرس و جو وجود دارد که ان هم استفاده از sqlprefix می باشد. منظور از Sqlprefix کاراکتری است که اجازه اجرای دستوری را در حین نوشتن پرس و جو ممکن می سازد.

(بیشتر…)

افزودن کامنت در زمان تغییر مقدار یک پارامتر

در زمان تغییر مقدار یک پارامتر، می توان در انتهای دستور(alter system)، توضیحی را اضافه نمود. برای مثال، در دستور زیر، مقدار پارامتر open_cursors را به عدد 800 تغییر داده و توضیح می دهیم که مقدار قبلی ان چه عددی بوده است:

SQL> alter system set open_cursors=800 comment=’old value is 300′;
System altered.

برای مشاهده این توضیحات، می توان به ویوی v$parameter رجوع کرد:

select name,value, update_comment from v$parameter where name =’open_cursors’;

NAME VALUE UPDATE_COMMENT
——————— ———— ———————
open_cursors 800 old value is 300