[DB2] نحوه حل گزارش معامله برای پایگاه داده ها پر است (SQL0964C)

ساخت وبلاگ

هر بانک اطلاعاتی پرونده های ورود به سیستم را به نام "ورود به سیستم معامله" می نویسد تا تغییرات در پایگاه داده را مجدداً مورد استفاده قرار دهد. از این پرونده های ورود به سیستم استفاده می شود که بانک اطلاعاتی نیاز به بازیابی داشته باشد.

گزارش معامله شامل "ورود به سیستم فعال" و "ورود به سیستم بایگانی شده" است. در طی معاملات ، اصلاحات در پایگاه داده توسط هر معامله در "ورود به سیستم فعال" ثبت شد. این اطلاعات به این صورت اشاره می شود که اگر معامله به عقب برگردانده شود ، در هنگام بازیابی تصادف یا برای بازیابی رولفروارد در آینده استفاده شود.

بنابراین ، قدیمی ترین سابقه ورود به معاملات معامله غیرقابل قبول باید در "ورود به سیستم فعال" گنجانده شود. و تمام سوابق ورود به سیستم بیشتر به عنوان "ورود به سیستم فعال" رفتار می شوند. اگر قدیمی ترین معامله غیرقانونی انجام نشده و برای مدت طولانی به عقب برگردانده نشده باشد ، "ورود به سیستم فعال" همچنان در حال افزایش است.

توجه: پرونده "اولین ورود به سیستم فعال" است که حاوی سوابق قدیمی قدیمی "Lowtranlsn" (قدیمی ترین انتقال غیرقانونی) یا "minbuflsn" (قدیمی ترین صفحه کثیف نشده در استخرهای بافر) است. این مقاله (و در بیشتر موارد) توصیف می کند "ورود به سیستم معامله کامل" است که ناشی از "Lowtranlsn" است. با این وجود ممکن است که یک "ورود به سیستم کامل باشد" ، وضعیت توسط "minbuflsn" ایجاد شده است ، به دلیل تنظیم پارامتر خیلی بزرگ SoftMax یا پردازش پاک کننده صفحه نمی تواند صفحات کثیف را سریعتر از درخواست اصلاح پایگاه داده کند.

پیام AMD1823E نشان می دهد که پرونده های "ورود به سیستم فعال" کامل می شوند و DB2 نمی تواند اطلاعات اصلاح پایگاه داده را دیگر ضبط کند. در این شرایط ، درخواست به روزرسانی (به روزرسانی/حذف/درج) نمی تواند انجام شود زیرا هیچ سابقه ورود به سیستم دیگر در "ورود به سیستم فعال" نمی تواند نوشته شود.

پاسخ

شما سه گزینه برای رهایی از وضعیت دارید: (1) قدیمی ترین معامله غیر مجاز ، (2) منطقه ورود به سیستم را افزایش دهید ، یا (3) از مدیریت فضای پیشرفته ورود به سیستم (ALSM) استفاده کنید.

1. اگر یک معامله (یا بیشتر) معامله طولانی مدت وجود ندارد

به عنوان یک راه حل سریع ، معامله را ایجاد کنید که باعث ایجاد وضعیت "ورود به سیستم کامل است" ، سپس آن را متعهد یا بازگردانید.

1. 1تعیین قدیمی ترین معامله غیر قابل قبول.

پیام ADM1823E را در پرونده db2diag. log جستجو کنید ، سپس شماره دسته برنامه را در آن پیدا کنید.

در این حالت ، "504" دسته برنامه قدیمی ترین معامله غیر مجاز است. می توانید شماره پارتیشن و دسته برنامه را به عنوان مجموعه ای مانند "0-504" مشاهده کنید. اگر بارها می توانید پیام ADM1823E را ببینید ، و آنها شامل همان دسته برنامه به طور مداوم هستند ، باید دلیل "ورود به سیستم معامله کامل" باشد.

