با سلام
یک سوال خیلی ابتدایی دارم
undo data ها کجا ذخیره می شن؟
ممنون می شم اگه جواب بدین
با سلام
یک سوال خیلی ابتدایی دارم
undo data ها کجا ذخیره می شن؟
ممنون می شم اگه جواب بدین
سلام
اوراکل از undo ها برای نگهداری تغییرات داده ای جهت rollback transactionها استفاده می کند
در recover کردن دیتابیس
ایجاد consistency دیتابیس در نشان دادن داده ها به چندین session
در Flashback کردن دیتابیس به یک پوینت زمانی به عنوان یک قابلیت در زمان Flashback بر روی query,transaction و تغییرات جداول دیتابیس استفاده می شود.
اگر مقدار پارامتر undo_management را به Auto ست کرده باشیم، به صورت پیش فرض یک undo tablespace در زمان نصب ایجاد می شود.
این طور در نظر بگیرید که یک سگمنت از undo به صورت یک دایره است که قطاع بندی شده. در یک قطاع از سگمنت برعکس تمام عملیات DML روی داده دیتابیس ذخیره می شود. پس مثلا هر دستور insert در undo به صورت delete درج می شود البته مد نظر باشه که مقدار درون آن قطاع دستور نیست بلکه یک undo data است.
این قطاع بندی هم توسط اوراکل به صورت اینکه هر تراکنش در چه مد active یا invalid باشد مدیریت می شود تا بتواند دستورات commit - rollback را اجرایی کند. اگر فضای این قطاع برای ثبت تغییراتی خالی بود که در آن undo نوشته می شود اگر نبود فضای جدیدی را به صورت ادامه دار از انتهای همان فضای ابتدایی تخصیص داده شده برای سگمنت های قطاع اضافه می کند. قطاع ها در مد های expired - free - unexpired - extend موجود هستند. پارامتر undo_retention برای نگهداری یک تراکنش commit شده تا مقدار این پارامتر (به ثانیه) در undo TBS استفاده می شود.