日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪(fǎng)問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

【转载】oracle闪回技术详解之闪回drop(神奇的flashback)

發(fā)布時(shí)間:2024/1/17 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【转载】oracle闪回技术详解之闪回drop(神奇的flashback) 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

寫(xiě)在前面:刪庫(kù)跑路,相信這是絕大多數(shù)程序員會(huì)經(jīng)常聽(tīng)到的一個(gè)詞。俗話(huà)說(shuō):常在河邊走,哪有不濕鞋,作為經(jīng)常和數(shù)據(jù)打交道的程序員也好,運(yùn)維實(shí)施也好,有時(shí)難免會(huì)出現(xiàn)數(shù)據(jù)誤刪除,誤操作等情況。如果你是一個(gè)oracle用戶(hù),那么你如果知道這些關(guān)于數(shù)據(jù)閃回恢復(fù)的基本知識(shí),或許可以幫你在出現(xiàn)類(lèi)似情況的時(shí)候解決很多問(wèn)題。

本文主要介紹一下數(shù)據(jù)庫(kù)的誤drop操作的一些閃回技術(shù),至于整庫(kù)的刪除恢復(fù),想在另一篇文章里詳細(xì)介紹。

再來(lái)說(shuō)一個(gè)案例吧:今年34月的時(shí)候吧,一次現(xiàn)場(chǎng)運(yùn)維在操作測(cè)試庫(kù)的時(shí)候,誤連了生產(chǎn)數(shù)據(jù)庫(kù),執(zhí)行了一個(gè)drop操作,將生產(chǎn)的流程核心業(yè)務(wù)表刪除,刪除之后發(fā)現(xiàn)連錯(cuò)庫(kù)了,當(dāng)時(shí),情急之下,他將測(cè)試庫(kù)建表腳本導(dǎo)出,在生產(chǎn)環(huán)境執(zhí)行建表腳本,然后才聯(lián)系我找解決措施(當(dāng)然,后續(xù)通過(guò)我們的閃回技術(shù),將之前刪除的業(yè)務(wù)表數(shù)據(jù)以及后續(xù)表重建后的數(shù)據(jù)全部找回)。下面就來(lái)詳細(xì)介紹下我們的閃回技術(shù)

1,概念
閃回技術(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去完成
在講閃回技術(shù)前,需要先了解Oracle中一個(gè)邏輯結(jié)構(gòu)–撤銷(xiāo)段。因?yàn)榇蟛糠珠W回技術(shù)都需要依賴(lài)撤銷(xiāo)段中的撤銷(xiāo)數(shù)據(jù)。
撤銷(xiāo)數(shù)據(jù)是反轉(zhuǎn)DML語(yǔ)句結(jié)果所需的信息,只要某個(gè)事務(wù)修改了數(shù)據(jù),那么更新前的原有數(shù)據(jù)就會(huì)被寫(xiě)入一個(gè)撤銷(xiāo)段。
(事務(wù)回滾也會(huì)用到撤銷(xiāo)段中的數(shù)據(jù))。事務(wù)啟動(dòng)時(shí),Oracle 會(huì)為其分配一個(gè)撤銷(xiāo)段,事務(wù)和撤銷(xiāo)段存在多對(duì)一的關(guān)系,即一個(gè)事務(wù)只能對(duì)應(yīng)一個(gè)撤銷(xiāo)段(你可以理解為windows系統(tǒng)中的回收站)。

2,閃回drop(閃回drop可以輕松將一個(gè)已經(jīng)被Drop的表還原。相應(yīng)的索引,數(shù)據(jù)庫(kù)約束也會(huì)被還原(除了外鍵約束))
先直接來(lái)個(gè)例子,讓大伙感受下什么是閃回drop
1)連接sqlplus / as sysdba,查看是否開(kāi)啟回收站,如果未開(kāi)啟(如下圖我已經(jīng)開(kāi)啟了回收站):

ALTER SYSTEM SET recyclebin = ON; 開(kāi)啟系統(tǒng)回收站
ALTER SESSION SET recyclebin = ON; 開(kāi)啟當(dāng)前連接回收站
ALTER SYSTEM SET recyclebin = OFF; 關(guān)閉系統(tǒng)回收站
ALTER SESSION SET recyclebin = OFF; 關(guān)閉當(dāng)前連接回收站
1
2
3
4

