منبع اصلی نوشتار زیر در این لینک قرار دارد

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

س: لیست تغیراتی که کاربران بر روی جدول T1 داده‌اند را نمایش دهید:

ج: با استفاده از کوئری زیر می‌توانید به این هدف برسید.

SQL> select commit_timestamp , logon_user, XID from flashback_transaction_query
where table_NAME='T1';
COMMIT_TI LOGON_USER                     XID
--------- ------------------------------ ----------------
12-MAY-15 MAHDI 02000000B8090000
12-MAY-15 MAHDI 02000000B8090000
12-MAY-15 MAHDI 02000000B8090000
12-MAY-15 MAHDI 08001C00C6090000

گزارش بالا لیست commitهایی که کاربران رو سطح دیتابیس رو جدول t1 انجام داده‌اند.

نکته: این گزارش نمونه‌ای از اطلاعات دیتادیکشنری است. همچنین همانطور که مشاهده می‌کنید این گزارش از flashback_transaction_query گرفته شده است.

XID = شماره پیگیری transaction است.

نمایش لیست فیلدهای جدول flashback_transaction_query

SQL> describ flashback_transaction_query;
Name Null? Type
----------------------------------------- -------- -----------------
XID                                                 RAW(8)
START_SCN NUMBER
START_TIMESTAMP DATE
COMMIT_SCN NUMBER
COMMIT_TIMESTAMP DATE
LOGON_USER VARCHAR2(30)
UNDO_CHANGE# NUMBER
OPERATION VARCHAR2(32)
TABLE_NAME VARCHAR2(256)
TABLE_OWNER VARCHAR2(32)
ROW_ID VARCHAR2(19)
UNDO_SQL VARCHAR2(4000)

نکته: اگر در حالت audit نباشید فیلد undo_sql, row_id اطلاعاتی در خود ندارد.

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



برچسب ها : , ,

به سیاره لینوکس امتیاز دهید

به اين صفحه امتياز دهيد