الانتقال إلى المحتوى
View in the app

A better way to browse. Learn more.

مجموعة مستخدمي أوراكل العربية

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

يوجد عندي مشكلة عند تنفيذ اجراء معين على قاعدة البيانات تخرج هذه الرسالة

Featured Replies

بتاريخ:

 

ORA-01652: unable to extend temp segment by 128 in tablespace TEMP

 

 

 

تظهر هذه المشكلة عند تنفيذ اجراء معين على قاعدة البيانات تخرج  الرسالة  

 

 

 

365915141.png

 

بتاريخ:

 أولا يجب التأكد من وجود مساحة كافية  علي نفس  البارتيشن الموجوده عليه قاعده البيانات و الفكرة هي إيجاد مسار قاعده البيانات و بالأخص tablespace DBF و تعديل حجمه بالكفاية

 

راجع هذه http://docs.oracle.com/cd/B28359_01/server.111/b28310/dfiles003.htm#ADMIN11423

تم تعديل بواسطة Darwiesh.fci

بتاريخ:
  • كاتب الموضوع

ممكن توضيح اكثر اخي العزيز

بتاريخ:

السلام عليكم

نفذ الجملة التالية:

SELECT * FROM DBA_DATA_FILES;

سيظهر لديك جميع الـ data file الموجودة:

 

ثم نفذ الجملة التالية مع تغيير إسم الـ Data File:

ALTER DATABASE DATAFILE 'D:\ORACLEXE\ORADATA\XE\SYSTEM.DBF' RESIZE 2048M;
بتاريخ:

اخي احمد شكرا لك على اجتهادك ولكن مشكلة الاخ في ال temp tablespace وليس system tablespace

بتاريخ:

اخي احمد شكرا لك على اجتهادك ولكن مشكلة الاخ في ال temp tablespace وليس system tablespace

 

لمعرفة المسار والحجم

SELECT NAME, BYTES/1024/1024 TEMP_SIZE FROM V$TEMPFILE;

ومن ثم قم بزيادة الحجم عن طريق الاتي

alter database tempfile 'D:\APP\FINPRD\TEMP01.DBF' resize 1500M;
بتاريخ:
  • كاتب الموضوع

استاذي الفاضل ملف TEMP01.DBF الموجود عندي سعته 31.9 GB   او  (34,358,697,984 bytes)    كم ازيد عليه 

بتاريخ:

يبدو انه حجم ال TEMP كبير جدا ولا استطيع مجرد اخبارك بأن تزيد كذا او كذا,

اذا دعنا نبحث ماهي اسباب المشكلة ومتى تحدث وهل تستطيع تجنب حدوثها ام لا.

 

 

ولمعرفة المساحة المتخدمة من TEMP 

select TABLESPACE_NAME, BYTES_USED/1024/1024 USED, BYTES_FREE/1024/1024 FREE from V$TEMP_SPACE_HEADER;

لعرض محتويات ال TEMP

select * from V$TEMPSEG_USAGE where USERNAME not in ('SYSMAN');

كما ارجو تزويدنا بنسخة اوراكل المستخدمة لديط.

بتاريخ:
  • كاتب الموضوع
 

 

يبدو انه حجم ال TEMP كبير جدا ولا استطيع مجرد اخبارك بأن تزيد كذا او كذا,

اذا دعنا نبحث ماهي اسباب المشكلة ومتى تحدث وهل تستطيع تجنب حدوثها ام لا.

 

 

ولمعرفة المساحة المتخدمة من TEMP 

select TABLESPACE_NAME, BYTES_USED/1024/1024 USED, BYTES_FREE/1024/1024 FREE from V$TEMP_SPACE_HEADER;

لعرض محتويات ال TEMP

select * from V$TEMPSEG_USAGE where USERNAME not in ('SYSMAN');

كما ارجو تزويدنا بنسخة اوراكل المستخدمة لديط.

 

 

عندي تطبيق هذا الامر اخي العزيز

