深藍的天空下,有你有我...
          共享酸、甜、苦、辣
          posts - 23,comments - 19,trackbacks - 0
          --創建一個表來保存提取出來的sql create table logmnr_content tablespace tools as scn,cscn,TIMESTAMP,sql_undo from v$logmnr_contents where 1=0; --通過dba_objects 查到表對應的 object_id and data_object_id ,用來在log中提取該表相關的sql_undo select object_id,data_object_id from dba_objects where object_name = ??? --通過在os中找到的歸檔日志范圍,進行聯機提取 將undo sql 插入一個表中,比如我的日志序號范圍是 5813 到 5850 為了防止臨時空間不足,一個一個歸檔日志文件處理。 begin for i in 5813..5850 loop dbms_logmnr.add_logfile(LogFileName=>'/disk2/oradata/arch/crmcn/crmcn_1_'||i||'.arc'); dbms_logmnr.start_logmnr(Options => sys.dbms_logmnr.DICT_FROM_ONLINE_CATALOG); dbms_logmnr.start_logmnr(); insert into logmnr_content(scn,cscn,TIMESTAMP,sql_undo ) select scn,cscn,TIMESTAMP,sql_undo from v$logmnr_contents where DATA_OBJD# = 67540 ; commit; dbms_logmnr.end_logmnr(); end loop; end; --將提取出來的sql通過動態sql執行插入表 declare sql_str varchar2(4000); begin for c in (select * from logmnr_content) loop sql_str := replace(c.sql_undo,';',''); execute immediate sql_str; end loop; commit; end; 注意:如果在這段日志中還有其他對該表的操作的話,可以結合操作類型 OPERATION 和 提交scn cscn 來判斷 到底是不是該恢復的這部分數據。 轉自:http://www.itpub.net/thread-324926-1-1.html
          posted on 2011-06-19 02:11 三刀流の逆風 閱讀(318) 評論(0)  編輯  收藏 所屬分類: Oracle
          主站蜘蛛池模板: 鹤岗市| 潼南县| 南溪县| 宿州市| 栾川县| 山阳县| 东乡县| 女性| 夏津县| 明星| 红安县| 宁津县| 江达县| 中宁县| 安徽省| 营山县| 江孜县| 林周县| 鲁甸县| 罗平县| 吉隆县| 江口县| 梁河县| 玉林市| 金昌市| 河池市| 北宁市| 临江市| 张家口市| 沂南县| 台南市| 开阳县| 揭西县| 宜兴市| 都匀市| 大同市| 丰顺县| 营口市| 江陵县| 高陵县| 阳原县|