2)新建測(cè)試表,差插入四條數(shù)據(jù),效果如下
3),對(duì)user_test執(zhí)行drop操作,再查詢(xún)時(shí)報(bào):表或視圖不存在
4),查詢(xún)數(shù)據(jù)字典:select * from dba_recyclebin; 查看我們的user_test是否在回收站中,如圖確實(shí)在回收站中找到了我刪除的user_test表,并且是通過(guò)drop操作刪除的

5)接下來(lái)就是我們的明星命令了:FLASHBACK table tableName to before drop; 將表閃回到drop前的一個(gè)工作點(diǎn)

執(zhí)行完閃回之后,你看表數(shù)據(jù)又恢復(fù)了,不過(guò)這種flashback 對(duì) TRUNCATE 操作沒(méi)用哦,至于TRUNCATE操作如何恢復(fù),需要借助第三方插件或其他容災(zāi)方式恢復(fù)了,后面我會(huì)介紹通過(guò)第三方插件恢復(fù)TRUNCATE操作
注:
a)不通過(guò)表名,直接通過(guò)對(duì)象名也同樣可以完成閃回操作(如果我們同一個(gè)表名被刪除后,重新建表了,然后又刪除了,這是我們表名在回收站中可能就有兩個(gè)了,這時(shí)閃回的時(shí)候,可以通過(guò)對(duì)象名加以區(qū)分具體需要閃回的是哪張表了,命令如下)
flashback table “BIN$mKoYM02RCojgQAB/AQAvyw==$0” to before drop;
b)閃回之后重命名,這個(gè)比較簡(jiǎn)單,命令如下
flashback table tableName to before drop rename to new_tableName;
6)當(dāng)然還有一種情況,我們表被刪除了,但是我還想查詢(xún)里面的數(shù)據(jù),又不能把表恢復(fù)的情況,可以直接通過(guò)回收站的對(duì)象名進(jìn)行閃回查詢(xún)(注意對(duì)象名需要加 “”,不然會(huì)報(bào)錯(cuò)的)
Drop命令其實(shí)是Rename命令,早期的Oracle版本(10g之前),閃回刪除意味著從數(shù)據(jù)字典中刪除了該表的所有引用,雖然表中數(shù)據(jù)可能還存在,但已成了孤魂野鬼,沒(méi)法進(jìn)行恢復(fù)了,10g版本之后,Drop命令則僅僅是一個(gè)Rename操作,所以恢復(fù)就很容易了
10g版本開(kāi)始,刪除表只是重命名,但是不保證flashback 一定成功。比如刪除的表的表名字被占用,期間先創(chuàng)建一個(gè)表和被刪除的重名則是由于10g版本后對(duì)表的刪除僅表現(xiàn)為一個(gè)rename操作,引入回收站的概念,但此回收站僅是當(dāng)前表空間的一塊邏輯劃分,所以會(huì)受限于當(dāng)前表空間的可用空間的限制
上述案例中:
由于同事在drop后執(zhí)行了建表操作,導(dǎo)致無(wú)法直接閃回成原來(lái)的表名:
解決方法:1,先將表rename
2,執(zhí)行閃回操作
3,執(zhí)行insert select 操作,將后續(xù)產(chǎn)生的數(shù)據(jù)更新到業(yè)務(wù)表中
注意:drop table table_name [purge] 如果你再drop操作中加入了purge參數(shù),那么我們這次介紹的閃回操作就不適用了(當(dāng)然也是可以找回的,具體操作后面有機(jī)會(huì)再做介紹)

3,回收站管理
對(duì)于回收站管理,我這邊主要介紹三個(gè)命令,謹(jǐn)慎使用哦
> show recycle; 查看回收站.
> purge recyclebin; 清空回收站.
> purge table t2 ; 清空回收站中t2的表.

關(guān)于oracle的閃回drop就先介紹到這里了,希望對(duì)大家有所幫助!
---------------------
作者:baomw
來(lái)源:CSDN
原文:https://blog.csdn.net/baomw/article/details/84196500
版權(quán)聲明:本文為博主原創(chuàng)文章,轉(zhuǎn)載請(qǐng)附上博文鏈接!

轉(zhuǎn)載于:https://www.cnblogs.com/houyicaiji/p/10008324.html

總結(jié)

以上是生活随笔為你收集整理的【转载】oracle闪回技术详解之闪回drop(神奇的flashback)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。