توجه: اگر شماره دسته برنامه در قسمت APPHDL و در پیام ADM1823E یکسان باشد ، نشان می دهد که خود برنامه سیاهههای معامله عظیمی را تولید می کند و باعث شده است که "ورود به سیستم کامل باشد". می توانید با استفاده از پارامترهای پیکربندی پایگاه داده num_log_span یا max_log ، زمان اجرای یا میزان ورود به سیستم را برای جلوگیری از "ورود به سیستم معامله" محدود کنید. برای جزئیات بیشتر به بخش "بررسی عملیاتی" مراجعه کنید.

می توانید شناسه برنامه قدیمی ترین معامله بدون اتمام ، همچنین از خروجی عکس فوری پایگاه داده را پیدا کنید.

توجه: هنگامی که شماره دسته برنامه در پیام ADM1823E گنجانده نشده است ، ممکن است وضعیت "معامله کامل باشد" ممکن است ناشی از باقیمانده تراکنش غیرمجاز باشد. لطفاً به یک تکنیک دیگر [DB2 LUW] بازیابی معامله غیرمجاز مراجعه کنید

1. 2راه حل

با استفاده از هر یک از روشهای ذکر شده ، معاملات غیر مجاز مشخص شده در مرحله 1. 1 را خاتمه دهید:

  • شماره درخواست درخواست از درخواست
  • صدور درخواست بازگشت از درخواست
  • به طور عمدی برنامه را با دستور "Force Application" به عنوان مثال خاتمه دهید ، اگر می خواهید برنامه را با شماره شماره 504 خاتمه دهید ، دستور زیر را صادر کنید: توجه: حتی اگر دسته برنامه دو قسمتی مانند "0-504" دارید ، مشخص کنیدفقط "504" به جای "0-504". توجه: هنگامی که یک برنامه سیستم مانند "DB2Reorg" ، "DB2ACD" و غیره قدیمی ترین مالک معامله غیر مجاز است ، دستور "برنامه نیرو" برای این برنامه های سیستم کار نمی کند. این امکان وجود دارد که این برنامه های سیستم در انتظار قفل باشند و نمی توانند منابع ورود به سیستم را منتشر کنند. با اجرای دستور "DB2P D-WLOC K-ALLDBS" می توانید نگهدارنده قفل را پیدا کنید. اگر می توانید نگهدارنده قفل را پیدا کنید که باعث انتظار قفل برنامه سیستم می شود ، با استفاده از دستور "برنامه Force" آن را خاتمه دهید.

برنامه درخواست خود را اصلاح کنید تا به موقع تر تعهد کنید.

2. هنگامی که تغییرات زیادی (به روزرسانی/حذف/درج) انجام شد و منطقه ورود به سیستم فضای کافی برای ذخیره این پرونده های ورود به سیستم ندارد.

با افزایش اندازه پرونده ورود به سیستم و/یا تعداد پرونده های ورود به سیستم ، منطقه ورود به سیستم فعال را بزرگ کنید. توجه: اگر برنامه ای وجود دارد که هرگز مرتکب یا بازپرداخت شود ، این روش کار نمی کند.

2. 1تنظیم پارامتر فعلی را در مورد پرونده log پیدا کنید.

DB2 DB CFG را برای [پایگاه داده] دریافت کنید

به پارامترهای پیکربندی پایگاه داده زیر مراجعه کنید

توضیح این پارامترها:

  • تعداد پرونده های ورود به سیستم اولیه: تعداد logprimary پرونده های ورود به سیستم اولیه که باید از بین بروند. این پرونده های ورود به سیستم هنگام فعال شدن بانک اطلاعاتی ایجاد می شوند ، به دلیل دلیل عملکرد ، توصیه می شود اندازه کافی را برای ذخیره سابقه ورود به سیستم در بار کار عادی تهیه کنید.
  • تعداد پرونده های ورود به سیستم ثانویه: تعداد پرونده های ورود به سیستم ثانویه که فقط در صورت لزوم ایجاد می شوند. هنگامی که از همه پرونده ورود به سیستم اولیه استفاده شده و به پرونده ورود به سیستم بیشتری احتیاج دارید ، پرونده ورود به سیستم ثانویه در صورت لزوم ایجاد و استفاده می شود. اگر تعداد مشخصی از پرونده های ورود به سیستم ثانویه ایجاد شود و هنوز هم به پرونده ورود به سیستم بیشتری نیاز داشته باشد ، پرونده ورود به سیستم معامله به عنوان شرایط کامل درمان می شود.
  • اندازه پرونده log: اندازه logfilsiz از هر پرونده ورود به سیستم اولیه و ثانویه. مقدار باید در واحد صفحه 4KB مشخص شود (یعنی مقدار "1000" به معنی 1000 x 4k = 4000kb) است.
  • مسیر ورود به سیستم پرونده هایی که در آن پرونده های ورود به سیستم ذخیره می شوند. حداکثر اندازه کل فضای ورود به سیستم را می توان با فرمول محاسبه کرد: لطفاً اطمینان حاصل کنید که "مسیر ورود به سیستم" فضای کافی برای حداکثر اندازه کل فضای ورود به سیستم داشته باشد.

