<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當(dāng)前位置: 首頁 - 科技 - 知識(shí)百科 - 正文

        delete表的數(shù)據(jù)后恢復(fù)

        來源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 09:43:08
        文檔

        delete表的數(shù)據(jù)后恢復(fù)

        delete表的數(shù)據(jù)后恢復(fù):今天測(cè)試下了Oracle在刪除表的數(shù)據(jù)后的恢復(fù)方法。 在Oracle生產(chǎn)系統(tǒng)的維護(hù)測(cè)試中有一張表,將里面的數(shù)據(jù)delete并commit了,由于業(yè)務(wù)不能中斷(數(shù)據(jù)庫不能停機(jī)),并且系統(tǒng)還在不斷有數(shù)據(jù)往該表中寫入。現(xiàn)在需要將之前delete掉的數(shù)據(jù)恢復(fù),可以使用基于scn
        推薦度:
        導(dǎo)讀delete表的數(shù)據(jù)后恢復(fù):今天測(cè)試下了Oracle在刪除表的數(shù)據(jù)后的恢復(fù)方法。 在Oracle生產(chǎn)系統(tǒng)的維護(hù)測(cè)試中有一張表,將里面的數(shù)據(jù)delete并commit了,由于業(yè)務(wù)不能中斷(數(shù)據(jù)庫不能停機(jī)),并且系統(tǒng)還在不斷有數(shù)據(jù)往該表中寫入。現(xiàn)在需要將之前delete掉的數(shù)據(jù)恢復(fù),可以使用基于scn

        今天測(cè)試下了Oracle在刪除表的數(shù)據(jù)后的恢復(fù)方法。 在Oracle生產(chǎn)系統(tǒng)的維護(hù)測(cè)試中有一張表,將里面的數(shù)據(jù)delete并commit了,由于業(yè)務(wù)不能中斷(數(shù)據(jù)庫不能停機(jī)),并且系統(tǒng)還在不斷有數(shù)據(jù)往該表中寫入。現(xiàn)在需要將之前delete掉的數(shù)據(jù)恢復(fù),可以使用基于scn的恢

        今天測(cè)試下了Oracle在刪除表的數(shù)據(jù)后的恢復(fù)方法。

        在Oracle生產(chǎn)系統(tǒng)的維護(hù)測(cè)試中有一張表,將里面的數(shù)據(jù)delete并commit了,由于業(yè)務(wù)不能中斷(數(shù)據(jù)庫不能停機(jī)),并且系統(tǒng)還在不斷有數(shù)據(jù)往該表中寫入。現(xiàn)在需要將之前delete掉的數(shù)據(jù)恢復(fù),可以使用基于scn的恢復(fù)。

        在刪除之前,最好查詢到數(shù)據(jù)庫當(dāng)前的scn,恢復(fù)的時(shí)候就采用基于這個(gè)scn點(diǎn)的恢復(fù)。

        example:
        方法一:
        1)創(chuàng)建一張測(cè)試表;
        CREATE TABLE w AS SELECT * FROM dba_objects WHERE 1 = 2;
        2)向該表插入測(cè)試數(shù)據(jù);
        SQL> insert into w select * from dba_objects;

        72558 rows created.

        SQL> commit;

        Commit complete.
        3)SQL> select count(*) from w;

        COUNT(*)
        ----------
        72558
        4)在刪除之前,先獲取數(shù)據(jù)庫的scn,便于恢復(fù)的時(shí)候查找到數(shù)據(jù)在什么時(shí)候還是存在的;
        SQL> select dbms_flashback.get_system_change_number from dual;

        GET_SYSTEM_CHANGE_NUMBER
        ------------------------
        117853514 ------ 當(dāng)前scn號(hào)
        由于數(shù)據(jù)庫沒有停,因此scn號(hào)也在不斷變化,因此需要查出數(shù)據(jù)在哪個(gè)scn點(diǎn)的時(shí)候還是存在的
        SQL> select count(*) from w as of scn 117854000; ------查看數(shù)據(jù)在scn號(hào)為117854000時(shí)是否存在
        select count(*) from w as of scn 117854000
        *
        ERROR at line 1:
        ORA-08181: specified number is not a valid system change number ------應(yīng)該是系統(tǒng)還沒有走到這個(gè)scn號(hào)


        SQL> select count(*) from w as of scn 117853000;------查看數(shù)據(jù)在scn號(hào)為117853000時(shí)是否存在

        COUNT(*)
        ----------
        0 ------不存在

        SQL> select count(*) from w as of scn 117853500;

        COUNT(*)
        ----------
        0

        SQL> select count(*) from w as of scn 117853510; 直到查到這個(gè)scn才發(fā)現(xiàn)數(shù)據(jù)才存在,因此屆時(shí)就是基于這個(gè)scn點(diǎn)進(jìn)行恢復(fù)

        COUNT(*)
        ----------
        72558
        5)模擬刪除數(shù)據(jù);
        SQL> delete from w;

        72558 rows deleted.

        SQL> commit;

        Commit complete.
        SQL> SELECT COUNT(*) FROM w;

        COUNT(*)
        ----------
        0
        6)模擬數(shù)據(jù)庫不停機(jī),業(yè)務(wù)在不斷向表中插入數(shù)據(jù); 【Linux公社 http://www.linuxidc.com 】
        SQL> insert into w select * from w as of scn 117844000;

        72558 rows created.

        SQL> select count(*) from w;

        COUNT(*)
        ----------
        72558
        7)執(zhí)行基于刪除之前數(shù)據(jù)仍然存在的scn點(diǎn)的恢復(fù);
        SQL> insert into w select * from w as of scn 117853510;
        72558 rows created.

        SQL> commit;

        Commit complete.
        8)查詢驗(yàn)證,之前刪除的數(shù)據(jù)是否恢復(fù)回來了,并且新插入的數(shù)據(jù)也存在;
        SQL> select count(*) from w;

        COUNT(*)
        ----------
        145116
        大功告成。之前delete掉的72558條數(shù)據(jù)+新進(jìn)來的72558條數(shù)據(jù),總共是145116條數(shù)據(jù)。達(dá)到我們的要求!

        現(xiàn)在稍微總結(jié)一下:
        在做數(shù)據(jù)表的刪除操作之前,一點(diǎn)要謹(jǐn)慎,尤其是在生產(chǎn)系統(tǒng)不能停機(jī)的情況下,要么首先將數(shù)據(jù)庫或者表備份一下,再進(jìn)行刪除,這樣就算需要恢復(fù)也可以用備份進(jìn)行恢復(fù);如果刪除時(shí)候沒有做相關(guān)備份,在刪除之前一定要先查下系統(tǒng)當(dāng)前scn,并且驗(yàn)證出數(shù)據(jù)在哪個(gè)scn點(diǎn)的時(shí)候還是存在的(這點(diǎn)很重要,如果沒有找到,就無法恢復(fù)刪除的數(shù)據(jù))恢復(fù)的時(shí)候就基于這個(gè)scn點(diǎn)的恢復(fù)。

        方法二:
        1)同樣創(chuàng)建上面的測(cè)試表和數(shù)據(jù);
        SQL> select count(*) from w;

        COUNT(*)
        ----------
        72558
        2)查詢下數(shù)據(jù)庫的時(shí)間,用于確定刪除的數(shù)據(jù)在什么時(shí)間點(diǎn)還存在;
        SQL> select to_char(sysdate, 'yyyy-dd-mm hh24:mi:ss') from dual;

        TO_CHAR(SYSDATE,'YY
        -------------------
        2011-23-03 17:23:55

        SQL> select count(*) from w;

        COUNT(*)
        ----------
        72558 -------數(shù)據(jù)在2011-23-03 17:23:55的時(shí)間還存在
        3)模擬數(shù)據(jù)的刪除操作;
        SQL> delete from w;

        72558 rows deleted.

        SQL> commit;

        Commit complete.
        4)將刪除數(shù)據(jù)之前的時(shí)間(數(shù)據(jù)還存在的時(shí)間)轉(zhuǎn)換為scn;
        SQL> select timestamp_to_scn(to_timestamp('2011-03-23 17:22:00','yyyy-mm-dd hh24:mi:ss')) from dual;

        TIMESTAMP_TO_SCN(TO_TIMESTAMP('2011-03-2317:22:00','YYYY- MM-DDHH24:MI:SS'))
        ---------------------------------------------------------------------------
        117872363
        5)驗(yàn)證這個(gè)scn點(diǎn)時(shí)數(shù)據(jù)的存在;
        SQL> select count(*) from w as of scn 117872363;

        COUNT(*)
        ----------
        72558
        6)創(chuàng)建基于原表數(shù)據(jù)還存在時(shí)的臨時(shí)表;
        SQL>create table q as select * from w as of scn 117872363;

        Table created.
        以上語句由兩條語句合并而成:
        SQL>create table q as select * from w where 1 = 0;

        Table created.

        SQL>insert into q select * from w as of scn 117872363;

        72558 rows created.


        SQL> select count(*) from q;

        COUNT(*)
        ----------
        72558
        7)由于業(yè)務(wù)并未中斷,所以原表里面也有新數(shù)據(jù)進(jìn)來了,此時(shí)只要將剛創(chuàng)建的臨時(shí)表的數(shù)據(jù)導(dǎo)出,然后再倒入到原表中即可。

        聲明:本網(wǎng)頁內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        delete表的數(shù)據(jù)后恢復(fù)

        delete表的數(shù)據(jù)后恢復(fù):今天測(cè)試下了Oracle在刪除表的數(shù)據(jù)后的恢復(fù)方法。 在Oracle生產(chǎn)系統(tǒng)的維護(hù)測(cè)試中有一張表,將里面的數(shù)據(jù)delete并commit了,由于業(yè)務(wù)不能中斷(數(shù)據(jù)庫不能停機(jī)),并且系統(tǒng)還在不斷有數(shù)據(jù)往該表中寫入。現(xiàn)在需要將之前delete掉的數(shù)據(jù)恢復(fù),可以使用基于scn
        推薦度:
        • 熱門焦點(diǎn)

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 一本色道久久88亚洲精品综合| 亚洲va久久久噜噜噜久久天堂| 亚洲自国产拍揄拍| 亚欧在线精品免费观看一区| 亚洲av午夜福利精品一区| 久久精品成人免费看| 亚洲免费在线视频| 亚洲一区二区免费视频| 亚洲一区免费在线观看| 高清国语自产拍免费视频国产| 亚洲熟妇无码一区二区三区| 热99re久久免费视精品频软件| 亚洲中文精品久久久久久不卡| 国产福利免费观看| 一进一出60分钟免费视频| 自拍偷自拍亚洲精品被多人伦好爽| 成人免费777777被爆出| 亚洲伊人tv综合网色| 中文字幕无码不卡免费视频| 精品久久久久久久久亚洲偷窥女厕| 免费一级一片一毛片| 日本不卡免费新一区二区三区| 亚洲国产精品xo在线观看| 日美韩电影免费看| 成人A毛片免费观看网站| 色噜噜综合亚洲av中文无码| 成年人在线免费观看| 免费国产高清毛不卡片基地| 亚洲av永久无码精品秋霞电影影院| 亚洲成人在线免费观看| 亚洲av日韩av永久无码电影 | 69xx免费观看视频| 亚洲AV无码男人的天堂| 亚洲无线观看国产精品| 1000部免费啪啪十八未年禁止观看| 亚洲色一区二区三区四区| 亚洲乱码中文字幕综合| 亚洲欧洲免费无码| 91视频免费网站| 亚洲日韩AV一区二区三区中文 | 拨牐拨牐x8免费|