نکاتی در مورد حداکثر طول کاراکتر 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 کاراکتر وجود ندارد و در صورت تنظیم با خطای زیر مواجه خواهیم شد:

این در صورتی است که در زمان ایجاد دیتابیس، مقدار sid نمی تواند بیشتر 12 کاراکتر باشد:

نکته مهمتر مسئله آنکه حداکثر طول ستون 16 بایت در نظر گرفته شده است:

SQL> desc v$instance

Name Null? Type

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

INSTANCE_NAME VARCHAR2(16)

در این شرایط، مقدار ORACLE_SID را به بیشتر از 16 کارکتر تنظیم می کنید تا رفتار دیتابیس را در این حالت بررسی کنیم:

export ORACLE_SID=sid0123456789sid

SQL> startup pfile=’/home/oracle/p.ora’;

ORACLE instance started.

Total System Global Area 2701128640 bytes

Fixed Size 9139136 bytes

Variable Size 620756992 bytes

Database Buffers 2063597568 bytes

Redo Buffers 7634944 bytes

Database mounted.

Database opened.

SQL> select INSTANCE_NAME from v$instance;

INSTANCE_NAME

—————-

sid0123456789sid

همانطور که مشاهده می کنید، با تنظیم نام instance به 16 کارکتر هم instance استارت شده است.

ستون instance از ویوی v$thread هم نام instance را نمایش می دهد:

SQL> select INSTANCE from v$thread;

INSTANCE

————————–

sid0123456789sid

نوع داده این ستون (VARCHAR2(80 می باشد:

SQL> desc v$thread;

Name Null? Type

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

INSTANCE VARCHAR2(80)

با توجه به این مسئله، این بار نام instance را به تعداد کاراکترهای بیشتری تنظیم می کنیم(40 کاراکتر):

export ORACLE_SID=sid0123456789sidsid0123456789sid12345678

SQL> startup pfile=’/home/oracle/p.ora’;

ORA-00600: inteal error code, arguments: [OSDEP_INTERNAL], [], [], [], [], [], [], [], [], [], [], []

ORA-27302: failure occurred at: slsid1

ORA-27303: additional information: Unable to get environment variable ORACLE_SID

با این تنظیمات، instance استارت نخواهد شد. با آزمون و خطا، خواهیم دید که نام instance تا 30 کاراکتر را هم می پذیرد:

[oracle@Primary ~]$ export ORACLE_SID=sid0123456789sidsid0123456789s

ORACLE instance started.

Total System Global Area 2701128640 bytes

Fixed Size 9139136 bytes

Variable Size 620756992 bytes

Database Buffers 2063597568 bytes

Redo Buffers 7634944 bytes

Database mounted.

Database opened.

SQL> select INSTANCE from v$thread;

INSTANCE

——————————————————————————–

sid0123456789sidsid0123456789s

با این تنظیمات، نام instance در ویوی v$instance قابل رویت نیست:

SQL> select INSTANCE_NAME from v$instance;

INSTANCE_NAME

—————-

SQL>

تالار های تخصصی...

ما را در سایت تالار های تخصصی دنبال می‌کنید

برچسب: نویسنده: خنجی بازدید: 228 تاريخ: سه شنبه 9 دی 1399 ساعت: 0:23

صفحه بندی