ORACLE資料庫數據的備份與恢復

来源:https://www.cnblogs.com/sunshine5683/archive/2018/12/02/10052949.html
-Advertisement-
Play Games

數據備份恢覆在資料庫管理中至關重要,今天,總結一下資料庫備份與恢復的方案,需要註意的方面和實際操作!、 ...


 

原創作品,轉自請在文字開頭顯眼位置註明出處:https://www.cnblogs.com/sunshine5683/p/10052949.html

數據備份恢覆在資料庫管理中至關重要,今天,總結一下資料庫備份與恢復需要註意的方面和實際操作!、

一、在備份之前首先應該執行commit語句,將所有未提交的數據進行提交,(提交了的數據也有可能在記憶體),執行alter system checkpoint語句,所有的臟數據(記憶體中所有修改過的數據,這些數據有可能被提交,也有可能未被提交)都會被寫入到了磁碟上,但是如果被寫入磁碟的數據塊處於未提交狀態,那麼另外一個會話登入後是不可見的!

commit:標誌了事務的提交,數據的生效,其他用戶或者會話才是可見的,不管該數據是在磁碟上還是在記憶體中。

commit後首先將redo保存到磁碟,首先保存redo而不保存數據的原因是redo的保存比修改數據的保存快很大,保證了數據提交的速度,而且一旦redo被保存,那麼即使數據沒有被保存,也可以通過redo將該數據恢復,所以,redo的保存保證了數據的安全。

redo保證了數據的安全,此時再執行checkpoint,並不是多此一舉,將記憶體數據寫入磁碟,一是保證記憶體的利用率,不至於記憶體臟數據太大,二是對於數據恢復有很大的作用

 

二、實例恢複發生在oracle啟動的第三個階段

第一階段:startup nomount(讀取spfile),沒有進行實例恢復

第二階段:alter database mount(讀取控制文件),沒有進行實例恢復

第三階段:alter database open(檢查控制文件,數據文件頭,檢查數據完整性),進行實例恢復

下麵將資料庫強制關閉,shutdown abort(強制關閉,這樣關閉快速,但是一些記憶體數據不會被保存到資料庫磁碟,在資料庫下次啟動的時候就會進行實例恢復,在實際環境中不建議這樣關閉),然後分階段啟動資料庫:

資料庫實例恢復的大概原理:Oracle在打開資料庫時(alter database open),會檢查每個文件頭上的信息(SCN),並同控制文件中相應的信息(SCN)比較,如果不一致,則進行實例恢復。

 

實例恢復的過程 :

首先:前滾 rolling forward ,讀取狀態為current和active狀態的日誌(redo log),將發生crash時,沒有來得及寫到磁碟上的數據塊,使用redo的信息來恢復。

其次:打開資料庫(alter database open)

最後:回滾 rolling back: 將沒有提交的事務進行回滾。

 

三:介質恢復

當發生以下情況時,實例恢復無效,需要進行介質恢復:

1、數據文件丟失,損壞

2、線上日誌文件(online redo)丟失,損壞

3、數據文件太舊 (比如從一個備份集中恢復過來的文件)

4、文件太新(比如,其它所有的文件都是從備份中恢復過來的)

如下圖:將數據文件11號文件offline之後,進行11號文件恢復,顯示出錯,這種錯誤就是數據文件太舊無法恢復

 

 四、資料庫的備份方式

1、Rman(物理備份):針對 資料庫,表空間,數據文件,數據塊,這種方案備份的速度很慢。通常在備份數據時候不建議備份線上日誌文件,其他文件都可以備份

2、exp,expdp(邏輯備份):針對 用戶,資料庫對象(表,分區...),這種備份方案對數據的完整性保證不是很好

3、只讀表空間+傳遞表空間,這種備份方案要求將某些表空間置為只讀形式,類似與數據倉庫,不能再改變

4、Data guard,這種備份方案比較常用

 

五、資料庫備份操作

1、Rman備份:首先建議將數據運行在歸檔模式下

其次,以rman模式登錄資料庫,如果全庫備份,直接使用下麵命令備份就好

 

如果備份個別表空間,則首先我們看看有哪些表空間

隨便選擇一個表空間,我們就選擇users表空間進行備份,可以看到速度很快

接下來恢復該表空間,過程都是很快的

