ممانعت از ثبت پیام در alert log

در صورتی که به هر دلیلی به این نتیجه رسیده باشید که از ثبت پیامهای اوراکل در فایل alert log جلوگیری کنید(در محیط لینوکس)، می توانید این کار را به سادگی و با ایجاد یک soft link بر روی این فایل انجام دهید. برای انجام این کار، ابتدا فایل alert log را حذف می کنیم:

[root@hkm4 ~]# cd /u01/oracle/diag/rdbms/db11g/db11g/trace/
[root@hkm4 trace]# rm -rf alert_db11g.log

بلافاصله و قبل از ایجاد مجدد این فایل توسط بانک، soft linkای را از این فایل به /dev/null/ ایجاد می کنیم:

[root@hkm4 trace]# ln -s /dev/null alert_db11g.log
[root@hkm4 trace]# ls -l
lrwxrwxrwx 1 root root 9 Mar 14 11:58 alert_db11g.log -> /dev/null

با این کار، از ثبت هرگونه پیام در فایل alert log جلوگیری خواهیم کرد. همچنین برای حذف این soft link، باید از دستور زیر استفاده کرد:

[root@hkm4 trace]# unlink alert_db11g.log

دستور rman checksyntax

در صورتی که قصد داشته باشیم بدون اجرای یک دستور در محیط rman، ان را به لحاظ syntax مورد بررسی قرار دهیم، می توانیم از محیط rman checksyntax استفاده کنیم.

مثال زیر را ببینید:

[oracle@trac1 ~]$ rman checksyntax
Recovery Manager: Release 11.2.0.4.0 – Production on Sun Mar 4 22:04:23 2018

RMAN> backup database;
The command has no syntax errors

RMAN> crosscheck archivelog all;
The command has no syntax errors

همانطور که می بینید، هر دو دستور به لحاظ syntax، بدون مشکل هستند.

اختصاص فضا به جدول از یک دیتافایل مشخص

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

این کار در زمان ساخت جدول و یا بعد از ایجاد آن هم ممکن است. برای مثال با اجرای دستور زیر، جدول tbl1 حداکثر می تواند به اندازه 5 مگابایت از دیتافایل test2.dbf را مصرف کند:

alter table tbl1 ALLOCATE EXTENT(DATAFILE ‘/acfs/test2.dbf’ size 5m);

تنظیم پارامترها در سطح پرس و جو از طریق هینت OPT_PARAM

همانطور که می دانید بعضی از پارامترها قابلیت تغییر در سطح session را دارند و برای تغییر این پارامترها می توان از دستور alter session استفاده کرد:

alter session set parameter_name=value;

حال ممکن است نیاز باشد بعضی از این پارامترها را صرفا در سطح یک دستور خاص تغییر داد نه در سطح کل session.

برای این کار می توان از هینتی به نام OPT_PARAM استفاده کرد که ساختار ان به صورت زیر می باشد:

opt_param(<parameter_name> [,] <parameter_value>)

برای مثال، در پرس و جوی زیر، پارامتر optimizer_features_enable را به مقدار 11.2.0.4 تغییر می دهیم:

select /*+ opt_param(‘optimizer_features_enable’,’11.2.0.4′)*/ * from tbl1;

نکته: البته این هینت همه پارامترها را پشتیبانی نمی کند. نمونه هایی که از پارامترهایی که توسط این هینت پشتیبانی می شوند:

optimizer_index_caching
optimizer_index_cost_adj
hash_join_enabled
optimizer_dynamic_sampling
optimixer_features_enable
optimizer_mode
optimizer_secure_view_merging
star_transformation_enabled

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 استفاده کرد.

(بیشتر…)