در زمان اضافه کردن ASM به Enterprise Manager Cloud Control 24ai، نیاز به وجود کاربر ASMSNMP در ASM Instance داریم.
اما هنگام اجرای دستور زیر:
sqlplus / as sysasm
CREATE USER asmsnmp IDENTIFIED BY idesuasfqp_s6s3YkvQwS;
با خطای زیر مواجه میشویم:
ORA-28017: The password file is in the legacy format.
علت بروز خطا
از نسخه 12.2 به بعد، Oracle فرمت password file را تغییر داده است.
در نسخههای جدید (از جمله 19c):
-
اگر password file در فرمت قدیمی (legacy) باشد
-
یا به درستی به Grid Infrastructure معرفی نشده باشد
-
یا اصلاً تعریف نشده باشد
عملیات DDL مربوط به user در ASM با خطای ORA-28017 شکست میخورد.
بررسی وضعیت فعلی ASM
در محیط مورد بررسی:
srvctl config asm -detail
خروجی:
ASM home: <CRS home>
Password file:
Backup of Password file:
Spfile: /u01/app/19c/grid/dbs/spfile+ASM.ora
مشاهده میشود که ASM هیچ password file تعریفشدهای ندارد.
این یعنی:
-
ASM با OS authentication بالا آمده
-
اما برای عملیات user management به password file جدید نیاز دارد
راهحل
مرحله 1 – تنظیم ORACLE_SID روی +ASM
. oraenv
ORACLE_SID = +ASM
مرحله 2 – ساخت password file جدید با فرمت 12
اکنون باید مسیر password file نمایش داده شود.
مرحله 4 – اتصال به ASM و ایجاد کاربر
sqlplus / as sysasm
CREATE USER asmsnmp IDENTIFIED BY "idesuasfqp_s6s3YkvQwS ";
grant sysdba to asmsnmp
کاربر ASMSNMP برای موارد زیر استفاده میشود:
-
مانیتورینگ ASM در Enterprise Manager
-
Health monitoring
-
Storage metrics collection
-
Diskgroup usage monitoring
اگر password file در فرمت قدیمی باشد:
-
EM نمیتواند به ASM متصل شود
-
ایجاد user در ASM با خطا مواجه میشود
-
برخی عملیات امنیتی fail خواهند شد
نکات مهم معماری
در محیط RAC
اگر ASM در چند نود اجرا میشود:
-
password file باید در همه نودها موجود باشد
-
یا از shared filesystem استفاده شود
-
معرفی آن باید از طریق srvctl انجام شود