<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-314  評(píng)論-209  文章-0  trackbacks-0

    Flashback query(閃回查詢)原理

      Oracle根據(jù)undo信息,利用undo數(shù)據(jù),類似一致性讀取方法,可以把表置于一個(gè)刪除前的時(shí)間點(diǎn)(SCN),從而將數(shù)據(jù)找回。

    Flashback query(閃回查詢)前提:

    SQL> show parameter undo;

    NAME                                TYPE       VALUE

    ------------------------------------ ----------- ------------------------------

    undo_management                     string     AUTO

    undo_retention                        integer    900

    undo_tablespace                       string     UNDOTBS1

    其中undo_management = auto,設(shè)置自動(dòng)undo管理AUM),該參數(shù)默認(rèn)設(shè)置為:auto;

    Undo_retention = n(),設(shè)置決定undo最多的保存時(shí)間,其值越大,就需要越多的undo表空間的支持。修改undo_retention的命令如下:

    SQL> alter system set undo_retention = 3600;

    System altered

    閃回實(shí)現(xiàn)方式

    1.      獲取數(shù)據(jù)刪除前的一個(gè)時(shí)間點(diǎn)或scn,如下:

    SQL>select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time, to_char(dbms_flashback.get_system_change_number) scn from dual;

    TIME               SCN

    ------------------- ----------------------------------------

    2010-06-29 23:03:14 1060499

    2.      查詢?cè)摃r(shí)間點(diǎn)(或scn)的數(shù)據(jù),如下:

    SQL> select * from t as of timestamp to_timestamp('2010-06-29 22:57:47', 'yyyy-mm-dd hh24:mi:ss');

    SQL> select * from t as of scn 1060174;

    3.      將查詢到的數(shù)據(jù),新增到表中。也可用更直接的方法,如:

    SQL>create table tab_test as select * from t of timestamp to_timestamp('2010-06-29 22:57:47', 'yyyy-mm-dd hh24:mi:ss');
    SQL>insert into tab_test select * from1060174;

    示例:

    Create table t(id number);

    insertinto t values(1);
    insert into t values(2);
    insert into t values(3);
    insert into t values(4);
    insert into t values(5);

    1.查看t表中的原始數(shù)據(jù)

    SQL> select * from t;

           ID

    ---------

            1

            2

            3

            4

            5

    2.獲取數(shù)據(jù)刪除前的一個(gè)時(shí)間點(diǎn)或scn

    SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time, to_char(dbms_flashback.get_system_change_number) scn from dual;

    TIME               SCN

    ------------------- ----------------------------------------

    2010-06-29 23:23:33  1061279

    3.刪除t表中的數(shù)據(jù),并提交事物

    SQL> delete from t;

    5 rows deleted

    SQL> commit;

    Commit complete

    4.在查看t表,此時(shí)t表中數(shù)據(jù)以刪除

    SQL> select * from t;

           ID

    ----------

    5.查看t表中scn1061279(或時(shí)間點(diǎn)為2010-06-29 23:23:33)時(shí)的數(shù)據(jù)

    SQL> select * from t as of scn 1061279;

           ID

    ----------

            1

            2

            3

            4

            5

    6.確認(rèn)要恢復(fù)后,將t表中的數(shù)據(jù)還原到scn1061279(或時(shí)間點(diǎn)為2010-06-29 23:23:33)時(shí)的數(shù)據(jù),并提交事物

    SQL> insert into t select * from t as of scn 1061279;

    5 rows inserted

    SQL> commit;

    Commit complete

    7.確認(rèn)t表數(shù)據(jù)的還原情況

    SQL> select * from t;

           ID

    ----------

            1

            2

            3

            4

            5

    注:推薦使用scn,由于oracle9i中,因?yàn)?/span>scn與時(shí)間點(diǎn)的同步需要5分鐘,如果最近5分鐘之內(nèi)的數(shù)據(jù)需要Falshback query查詢,可能會(huì)查詢丟失,而scn則不存在這個(gè)問(wèn)題。Oracle10g中這個(gè)問(wèn)題已修正(scn與時(shí)間點(diǎn)的大致關(guān)系,可以通過(guò)logmnr分析歸檔日志獲得)。

    Falshback query查詢的局限:

    1. 不能Falshback5天以前的數(shù)據(jù)。

    2. 閃回查詢無(wú)法恢復(fù)到表結(jié)構(gòu)改變之前,因?yàn)殚W回查詢使用的是當(dāng)前的數(shù)據(jù)字典。

    3. 受到undo_retention參數(shù)的影響,對(duì)于undo_retention之前的數(shù)據(jù),Flashback不保證能Flashback成功。

    4. 對(duì)drop,truncate等不記錄回滾的操作,不能恢復(fù)。

    5. 普通用戶使用dbms_flashback包,必須通過(guò)管理員授權(quán)。命令如下:

    SQL>grant execute on dbms_flashback to scott;

    posted on 2010-08-04 20:39 xzc 閱讀(27797) 評(píng)論(0)  編輯  收藏 所屬分類: Oracle
    主站蜘蛛池模板: 久久精品网站免费观看| 久久久久久免费一区二区三区| 又大又黄又粗又爽的免费视频| 特级做a爰片毛片免费看| 亚洲欧洲成人精品香蕉网| 日韩精品免费视频| 中文字幕亚洲码在线| 亚洲色欲久久久久综合网| 最近免费中文字幕mv在线电影| 亚洲hairy多毛pics大全| 夜夜春亚洲嫩草影院| 成年女人18级毛片毛片免费观看| 国产精品内射视频免费| 亚洲一卡2卡4卡5卡6卡在线99| 国产免费爽爽视频免费可以看| 男人天堂免费视频| 亚洲丰满熟女一区二区哦| 亚洲高清在线视频| 午夜国产大片免费观看| 日本xxxx色视频在线观看免费| 亚洲国产成人AV在线播放| 亚洲一区二区电影| 亚洲JIZZJIZZ中国少妇中文| 麻豆高清免费国产一区| 人妻巨大乳hd免费看| 亚洲AV无码专区在线亚| 亚洲人精品午夜射精日韩| 成年网站免费视频A在线双飞| 中文字幕不卡免费高清视频| 亚洲AV女人18毛片水真多| 久久精品国产亚洲AV无码麻豆 | 亚洲人成人一区二区三区| 女人被弄到高潮的免费视频 | 亚洲一区日韩高清中文字幕亚洲| 国产成人无码免费看视频软件| 少妇性饥渴无码A区免费| 特a级免费高清黄色片| 亚洲av无码片vr一区二区三区| 亚洲图片校园春色| 91亚洲精品第一综合不卡播放| 亚洲精品中文字幕乱码三区|