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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Oracle数据库闪回技术

發布時間:2024/5/24 综合教程 42 生活家
生活随笔 收集整理的這篇文章主要介紹了 Oracle数据库闪回技术 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

閃回技術簡介

閃回技術是Oracle強大數據庫備份恢復機制的一部分,在數據庫發生邏輯錯誤的時候,閃回技術能提供快速且最小損失的恢復(多數閃回功能都能在數據庫聯機狀態下完成)。需要注意的是,閃回技術旨在快速恢復邏輯錯誤,對于物理損壞或是介質丟失的錯誤,閃回技術就回天乏術了,還是得借助于Oracle一些高級的備份恢復工具如RAMN去完成。
在講閃回技術前,需要先了解Oracle中一個邏輯結構–撤銷段。因為大部分閃回技術都需要依賴撤銷段中的撤銷數據。
撤銷數據是反轉DML語句結果所需的信息,只要某個事務修改了數據,那么更新前的原有數據就會被寫入一個撤銷段。
(事務回滾也會用到撤銷段中的數據)。事務啟動時,Oracle 會為其分配一個撤銷段,事務和撤銷段存在多對一的關系,即一個事務只能對應一個撤銷段(可以理解為windows系統中的回收站)。
閃回drop(閃回drop可以輕松將一個已經被Drop的表還原。相應的索引,數據庫約束也會被還原(除了外鍵約束)

閃回技術的應用小實例:

1、連接 sqlplus sys/密碼 as sysdba; 查看是否開啟回收站(如圖,我已經開啟了),如果沒有,先開啟回收站

ALTER SYSTEM SET recyclebin = ON;     --開啟系統回收站
ALTER SESSION SET recyclebin = ON;    --開啟當前連接回收站
ALTER SYSTEM SET recyclebin = OFF;    --關閉系統回收站
ALTER SESSION SET recyclebin = OFF;    --關閉當前連接回收站

2、新建測試表,插入測試數據

3、對user_test表執行drop操作,再查詢時報:ORA-00942: 表或視圖不存在

4、查詢數據字典:select * from dba_recyclebin; 查看我們的user_test是否在回收站中,如圖確實在回收站中找到了我刪除的user_test表,并且是通過drop操作刪除的

5、接下來就是閃回了:FLASHBACK table tableName/object_name to before drop; 將表閃回到drop前的一個工作點,這個閃回不要在sys用戶下使用

執行完閃回之后,你看表數據又恢復了,不過這種flashback 對 TRUNCATE 操作沒用哦,至于TRUNCATE操作如何恢復,需要借助第三方插件或其他容災方式恢復了
注:
a)不通過表名,直接通過對象名也同樣可以完成閃回操作(如果我們同一個表名被刪除后,重新建表了,然后又刪除了,這是我們表名在回收站中可能就有兩個了,這時閃回的時候,可以通過對象名加以區分具體需要閃回的是哪張表了,命令如下)
flashback table "object_name" to before drop;
b)閃回之后重命名,這個比較簡單,命令如下
flashback table tableName to before drop rename to new_tableName;
6)當然還有一種情況,我們表被刪除了,但是我還想查詢里面的數據,又不能把表恢復的情況,可以直接通過回收站的對象名進行閃回查詢(注意對象名需要加 "",不然會報錯的)

Drop命令其實是Rename命令,早期的Oracle版本(10g之前),閃回刪除意味著從數據字典中刪除了該表的所有引用,雖然表中數據可能還存在,但已成了孤魂野鬼,沒法進行恢復了,10g版本之后,Drop命令則僅僅是一個Rename操作,所以恢復就很容易了
10g版本開始,刪除表只是重命名,但是不保證flashback 一定成功。比如刪除的表的表名字被占用,期間先創建一個表和被刪除的重名則是由于10g版本后對表的刪除僅表現為一個rename操作,引入回收站的概念,但此回收站僅是當前表空間的一塊邏輯劃分,所以會受限于當前表空間的可用空間的限制
解決方法:

1、先將表rename
2、執行閃回操作
3、執行insert select 操作,將后續產生的數據更新到業務表中
注:drop table table_name [purge] 如果你再drop操作中加入了purge參數,那么我們這次介紹的閃回操作就不適用了

總結

以上是生活随笔為你收集整理的Oracle数据库闪回技术的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。