وبلاگ امیررضا رستنده

نکاتی در ارتباط با دیتابیس اوراکل و لینوکس

وبلاگ امیررضا رستنده

نکاتی در ارتباط با دیتابیس اوراکل و لینوکس

  • ۰
  • ۰

خطای ORA-01950: no privileges on tablespace در زمان اجرای Export Datapump

 

به هنگام اجرای دستور expdp خطای زیر در log مشاهده شد:

ORA-31642: the following SQL statement failes:

Begin “SYS”.”DBMS_RULE_EXP_RULES” SCHEMA_CALLOUT …

ORA-01950: no privileges on tablespace ‘SYSAUX’

 

این خطا در حالی رخ می داد که عملیات expdp با استفاده از کاربر sys اجرا می شد و این خطا غیر عادی به نظر می رسید. این خطا تنها زمانی رخ می داد که full export تهیه می شد. به نظر می رسید که این خطا مربوط به بخشی از دیتابیس (یک یا چند اسکیما) است، اما پیدا کردن قسمتی که موجب بروز مشکل شده با توجه به میزان log قابل تشخیص نبود، پس لازم بود تا مشخص شود دقیقاً چه دستوری موجب بروز این خطا می شود. برای این کار ابتدا دستور زیر اجرا شد:

$ sqlplus / as sysdba

SQL> alter system set events '1950 trace name ERRORSTACK level 3';

سپس دستور expdp مجدد اجرا شد. پس از آنکه در log خطای مذکور مشاهده شد، job مربوط به expdp را متوقف کردم و با دستور زیر هم trace را غیر فعال کردم:

SQL> alter system set events '1950 trace name ERRORSTACK off';

در مسیر فایل های trace فایل مربوطه را شناسایی شد و سپس در این فایل دنبال خطای ora-01950 گشتم. پس از این خطا، دستور SQL که موجب بروز خطا شده است مشخص است:

insert into dmuser.my_table …

 

پس متوجه شدم که کاربر dmuser دسترسی لازم را روی sysaux tablespace ندارد که با اعطا دسترسی مشکل برطرف شد.

  • ۹۸/۰۳/۲۵
  • امیررضا رستنده

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی