最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Oracle 閃回技術(shù)詳細(xì)介紹及總結(jié)

 更新時(shí)間:2016年11月07日 15:34:48   作者:dreamcatcher-cx  
這篇文章主要介紹了Oracle 閃回技術(shù)詳細(xì)介紹的相關(guān)資料,這里提供了4種閃回技術(shù),需要的朋友可以參考下

Oracle閃回技術(shù)詳解,這里整理了4種閃回技術(shù),對(duì)Oracle 閃回技術(shù)做一個(gè)整理總結(jié)。

 概述:

  閃回技術(shù)是Oracle強(qiáng)大數(shù)據(jù)庫(kù)備份恢復(fù)機(jī)制的一部分,在數(shù)據(jù)庫(kù)發(fā)生邏輯錯(cuò)誤的時(shí)候,閃回技術(shù)能提供快速且最小損失的恢復(fù)(多數(shù)閃回功能都能在數(shù)據(jù)庫(kù)聯(lián)機(jī)狀態(tài)下完成)。需要注意的是,閃回技術(shù)旨在快速恢復(fù)邏輯錯(cuò)誤,對(duì)于物理?yè)p壞或是介質(zhì)丟失的錯(cuò)誤,閃回技術(shù)就回天乏術(shù)了,還是得借助于Oracle一些高級(jí)的備份恢復(fù)工具如RAMN去完成(這才是Oracle強(qiáng)大備份恢復(fù)機(jī)制的精髓所在啊)

 撤銷段(UNDO SEGMENT)

  在講閃回技術(shù)前,需要先了解Oracle中一個(gè)邏輯結(jié)構(gòu)--撤銷段。因?yàn)榇蟛糠珠W回技術(shù)都需要依賴撤銷段中的撤銷數(shù)據(jù)。撤銷數(shù)據(jù)是反轉(zhuǎn)DML語(yǔ)句結(jié)果所需的信息,只要某個(gè)事務(wù)修改了數(shù)據(jù),那么更新前的原有數(shù)據(jù)就會(huì)被寫入一個(gè)撤銷段。(事務(wù)回滾也會(huì)用到撤銷段中的數(shù)據(jù))。事務(wù)啟動(dòng)時(shí),Oracle 會(huì)為其分配一個(gè)撤銷段,事務(wù)和撤銷段存在多對(duì)一的關(guān)系,即一個(gè)事務(wù)只能對(duì)應(yīng)一個(gè)撤銷段,多個(gè)事務(wù)可以共享一個(gè)撤銷段(不過(guò)在數(shù)據(jù)庫(kù)正常運(yùn)行時(shí)一般不會(huì)發(fā)生這種情況)。

 閃回技術(shù)

  Oracle提供了四種可供使用的閃回技術(shù)(閃回查詢,閃回刪除,閃回歸檔,閃回?cái)?shù)據(jù)庫(kù)),每種都有不同的底層體系結(jié)構(gòu)支撐,但其實(shí)這四種不同的閃回技術(shù)部分功能是有重疊的,使用時(shí)也需要根據(jù)實(shí)際場(chǎng)景合理選擇最合適的閃回功能。

   閃回查詢(Flashback Query)

    a.基本閃回查詢

    功能描述:可以查詢過(guò)去某個(gè)時(shí)間段的數(shù)據(jù)庫(kù)狀態(tài)。

    工作原理:Oracle 會(huì)提取所需要的撤銷數(shù)據(jù)(前提是撤銷是可用的,即撤銷數(shù)據(jù)還沒(méi)被覆蓋)進(jìn)行回滾,但這種回滾是臨時(shí)的,僅針對(duì)當(dāng)前session可見(jiàn)。

    SQL> select * from  dept as of timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');

    b.閃回表

    功能描述:可將某個(gè)表回退到過(guò)去某個(gè)時(shí)間點(diǎn)

    工作原理:同樣,Oracle會(huì)先去查詢撤銷段,提取過(guò)去某個(gè)時(shí)間點(diǎn)之后的所有變更,構(gòu)造反轉(zhuǎn)這些變更的SQL語(yǔ)句進(jìn)行回退,閃回操作是一個(gè)單獨(dú)的事務(wù),所以若由于撤銷數(shù)據(jù)過(guò)期之類的原因?qū)е聼o(wú)法閃回,整個(gè)操作會(huì)回滾,不會(huì)存在不一致的狀態(tài)。

    步驟:

    1.啟用表閃回首先要在表上支持行移動(dòng)(在數(shù)據(jù)字典中設(shè)置標(biāo)識(shí)來(lái)標(biāo)識(shí)該操作可能會(huì)改變行ID,即同一條數(shù)據(jù)閃回成功后主鍵都一樣,但行ID其實(shí)已經(jīng)發(fā)生變化了)   

    SQL> alter table emp enable row movement;

    2.閃回表操作      

    SQL> flashback table dept to timestamp to_timestamp('2016-09-10 11:00:00','yyyy-mm-dd hh24:mi:ss');

    閃回表可能會(huì)失敗,有可能有以下幾種情況:

      違反了數(shù)據(jù)庫(kù)約束,比如用戶不小心刪除了子表中的數(shù)據(jù),現(xiàn)在想利用閃回表技術(shù)進(jìn)行回退,恰好在這中間,父表中與該數(shù)據(jù)對(duì)應(yīng)的那條記錄也被刪除了,在這種情況下,由于違反了外鍵約束,導(dǎo)致閃回表操作失敗了;

      撤銷數(shù)據(jù)失效,比如用于支撐閃回操作的撤銷數(shù)據(jù)被覆蓋了,這種情況閃回表操作自然會(huì)失??;

      閃回不能跨越DDL,即在閃回點(diǎn)和當(dāng)前點(diǎn)之間,表結(jié)構(gòu)有過(guò)變更,這種情況閃回操作也會(huì)失敗。

    注意:上述閃回功能都是基于撤銷數(shù)據(jù)的,而撤銷數(shù)據(jù)是會(huì)被重寫的(Expired會(huì)被重寫,Active不會(huì)被重寫),所以,在需要使用這幾種閃回功能去恢復(fù)數(shù)據(jù)的時(shí)候(確切地說(shuō),是需要使用基于撤銷數(shù)據(jù)的閃回功能時(shí)),最短時(shí)間發(fā)現(xiàn)錯(cuò)誤,第一時(shí)間執(zhí)行閃回操作,才能最大程度地保證閃回功能的成功。

   閃回刪除(Flashback Drop)

  功能描述:閃回刪除可以輕松將一個(gè)已經(jīng)被Drop的表還原回來(lái)。相應(yīng)的索引,數(shù)據(jù)庫(kù)約束也會(huì)被還原(除了外鍵約束)

  原理描述:Drop命令其實(shí)是Rename命令,早期的Oracle版本(10g之前),閃回刪除意味著從數(shù)據(jù)字典中刪除了該表的所有引用,雖然表中數(shù)據(jù)可能還存在,但已成了孤魂野鬼,沒(méi)法進(jìn)行恢復(fù)了,10g版本之后,Drop命令則僅僅是一個(gè)Rename操作,所以恢復(fù)就很容易了。

    閃回刪除操作執(zhí)行命令很簡(jiǎn)單

    SQL> flashback table emp to before

  如果要還原的表名在當(dāng)前系統(tǒng)中已經(jīng)被占用,也可以在閃回刪除的時(shí)候?qū)Ρ碇孛?/p>

    SQL> flashback table emp to before drop rename to emp_new

  也可以通過(guò)回收站查看當(dāng)前用戶那些表被刪除了,每個(gè)用戶都有一個(gè)回收站,這個(gè)回收站是個(gè)邏輯結(jié)構(gòu),它不是一塊獨(dú)立的存儲(chǔ)空間,它存在在當(dāng)前表空間內(nèi),所以如果有別的操作需要空間,比如現(xiàn)在需要?jiǎng)?chuàng)建一張表,沒(méi)有足夠空間可用,回收站中的數(shù)據(jù)就會(huì)被清理,這也是導(dǎo)致閃回刪除失敗的原因。

    SQL> SHOW RECYCLEBIN;

  徹底刪除表,閃回刪除也無(wú)能為力

    SQL> DROP TABLE EMP PURGE;

  清空回收站

    SQL> PURGE RECYCLEBIN;

  注意:閃回刪除只針對(duì)Drop命令,注意區(qū)分truncate操作和drop操作,truncate稱為表截?cái)?,?huì)清空表中數(shù)據(jù)(調(diào)節(jié)Oracle高水位線實(shí)現(xiàn)),表結(jié)構(gòu)不受影響,速度很快,弊端是此過(guò)程不會(huì)產(chǎn)生任何撤銷數(shù)據(jù)或是重做日志,如果誤刪,恢復(fù)異常麻煩,要慎重使用。而Drop則會(huì)刪除數(shù)據(jù)+表結(jié)構(gòu),閃回刪除僅針對(duì)Drop操作。

   閃回?cái)?shù)據(jù)歸檔(Flashback Data Archive )

   功能描述:閃回?cái)?shù)據(jù)歸檔可使表具有回退到過(guò)去任何時(shí)間點(diǎn)的能力,前面提到的閃回查詢,閃回表都會(huì)受限于撤銷數(shù)據(jù)是否失效,如果撤銷數(shù)據(jù)被覆蓋重寫了,閃回操作自然會(huì)失敗,閃回刪除則受限于表空間是否有足夠可用空間,而閃回?cái)?shù)據(jù)歸檔,則沒(méi)有這些限制。

   創(chuàng)建閃回歸檔

   1.創(chuàng)建一個(gè)用戶閃回?cái)?shù)據(jù)歸檔的表空間,當(dāng)然,也可以使用已經(jīng)存在的表空間。

    SQL> create tablespace test_tb datafile 'test.dbf' size 20m;

   2.創(chuàng)建一個(gè)保留時(shí)間為2年的閃回歸檔

     SQL> create flashback archive test_fa tablespace test_tb retention 2 year;   

    為scott用戶下的emp表啟用閃回歸檔

   1.賦予用戶歸檔的權(quán)限

     SQL> grant flashback archive on test_fa to scott;

    2.連接用戶

     SQL> conn scott/tiger;

    3.為emp表啟用閃回歸檔

     SQL> alter table emp flashback archive test_fa;

  至此,emp表就擁有了可以查詢或回退到過(guò)去2年任意時(shí)間點(diǎn)的能力!

   閃回?cái)?shù)據(jù)庫(kù)(Flashback Database)

   功能描述:閃回?cái)?shù)據(jù)庫(kù)可將整個(gè)數(shù)據(jù)庫(kù)回退到過(guò)去某個(gè)時(shí)間點(diǎn),閃回表是某張表的時(shí)空穿梭,閃回?cái)?shù)據(jù)庫(kù)則是整個(gè)數(shù)據(jù)庫(kù)的時(shí)空穿梭。當(dāng)然,閃回點(diǎn)之后的所有工作就丟失了,其實(shí)就相當(dāng)于數(shù)據(jù)庫(kù)的不完整恢復(fù),所以只能以resetlogs模式打開(kāi)數(shù)據(jù)庫(kù)。閃回?cái)?shù)據(jù)庫(kù)會(huì)造成停機(jī)時(shí)間,當(dāng)然相比于傳統(tǒng)備份恢復(fù)機(jī)制,恢復(fù)過(guò)程會(huì)快很多。

   工作原理:閃回?cái)?shù)據(jù)庫(kù)不使用撤銷數(shù)據(jù),使用另外一種機(jī)制來(lái)保留回退所需要的恢復(fù)數(shù)據(jù),當(dāng)啟用閃回?cái)?shù)據(jù)庫(kù),發(fā)生變化的數(shù)據(jù)塊會(huì)不斷從數(shù)據(jù)庫(kù)緩沖區(qū)緩存中復(fù)制到閃回緩沖區(qū),然后,稱為恢復(fù)寫入器(Recovery Writer)的后臺(tái)進(jìn)程會(huì)將這些數(shù)據(jù)刷新到磁盤中的閃回日志文件中。閃回的過(guò)程,則是一個(gè) 提取閃回日志-->將塊映像復(fù)制回?cái)?shù)據(jù)文件 的過(guò)程。

   配置閃回?cái)?shù)據(jù)庫(kù)(閃回?cái)?shù)據(jù)庫(kù)要求數(shù)據(jù)庫(kù)為歸檔模式)

    1.指定閃回恢復(fù)區(qū),也就是存放閃回日志的位置,但閃回恢復(fù)區(qū)不僅僅是為了存放閃回日志,Oracle的很多備份恢復(fù)技術(shù)都用到這個(gè)區(qū)域,比如控制文件的自動(dòng)備份等都會(huì)存放到此區(qū)域。

   SQL> alter system set db_recovery_file_dest ='/flash_recovery_area';

     2.指定恢復(fù)區(qū)大小

   SQL> alter system set db_recovery_file_dest_size=4G;

    3.指定閃回日志保留時(shí)間為2小時(shí),即通過(guò)閃回操作,可以將數(shù)據(jù)庫(kù)回退到前兩小時(shí)內(nèi)的任意時(shí)間點(diǎn)

   SQL> alter system set db_flashback_retention_target=120;

    4.有序關(guān)閉數(shù)據(jù)庫(kù)--mount模式下啟用閃回?cái)?shù)據(jù)庫(kù)--打開(kāi)數(shù)據(jù)庫(kù)  

 SQL> shutdown immediate;

   SQL> startup mount;

   SQL> alter database flashback on;

   SQL> alter database open;

  至此,閃回?cái)?shù)據(jù)庫(kù)配置完成!

     使用閃回?cái)?shù)據(jù)庫(kù)功能  

 SQL> shutdown immediate;

   SQL> startup mount;

   SQL> flashback database to timestamp sysdate-60/1440;

   SQL> alter database open resetlogs;


 總結(jié)

  本文列舉了四類閃回技術(shù),其中,閃回查詢,包括基本閃回查詢,閃回表等技術(shù)都依賴于撤銷數(shù)據(jù)(還有一類閃回技術(shù)為閃回事務(wù),可以對(duì)指定事務(wù)進(jìn)行閃回操作,原理類似,借助于撤銷數(shù)據(jù)來(lái)構(gòu)建用于反轉(zhuǎn)事務(wù)的SQL語(yǔ)句),依賴于撤銷數(shù)據(jù),則自然受限于撤銷數(shù)據(jù)的保留時(shí)間,可能會(huì)由于撤銷數(shù)據(jù)被覆寫而導(dǎo)致閃回失敗。閃回刪除,則是由于10g版本后對(duì)表的刪除僅表現(xiàn)為一個(gè)rename操作,引入回收站的概念,但此回收站僅是當(dāng)前表空間的一塊邏輯劃分,所以會(huì)受限于當(dāng)前表空間的可用空間的限制;閃回歸檔可提供查詢或回退到過(guò)去任意時(shí)間點(diǎn)的功能,閃回?cái)?shù)據(jù)庫(kù)則是一中更極端的數(shù)據(jù)庫(kù)恢復(fù)功能,相當(dāng)于不完整恢復(fù),依賴于閃回日志。

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • ORACLE學(xué)習(xí)筆記-添加更新數(shù)據(jù)函數(shù)篇

    ORACLE學(xué)習(xí)筆記-添加更新數(shù)據(jù)函數(shù)篇

    Oracle系統(tǒng),即是以O(shè)racle關(guān)系數(shù)據(jù)庫(kù)為數(shù)據(jù)存儲(chǔ)和管理作為構(gòu)架基礎(chǔ),構(gòu)建出的數(shù)據(jù)庫(kù)管理系統(tǒng)。世界第一個(gè)支持SQL語(yǔ)言的商業(yè)數(shù)據(jù)庫(kù),定位于高端工作站,以及作為服務(wù)器的小型計(jì)算機(jī),Oracle公司的整個(gè)產(chǎn)品線包括數(shù)據(jù)庫(kù)服務(wù)器、企業(yè)商務(wù)應(yīng)用套件、應(yīng)用開(kāi)發(fā)和決策支持工具
    2014-08-08
  • oracle11g客戶端連接12c服務(wù)器ORA-01017錯(cuò)誤問(wèn)題解決

    oracle11g客戶端連接12c服務(wù)器ORA-01017錯(cuò)誤問(wèn)題解決

    這篇文章主要介紹了oracle11g客戶端連接12c服務(wù)器ORA-01017錯(cuò)誤,本文給大家分享完美解決方法,對(duì)oracle 12c錯(cuò)誤ORA-01017問(wèn)題解決方法感興趣的朋友跟隨小編一起看看吧
    2023-06-06
  • ORA-06512數(shù)字或值錯(cuò)誤字符串緩沖區(qū)太小異常詳解

    ORA-06512數(shù)字或值錯(cuò)誤字符串緩沖區(qū)太小異常詳解

    最近工作中遇到了Oracle: ORA-06512:字符串緩沖區(qū)太小,報(bào)錯(cuò)的意思很簡(jiǎn)單,字符串緩沖區(qū)小了,這篇文章主要給大家介紹了關(guān)于ORA-06512數(shù)字或值錯(cuò)誤字符串緩沖區(qū)太小異常的相關(guān)資料,需要的朋友可以參考下
    2023-01-01
  • 詳解Oracle塊修改跟蹤功能

    詳解Oracle塊修改跟蹤功能

    塊修改跟蹤功能是指使用二進(jìn)制文件記錄數(shù)據(jù)庫(kù)中數(shù)據(jù)庫(kù)更改的過(guò)程。這篇文章主要介紹了Oracle塊修改跟蹤功能,需要的朋友可以參考下
    2021-11-11
  • 詳解azure 云上準(zhǔn)備oracle11g的vnc安裝環(huán)境

    詳解azure 云上準(zhǔn)備oracle11g的vnc安裝環(huán)境

    本篇文章主要介紹了詳解azure 云上準(zhǔn)備oracle11g的vnc安裝環(huán)境,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • ORACLE數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別介紹

    ORACLE數(shù)據(jù)庫(kù)事務(wù)隔離級(jí)別介紹

    事務(wù)隔離級(jí)別:一個(gè)事務(wù)對(duì)數(shù)據(jù)庫(kù)的修改與并行的另一個(gè)事務(wù)的隔離程度
    2012-07-07
  • [Oracle] Data Guard CPU/PSU補(bǔ)丁安裝詳細(xì)教程

    [Oracle] Data Guard CPU/PSU補(bǔ)丁安裝詳細(xì)教程

    以下是對(duì)Data Guard CPU/PSU補(bǔ)丁安裝的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • [Oracle] Data Guard 之 三種保護(hù)模式介紹

    [Oracle] Data Guard 之 三種保護(hù)模式介紹

    Data Guard提供如下三種數(shù)據(jù)保護(hù)模式,以下是對(duì)這三種保護(hù)模式進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以參考下
    2013-07-07
  • Oracle數(shù)倉(cāng)中判斷時(shí)間連續(xù)性的幾種SQL寫法示例

    Oracle數(shù)倉(cāng)中判斷時(shí)間連續(xù)性的幾種SQL寫法示例

    這篇文章主要給大家介紹了關(guān)于Oracle數(shù)倉(cāng)中判斷時(shí)間連續(xù)性的幾種SQL寫法,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Oracle具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2023-02-02
  • Oracle中常見(jiàn)的33個(gè)等待事件小結(jié)

    Oracle中常見(jiàn)的33個(gè)等待事件小結(jié)

    在Oracle 10g中的等待事件有872個(gè),11g中等待事件1116個(gè)。 我們可以通過(guò)v$event_name 視圖來(lái)查看等待事件的相關(guān)信息
    2013-07-07

最新評(píng)論

灵寿县| 克什克腾旗| 周宁县| 阿尔山市| 晋城| 博湖县| 南丹县| 门头沟区| 横山县| 德兴市| 宁国市| 西贡区| 合江县| 民丰县| 孝昌县| 张掖市| 集安市| 光山县| 万源市| 曲阳县| 启东市| 始兴县| 沙洋县| 阳高县| 临汾市| 武夷山市| 盘锦市| 积石山| 台湾省| 论坛| 南华县| 镇宁| 牟定县| 海南省| 平阳县| 深州市| 营山县| 偏关县| 内黄县| 禄劝| 金湖县|