2、export

備份:export  用戶名/密碼 file=用戶名.dmp  導出該用戶下的所有表

恢復: import  用戶名/密碼 file=用戶名.dmp full=y(表示全部導入)

            import  用戶名/密碼 file=用戶名.dmp tables=tt(表示導入tt表)

對於此種方式,暫時先不做演示了,其方式也是很簡單的,由於此次總結是針對真正問題的解決需要而測試的,此次並不涉及export備份,所以將在後續總結中繼續完善與演示此部分的操作,用到的時候將會繼續在本篇博客中添加此部分內容。

 

 六、Oracle資料庫的閃回技術--flashback

當我們在進行數據表的修改或者刪除後,並且對數據表進行了提交,那麼一般情況下資料庫的表示很難再回覆的,但是當有了閃回技術之後,同樣的問題便變得可以實現了,不得不說資料庫的閃回技術是非常重要的一種操作,給了很多dba感覺人生是多麼美好的瞬間!下麵就資料庫的閃回技術進行測試實驗

1、查看資料庫的閃回功能是否打開,一般情況下是沒有打開的,因為會消耗多餘的磁碟占用和記憶體資源等,下圖可以看到,本人資料庫的閃回功能並沒有打開

2、打開flashback_on,首先將資料庫關閉,然後打開到mount階段,開啟flashback

3、此時查看該視圖是否打開,可以看到已經打開

4、此時,如果誤將數據表t1刪除,可以在回收站找到並還原(表的閃回)

並使用flashback table t1 to before drop;語句將其還原,但是如果刪除時候使用drop table t1 purge,刪除的同時情況回收站,那麼就不能夠再使用閃回命令將其還原了,就真正刪除了。

同樣還有ddl語句等的閃回操作,都是可以執行的,這裡就不做介紹了,總之,對於從事資料庫工作的同仁們,一定得小心行事,數據一旦丟失,會造成不可預知的後果,所以,在不斷提升自己的同時,操作上的細緻也是至關重要的,希望我們在工作學習的路上越走越遠,越走越好!

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 輸入 yum install mysql-server 按Y繼續 安裝完成,設置開機啟動Mysql,輸入 chkconfig --levels 235 mysqld on 然後啟動tomcat,輸入service mysqld start 啟動完畢,然後登錄MYsql設置密碼 輸入set passw ...
  • 開發板 : JZ2440 Linux內核 : Linux-2.6.22.6 Busybox1.29.3 最小根文件系統所需的部分: 1./dev/console /dev/null :創建根文件系統所必備的,指出了所需要的標準輸入,標準輸出,標準錯誤設備終端。 2.init 程式: 當busybox ...
  • 一. 聚合框架 聚合框架是MongoDB的高級查詢語言,它允許我們通過轉換和合併多個文檔中的數據來生成新的單個文檔中不存在的信息。 聚合管道操作主要包含下麵幾個部分: $lookup 在本篇幅中,我們聚焦$lookup的使用。 二. $lookup的功能及語法 1. 主要功能 是將每個輸入待處理的文 ...
  • 1. 說明 本文基於:spark-2.4.0-hadoop2.7-高可用(HA)安裝部署 2. 啟動Spark Shell 在任意一臺有spark的機器上執行 註意: 如果啟動spark shell時沒有指定master地址,但是也可以正常啟動spark shell和執行spark shell中的程 ...
  • 1. 主機規劃 主機名稱 IP地址 操作系統 部署軟體 運行進程 備註 mini01 172.16.1.11【內網】 10.0.0.11 【外網】 CentOS 7.5 Jdk-8、zookeeper-3.4.5、Hadoop2.7.6、hbase-2.0.2、kafka_2.11-2.0.0、sp ...
  • 準備工作 150G及以上的硬碟空間(因為要搭建3個系統組成的集群),cpu儘量i7-7xxx標壓以上,記憶體16G及以上 自行搜索,下載,安裝VMWare 準備CentOS6.8的鏡像文件 註意:安裝虛擬機前必須開啟BIOS虛擬化支持 安裝CentOS 右鍵剛剛創建好虛擬機,在菜單中選擇"設置"選項 ...
  • 介紹 索引用於加快數據訪問的速度。把電腦的磁碟比作一本字典,索引就是欄位的目錄,當我們想快速查到某個詞語的時候只需要通過查詢目錄找到詞語所在的頁數,然後直接打開某頁就可以。MySQL最常用的索引是B+樹索引,為什麼使用B+作為MySQL的索引,這是許多面試官必問的問題。 為什麼B+樹 硬體相關知識 ...
  • 一.概述 Redis伺服器是一個事件驅動程式,伺服器需要處理兩類事件:1文件事件,2時間事件。文件事件是關於客戶端與伺服器之間的通信操作。時間事件是關於伺服器內部的一些定時操作。本篇還是參照"Redis設計與實現"書,簡要瞭解下Redis事件。 1. 文件事件 文件事件(file event)是服務 ...
