بتاريخ: 13 نوفمبر 200520 سنة comment_51474 أولا ال LogMiner هو أداه نستطيع من خلالها الإطلاع على التغيرات التي حدثت على ال Database سواء كانت هذه التغيرات من نوع DML ك الإضافة والتعديل وغيره أو DDL كالتعديل على أي هيكل للبيانات وطبعا السؤال هو من أين يأخذ هذه المعلومات....من ال ArchiveLog filesطيب ماهي ال ArchiveLog Filesهي نسخ مؤرشفه من ملفات ال LogFiles التي يخزن بها أي عملية تعديل حتى قبل ال DataFiles ليستفاد منها في حال حدوث خطىء بالنظامإذا لكي نتعامل مع ال LogMiner يجب أن تكون ال Database ArchiveLog Modeفكيف نخليها ArchiveLog Mode راجع الرابط التالي على المنتدىمن هونبسم الله نبدأأولا يجب أن نعدل ال init parametere" utl_file_dir" بقيمه تعبر عن ملف سوف نقوم بإستخدامه لنضع ال Dictionary تبعنا فيه....ويجب أن يكون هذا المسار موجود فعلا ALTER SYSTEM SET UTL_FILE_DIR = 'D:\tmp' scope=spfile; SHUTDOWN TRANSACTIONAL STARTUP ثم نقوم بإنشاء ال Dictionary تبعنا بواسطة الأمر التالي EXEC DBMS_LOGMNR_D.BUILD('dictionary.ora', 'D:\tmp'); ثم نقوم بتسجيل ال ArchiveLog Files لكي يتعرف عليها ال LogMiner بواسطة الأمر التالي ونكرر هذه العمليه لجميع اللوقات المؤرشفةولكي نسهل عليك الأمر يمكن مشاهدة جميع الملفات المطلوبه بواسطة الأمر التالي SELECT name FROM V$ARCHIVED_LOG; EXEC DBMS_LOGMNR.ADD_LOGFILE(LogFileName => 'هنا إسم الملف كامل ع المسار', Options => dbms_logmnr.NEW); ثم نقوم ببدابه session لل LogMiner بواسطة الأمر التالي EXEC DBMS_LOGMNR.START_LOGMNR(DictFileName => 'D:\TMP\dictionary.ora'); ثم نستطيع معرفة ماجرى بواسطة الإستعلام من هذا ال view كالتالي SELECT timestamp, sql_redo, sql_undo FROM sys.v_$logmnr_contents WHERE seg_owner = 'HR'; وبعد الإنتهاء من معرفة ماجرى يجب أن نطفي ال LogMiner كالتالي EXEC DBMS_LOGMNR.END_LOGMNR; وسلامتكمولكي تكون المسألة أسهل ما يمكن فقد قمت بعمل السكربت التالي ليقوم بكل العمل عنكم وما عليكم إلا أن تكتبو الكويري الذي تريدوه أو تقومو بحذف الخطوه الأولا من تعديل لقيمة ال utl_file_dir وإغلاق الداتا وتشغيلها إذا كنتم عدلتموها مسبقا Rem # Purpose: Work with Log Miner Rem # Author: DBA. Maher Atieh SET HEAD off PAGES 60 HOST MKDIR D:\tmp ALTER SYSTEM SET UTL_FILE_DIR = 'D:\tmp' scope=spfile; SHUTDOWN TRANSACTIONAL STARTUP EXEC DBMS_LOGMNR_D.BUILD('dictionary.ora', 'D:\tmp'); ALTER SYSTEM SWITCH LOGFILE; SPOOL tmp.tmp SELECT 'EXEC DBMS_LOGMNR.ADD_LOGFILE(LogFileName => '||''''||name||''''||',Options => dbms_logmnr.NEW);' FROM V$ARCHIVED_LOG; SPOOL off @tmp.tmp EXEC DBMS_LOGMNR.START_LOGMNR(DictFileName => 'D:\Oracle9i\database\dictionary.ora'); SELECT timestamp, sql_redo, sql_undo FROM sys.v_$logmnr_contents WHERE seg_owner = 'HR'; EXEC DBMS_LOGMNR.END_LOGMNR; SET HEAD on والسلام ختامDBA. Maher Atieh تقديم بلاغ
بتاريخ: 13 نوفمبر 200520 سنة comment_51487 مشكوووووووووووووور أخي ماهر وفي إنتظار المزيد الله يعطيك العافية تقديم بلاغ
بتاريخ: 25 نوفمبر 200520 سنة كاتب الموضوع comment_52524 يا إخوان أنا آسف لو كان الموضوع مش واضحولكني جاهز لأي إستفسارعذرا فقد أرسل لي أحد المشتركين في المنتدى رساله يقول بهاI can't understand any thing could you write it again with some understandable details....thanxوالله فرأت الموضوع أكثر من مرة ... ولاكن لا أدري أين المشكلهوالسلام عليكم تقديم بلاغ
بتاريخ: 27 نوفمبر 200520 سنة comment_52571 السلام عليكمان شاء الله راح أجرب جميع الخطوات الي ذكرتها واعطيك نتيجة مايحصل معي ومشكوووور مره أخرى تحياتي :angry: تقديم بلاغ
بتاريخ: 27 نوفمبر 200520 سنة comment_52588 السلام عليكماليكم هذا الرابط ايضاًhttp://www.oracle-base.com/articles/8i/Log....php#AddingLogs52571[/snapback] تقديم بلاغ
انضم إلى المناقشة
يمكنك المشاركة الآن والتسجيل لاحقاً. إذا كان لديك حساب, سجل دخولك الآن لتقوم بالمشاركة من خلال حسابك.