2. 2راه حل

  • افزایش اندازه هر پرونده های ورود به سیستم (logfilsiz): DB2 DB CFG را برای [پایگاه داده] با استفاده از logfilsiz [مقدار جدید] به روز کنید.
  • افزایش تعداد پرونده های ورود به سیستم (logprimary / logsecond)
    • افزایش تعداد پرونده های ورود به سیستم اولیه DB2 به روزرسانی DB CFG برای [پایگاه داده] با استفاده از LogPrimary [مقدار جدید]
    • افزایش تعداد پرونده های ورود به سیستم ثانویه (بلافاصله کار می کند) DB2 DB CFG را برای [پایگاه داده] با استفاده از logsecond [مقدار جدید] فوری به روز کنید

    3. از مدیریت پیشرفته فضای ورود به سیستم (ALSM) استفاده کنید

    با شروع از DB2 نسخه 11. 5 Mod Pack 4 ، از مدیریت پیشرفته فضای ورود به سیستم (ALSM) استفاده کنید تا احتمال ضربه زدن به شرایط کامل ورود به سیستم را کاهش دهید. این ویژگی را می توان با تنظیم متغیر رجیستری DB2_ADVANCED_LOG_SPACE_MGMT به ON فعال کرد.

    توجه: اگر مقدار logsecond را اصلاح کردید ، بلافاصله کار می کند. اگر مقدار logprimary یا logfilsiz را تغییر دادید ، برای ایجاد این تغییر ، بانک اطلاعاتی باید دوباره فعال شود. بنابراین اگر دوست ندارید برنامه خود را قطع کنید ، ورود به سیستم را افزایش دهید. بدون توقف برنامه کار می کند. مجموع مقدار logprimary و logsecond نمی تواند از 256 تجاوز کند (در V11. 5 ، حداکثر تعداد کل پرونده های ورود به سیستم در حالت ورود به سیستم بایگانی شده 8192 می شوند).

    ملاحظه عملیاتی

    اگر می خواهید از وضعیت "ورود به سیستم کامل" ناشی از معامله غیرقانونی طولانی مدت جلوگیری کنید ، می توانید پارامتر پیکربندی پایگاه داده "num_log_span" را مشخص کنید. هنگامی که هر معامله غیرمجاز به تعداد مشخصی از پرونده های ورود به سیستم در پارامتر "num_log_span" رسید ، برنامه خاتمه یافته و توسط مدیر پایگاه داده برگشت. num_log_span - پارامتر پیکربندی دهانه ورود به سیستم شماره

    اگر می خواهید از وضعیت "ورود به سیستم معاملات کامل" ناشی از معامله جلوگیری کنید که میزان زیادی از سابقه ورود به سیستم را ایجاد می کند ، می توانید پارامتر پیکربندی پایگاه داده "max_log" را مشخص کنید. هنگامی که هر یک از معامله ها مقدار ثبت ورود به سیستم را تولید می کنند که از مقدار پارامتر "max_log" فراتر می رود ، برنامه توسط مدیر پایگاه داده خاتمه داده و به عقب برگردانده می شود. max_log - حداکثر ورود به سیستم در هر پارامتر پیکربندی معامله

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

فارکس حرفه ای...
ما را در سایت فارکس حرفه ای دنبال می کنید

برچسب : نویسنده : مرتضی احباب بازدید : <-PostHit-> تاريخ : يکشنبه 21 اسفند 1401 ساعت: 15:36