一周排行
    -Advertisement-
    Play Games
  • 前言 本文介紹一款使用 C# 與 WPF 開發的音頻播放器,其界面簡潔大方,操作體驗流暢。該播放器支持多種音頻格式(如 MP4、WMA、OGG、FLAC 等),並具備標記、實時歌詞顯示等功能。 另外,還支持換膚及多語言(中英文)切換。核心音頻處理採用 FFmpeg 組件,獲得了廣泛認可,目前 Git ...
  • OAuth2.0授權驗證-gitee授權碼模式 本文主要介紹如何筆者自己是如何使用gitee提供的OAuth2.0協議完成授權驗證並登錄到自己的系統,完整模式如圖 1、創建應用 打開gitee個人中心->第三方應用->創建應用 創建應用後在我的應用界面,查看已創建應用的Client ID和Clien ...
  • 解決了這個問題:《winForm下,fastReport.net 從.net framework 升級到.net5遇到的錯誤“Operation is not supported on this platform.”》 本文內容轉載自:https://www.fcnsoft.com/Home/Sho ...
  • 國內文章 WPF 從裸 Win 32 的 WM_Pointer 消息獲取觸摸點繪製筆跡 https://www.cnblogs.com/lindexi/p/18390983 本文將告訴大家如何在 WPF 裡面,接收裸 Win 32 的 WM_Pointer 消息,從消息裡面獲取觸摸點信息,使用觸摸點 ...
  • 前言 給大家推薦一個專為新零售快消行業打造了一套高效的進銷存管理系統。 系統不僅具備強大的庫存管理功能,還集成了高性能的輕量級 POS 解決方案,確保頁面載入速度極快,提供良好的用戶體驗。 項目介紹 Dorisoy.POS 是一款基於 .NET 7 和 Angular 4 開發的新零售快消進銷存管理 ...
  • ABP CLI常用的代碼分享 一、確保環境配置正確 安裝.NET CLI: ABP CLI是基於.NET Core或.NET 5/6/7等更高版本構建的,因此首先需要在你的開發環境中安裝.NET CLI。這可以通過訪問Microsoft官網下載並安裝相應版本的.NET SDK來實現。 安裝ABP ...
  • 問題 問題是這樣的:第三方的webapi,需要先調用登陸介面獲取Cookie,訪問其它介面時攜帶Cookie信息。 但使用HttpClient類調用登陸介面,返回的Headers中沒有找到Cookie信息。 分析 首先,使用Postman測試該登陸介面,正常返回Cookie信息,說明是HttpCli ...
  • 國內文章 關於.NET在中國為什麼工資低的分析 https://www.cnblogs.com/thinkingmore/p/18406244 .NET在中國開發者的薪資偏低,主要因市場需求、技術棧選擇和企業文化等因素所致。歷史上,.NET曾因微軟的閉源策略發展受限,儘管後來推出了跨平臺的.NET ...
  • 在WPF開發應用中,動畫不僅可以引起用戶的註意與興趣,而且還使軟體更加便於使用。前面幾篇文章講解了畫筆(Brush),形狀(Shape),幾何圖形(Geometry),變換(Transform)等相關內容,今天繼續講解動畫相關內容和知識點,僅供學習分享使用,如有不足之處,還請指正。 ...
  • 什麼是委托? 委托可以說是把一個方法代入另一個方法執行,相當於指向函數的指針;事件就相當於保存委托的數組; 1.實例化委托的方式: 方式1:通過new創建實例: public delegate void ShowDelegate(); 或者 public delegate string ShowDe ...