午夜国产狂喷潮在线观看|国产AⅤ精品一区二区久久|中文字幕AV中文字幕|国产看片高清在线

    oracle中關(guān)于flashback閃回的介紹
    來源:易賢網(wǎng) 閱讀:766 次 日期:2015-02-02 16:00:46
    溫馨提示:易賢網(wǎng)小編為您整理了“oracle中關(guān)于flashback閃回的介紹”,方便廣大網(wǎng)友查閱!

    1、必須設(shè)定undo保留時間足夠大以能夠重構(gòu)需要閃回的數(shù)據(jù)

    ALTER SYSTEM SET UNDO_RETENTION=; seconds值是undo數(shù)據(jù)保持的秒數(shù)。

    Flashback view是由undo retention interval來限制的。

    2、包DBMS_FLASHBACK提供了需求接口

    call dbms_flashback.enable_at_time(‘2010-10-19:11:00:00’);

    call dbms_flashback.disable();

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

    enable_at_time:會話級的enable flashback,映像時間被設(shè)定為最接近指定時間戳的scn

    enable_at_system_change_number:將數(shù)據(jù)庫閃回到指定的scn號。

    get_system_change_number:返回當前的scn。

    disable:這個存儲過程允許我們在整個會話內(nèi)停止flashback并將你帶回當前時間的數(shù)據(jù)狀態(tài)。

    ----------

    dbms_flashback.enable存儲過程不可以在有活動事務(wù)的時候執(zhí)行,并且,這個包不能用sys身份執(zhí)行。

    在使用DBMS_FLASHBACK.ENABLE_AT_TIME前,你必須設(shè)定你的NLS_DATE_FORMAT的精確程度,Oracle默認的是精確到天

    3、timestamp 與scn(系統(tǒng)改變號) 的對應(yīng)關(guān)系

    事實上,Oracle在內(nèi)部都是使用scn,即使你指定的是as of timestamp,oracle也會將其轉(zhuǎn)換成scn,系統(tǒng)時間標記與scn之間存在一張表,即SYS下的SMON_SCN_TIME表。

    每隔5分鐘,系統(tǒng)產(chǎn)生一次系統(tǒng)時間標記與scn的匹配并存入sys.smon_scn_time表,該表中記錄了最近1440個系統(tǒng)時間標記與scn的匹配記錄,由于該表只維護了最近的1440條記錄,因此如果使用as of timestamp的方式則只能flashback最近5天內(nèi)的數(shù)據(jù)(假設(shè)系統(tǒng)是在持續(xù)不斷運行并無中斷或關(guān)機重啟之類操作的話)。SYS.SMON_SCN_TIME最多擁有1440條記錄。這個最大記錄數(shù)是這樣計算出來的,ORACLE平均每5分鐘同步一次該表數(shù)據(jù),最大保存最近5天的記錄,因此就相當于12(每小時更新次數(shù))*24*5=1440。

    可以用sql驗證一下:

    Sql代碼

    select scn,to_char(time_dp,'yyyy-mm-dd hh24:mi:ss') from sys.smon_scn_time;

    10g中提供了兩個函數(shù)scn_to_timestamp() 和timestamp_to_scn() 用來執(zhí)行時間戳和SCN的轉(zhuǎn)換。

    下面使用閃回進行演示一下:

    1、登陸到數(shù)據(jù)庫。

    Sql代碼

    C:>sqlplus tivan/tivan

    SQL*Plus: Release 10.2.0.1.0 - Production on 星期二 10月 19 22:24:03 2010

    Copyright (c) 1982, 2005, Oracle. All rights reserved.

    連接到:

    Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

    With the Partitioning, OLAP and Data Mining options

    2、查看表的記錄。

    Sql代碼

    SQL> select count(*) from t1

    2 ;

    COUNT(*)

    ----------

    8302

    3、刪除所有的記錄提交。

    Sql代碼

    SQL> delete from t1

    2 ;

    已刪除8302行。

    SQL> commit;

    提交完成。

    4、獲得當前SCN

    如果能夠確切知道刪除之前SCN最好,如果不知道,可以進行閃回查詢嘗試。

    Sql代碼

    SQL> select dbms_flashback.get_system_change_number from dual;

    GET_SYSTEM_CHANGE_NUMBER

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

    1482649

    SQL> select count(*) from t1 as of scn 1482600;

    COUNT(*)

    ----------

    8302

    SCN=1482600時,t1表中的所有記錄都還在。

    5、利用閃回恢復(fù)數(shù)據(jù)。

    查看驗證一下:

    Sql代碼

    SQL> insert into t1 select * from t1 as of scn 1482600;

    已創(chuàng)建8302行。

    SQL> commit;

    提交完成。

    結(jié)果OK

    或者還可以如下操作

    Sql代碼

    SQL>flashback table t1 to scn 1482600;

    SQL> commit;

    Commit complete.

    --對于drop table t1 的操作flashback

    SQL> drop table t1;

    SQL>COMMIT;

    SQL> flashback table t1to before drop;

    SQL>commit;

    對于怎么取的SCN可以使用timestamp_to_scn() 函數(shù),如:

    Sql代碼

    select timestamp_to_scn(to_timestamp('2010-10-19 21:00:00','YYYY-MM-DD HH:MI:SS')) from dual;

    更多信息請查看IT技術(shù)專欄

    更多信息請查看數(shù)據(jù)庫
    易賢網(wǎng)手機網(wǎng)站地址:oracle中關(guān)于flashback閃回的介紹
    由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇剩?/div>

    2025國考·省考課程試聽報名

    • 報班類型
    • 姓名
    • 手機號
    • 驗證碼
    關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
    工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
    聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
    咨詢QQ:1093837350(9:00—18:00)版權(quán)所有:易賢網(wǎng)