select TABLESPACE_NAME, BYTES_USED/1024/1024 USED, BYTES_FREE/1024/1024 FREE from V$TEMP_SPACE_HEADER;

كانت النتيجة كالتالي

TABLESPACE_NAME                      USED       FREE
------------------------------ ---------- ----------
TEMP                                32767          0

وعند تطبيق 

select * from V$TEMPSEG_USAGE where USERNAME not in ('SYSMAN');

كانت النتيجة 

USERNAME                       USER                           SESSION_ADDR
------------------------------ ------------------------------ ----------------
SESSION_NUM SQLADDR             SQLHASH SQL_ID
----------- ---------------- ---------- -------------
TABLESPACE                      CONTENTS  SEGTYPE     SEGFILE#    SEGBLK#
------------------------------- --------- --------- ---------- ----------
   EXTENTS     BLOCKS   SEGRFNO#
---------- ---------- ----------
loof                           loof                            000007FF2C1690F8
          8 000007FF25872608 2608789908 8mkvraydrxycn
TEMP                            TEMPORARY LOB_DATA         201    4193929
         1        128          1
بتاريخ:

كما تعلم اخي موسى ان ال Temporary Tablespace يستخدم في الحالات البينية فقط مثل (عمليات ترتيب Sort كبيرة , عمليات التجزئة او Hash Operations) فأي العمليات هي التي يحصل عندها الخطأ المذكور.

 

كما اعلم أخي ان 32 جيجا يعتبر حجم كبير جدا فأعتقد ان Temp Datafile is Auto Extend وهذا غير مستحسن. وذلك بسبب انه يحتمل ان يكون هنالك تعليمة كبيرة جدا من حيث الترتيب Sort وتشتغل لعدة ساعات فهذا قد يسبب كبر غير مرغوب فيه في Tempوهذا ما اعتقد انه حصل في حالتك وادى الى هذا الحجم.

 

ارجو منك تزويدي بمعلومات عن ال Temp

select * from dba_temp_files;

ومعلومات عن الاجراء المسبب لهذا الخطأ.

 

 

تحياتي,

حامد

بتاريخ:
  • كاتب الموضوع
FILE_NAME
--------------------------------------------------------------------------------
   FILE_ID TABLESPACE_NAME                     BYTES     BLOCKS STATUS
---------- ------------------------------ ---------- ---------- ---------
RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS
------------ --- ---------- ---------- ------------ ---------- -----------
D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA9I\TEMP01.DBF
         1 TEMP                           3.4359E+10    4194176 AVAILABLE
           1 YES 3.4360E+10    4194302           80 3.4358E+10     4194048

اخي تخرج هذه الرسالة عند ترحيل بيانات باعداد سجلات كبيرة

بتاريخ:

يبدو ان العملية كبيرة وتحتاج الى مساحة اضافية.

فبما ان ال TEMP قام بحجز البيانات ولم يحررها مرة اخرى وبذلك تظهر جميع المساحة مستخدمة, فأقترح عليك عمل التالي:

انشاء temp جديد ومن ثم جعله افتراضية وبعد ذلك حذف ال temp القديم

1- قم بإنشاء temp جديد بمساحة 20G والسماح له بالزيادة الى 50G.

CREATE TEMPORARY TABLESPACE TEMP2 TEMPFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORA9I\TEMP02.DBF'SIZE 20G AUTOEXTEND ON MAXSIZE 50G;

2- تغيير ال temp2  الى الافتراضي

ALTER DATABASE DEFAULT TEMPORARY TABLESPACE TEMP2;

3- حذف ال TEMP القديم

DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES;

اخيرا قم بمراقبة الزيادة في حجم الTEMP لكي تعرف ماهو الحجم المناسب له واعلمنا بالنتائج.

 

تحياتي,

حامد

انضم إلى المناقشة

يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.

زائر
أضف رد على هذا الموضوع...

برجاء الإنتباه

بإستخدامك للموقع فأنت تتعهد بالموافقة على هذه البنود: سياسة الخصوصية

Account

Navigation

البحث

إعداد إشعارات المتصفح الفورية

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.