RMAN優缺點及RMAN備份及恢復步驟

来源:https://www.cnblogs.com/ritchy/archive/2019/03/02/10460498.html
-Advertisement-
Play Games

RMAN優缺點及RMAN備份及恢復步驟--以下部分來自網路轉摘,僅供參考和OS命令備份方式相比,使用RMAN的優點1 備份執行期間不需要人工干預,因此減少了誤操作的機會;2 可以有效的將備份和恢復結合起來;3 支持除邏輯備份以外的所有備份類型,包括完全備份,增量備份,表空間備份,數據文件備份,控制文 ...


RMAN優缺點及RMAN備份及恢復步驟
--以下部分來自網路轉摘,僅供參考
和OS命令備份方式相比,使用RMAN的優點
1 備份執行期間不需要人工干預,因此減少了誤操作的機會;
2 可以有效的將備份和恢復結合起來;
3 支持除邏輯備份以外的所有備份類型,包括完全備份,增量備份,表空間備份,數據文件備份,控制文件備份以及歸檔日誌文件備份;
4 可以識別corrupted block;
5 方便的實現定期(定時)備份;
6 自動生成備份日誌;
7 Rman的備份教本和OS無關,方便移植;
8 強大的報表功能可以方便的獲悉備份的可用性
9 控制文件自動備份
10 skip inaccessible語句存在RMAN命令中,是指RMAN按順序備份數據文件和歸檔日誌時,如果缺少中間的一個或發生了IO問題,可以跳過去繼續備份的,弊大與利的,如果你的備份會報錯,不能保證你的備份集是可恢復的。
11 system表空間會連帶controlfile的備份

其中
a、控制文件自動備份是每次如下情況rman會自動備份controlfile
1、每次rman發出backup或是copy命令
2、run batch中包含backup或是copy命令
3、源數據加structure發改變,比如加數據文件、加表空間等
controlfile的autobackup是絕對要打開的,相當有用的9i的一個new feature你只需要安心的備份就要可以了,controlfile rman自動就給你備了。

b、system表空間會連帶controlfile的備份:
1、如果controlfile損壞了呢,autobackup就為你恢復這種情況下rman的catalog提供了一個很好的“稻草”。
2、autobackup自動備的不光是controlfile,還會備份當前的spfile。
3、對於備份來說是不怕冗餘的,而且特別是controlfile占不了多少K的情況下。

和OS命令備份方式相比,使用RMAN的缺點
1 備份過程不透明;
2 Rman備份的數據只有使用Rman才能恢復;
3 如果管理網路上的多個資料庫,通常會使用一個單獨的資料庫來作為Rman恢複目錄,如果這個資料庫出現故障,那麼所作的所有資料庫備份也都不能使用,除非恢復這個資料庫。那麼為了保證這個用於存放Rman恢複目錄的資料庫出現故障,通常還要對這個資料庫使用OS命令備份。
4 如果有一個資料庫需要備份,那麼備份信息會紀錄在控制文件中,所以控制文件不許多處備份,不能丟失。
5 Rman備份不能備份REDO LOG FILES,參數文件(init.ora),口令文件,操作系統文件,以及OFFLINE的文件。

註意:RMAN不能用於備份初始化參數文件和口令文件。學習有點費時。

二. Oracle9i RMAN 備份及恢復步驟
在這裡沒有討論多麼深入的RMAN技術,也沒有告訴大家這樣去編寫備份腳本,這並不是我的初衷,我只想把我會的寫出來,和大家一起學習,一起進步,謝謝。

1、切換伺服器歸檔模式,如果已經是歸檔模式可跳過此步:
%sqlplus /nolog (啟動sqlplus)
SQL> conn / as sysdba (以DBA身份連接資料庫)
SQL> shutdown immediate; (立即關閉資料庫)
SQL> startup mount (啟動實例並載入資料庫,但不打開)
SQL> alter database archivelog; (更改資料庫為歸檔模式)
SQL> alter database open; (打開資料庫)
SQL> alter system archive log start; (啟用自動歸檔)
SQL> exit (退出)

2、連接:
%rman target=rman/rman@mydb (啟動恢復管理器)

3、基本設置:
RMAN> configure default device type to disk; (設置預設的備份設備為磁碟)
RMAN> configure device type disk parallelism 2; (設置備份的並行級別,通道數)
RMAN> configure channel 1 device type disk fromat '/backup1/backup_%U'; (設置備份的文件格式,只適用於磁碟設備)
RMAN> configure channel 2 device type disk fromat '/backup2/backup_%U'; (設置備份的文件格式,只適用於磁碟設備)
RMAN> configure controlfile autobackup on; (打開控制文件與伺服器參數文件的自動備份)
RMAN> configure controlfile autobackup format for device type disk to '/backup1/ctl_%F'; (設置控制文件與伺服器參數文件自動備份的文件格式)

4、查看所有設置:
RMAN> show all

5、查看資料庫方案報表:
RMAN> report schema;

6、備份全庫:
RMAN> backup database plus archivelog delete input; (備份全庫及控制文件、伺服器參數文件與所有歸檔的重做日誌,並刪除舊的歸檔日誌)

7、備份表空間:
RMAN> backup tablespace system plus archivelog delete input; (備份指定表空間及歸檔的重做日誌,並刪除舊的歸檔日誌)

8、備份歸檔日誌:
RMAN> backup archivelog all delete input;

9、複製數據文件:
RMAN> copy datafile 1 to '/oracle/dbs/system.copy';

10、查看備份和文件複本:
RMAN> list backup;

11、驗證備份:
RMAN> validate backupset 3;

12、從自動備份中恢復伺服器參數文件:
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> startup nomount; (啟動實例)
RMAN> restore spfile to pfile '/backup1/mydb.ora' from autobackup; (從自動備份中恢復伺服器參數文件)

13、從自動備份中恢復控制文件:
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> startup nomount; (啟動實例)
RMAN> restore controlfile to '/backup1' from autobackup; (從自動備份中恢復控制文件)

13、恢復和複原全資料庫:
RMAN> shutdown immediate; (立即關閉資料庫)
RMAN> exit (退出)
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak (將數據文件重命名)
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak (將數據文件重命名)
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora (指定初始化參數文件啟動資料庫)
RMAN> restore database; (還原資料庫)
RMAN> recover database; (恢複數據庫)
RMAN> alter database open; (打開資料庫)

14、恢復和複原表空間:
RMAN> sql 'alter tablespace users offline immediate'; (將表空間離線)
RMAN> exit (退出恢復管理器)
%mv /oracle/dbs/users01.dbf /oracle/dbs/users01.bak (將表空間重命名)
%rman target=rman/rman@mydb (啟動恢復管理器)
RMAN> restore tablespace users; (還原表空間)
RMAN> recover tablespace users; (恢復表空間)
RMAN> sql 'alter tablespace users online'; (將表空間聯機)

15、增量備份與恢復:
第一天的增量基本備份:
RMAN> backup incremental level=0 database plus archivelog delete input;
第二天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第三天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第四天的增量差異備份:
RMAN> backup incremental level=1 database plus archivelog delete input;
第五天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第六天的增量差異備份:
RMAN> backup incremental level=2 database plus archivelog delete input;
第七天的增量差異備份:
RMAN> backup incremental level=0 database plus archivelog delete input;

16、增量恢復:
RMAN> shutdown immediate;
RMAN> exit
%mv /oracle/dbs/tbs_12.f /oracle/dbs/tbs_12.bak
%mv /oracle/dbs/tbs_13.f /oracle/dbs/tbs_13.bak
%mv /oracle/dbs/tbs_14.f /oracle/dbs/tbs_14.bak
%mv /oracle/dbs/tbs_15.f /oracle/dbs/tbs_15.bak
%rman target=rman/rman@mydb
RMAN> startup pfile=/oracle/admin/mydb/pfile/initmydb.ora
RMAN> restore database;
RMAN> recover database;
RMAN> alter database open;

驗證rman備份是否有效
http://www.eygle.com/archives/2010/01/rman_validate_backup.html
驗證控制文件和參數文件:
RMAN> restore validate controlfile;
RMAN> restore validate spfile;
驗證全備份一般會很慢,謹慎試驗:
RMAN> restore validate database;

自己編寫腳本,定時執行驗證
rman target / nocatalog log=/rman/validate/rman_db_validate.log<
restore validate database;
exit
EOF

(Rman全庫0級壓縮備份腳本 記錄一下自己備用)
rman target / nocatalog log=/rman/log/rman_db_level0.log <
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
allocate channel d3 type disk;
backup as compressed backupset incremental level 0 database filesperset 4 format
'/rman/data/level0_%d_%s_%p_%u_%T.bak' include current controlfile;
sql 'alter system archive log current';
backup archivelog all filesperset 10 format '/rman/arch/arc_%d_%s_%p_%u_%T.bak'
delete all input;
release channel d1;
release channel d2;
release channel d3;
crosscheck backup;
delete noprompt expired backup;
delete noprompt obsolete;
}
exit
EOF


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

-Advertisement-
Play Games
更多相關文章
  • linux入門基礎 1、終端基本介紹 用戶與主機交互必然要用到的設備 2、終端分類 直接接入本機的顯示器和鍵盤設備,console 虛擬終端是附加物理終端之上的以軟體的煩那個是虛擬實現的終端,CentOS6.x中預設虛擬出來了6個。當你通過賬號登入linux時,可以通過ctrl+alt+F1~F6打 ...
  • "內部組件" 這些程式庫文件通常不會被程式直接使用,不過它們卻是用來實現其他程式庫功能的重要程式庫。 Hal.dll Windows系統的 "硬體抽象層" 就是由Hal.dll實現 "[1]" 。HAL提供很多函數,而這些函數在不同的硬體平臺(以下皆指 "晶元組" )皆有不一樣的實現方式。因為Win ...
  • 最近對家裡面那5,6個路由器下手了。路由列表:小米mini 2台。 優酷路由寶l1,tp wdr3320,tp wr840n, 友華wr1200js,小米路由r1n步驟:1. 想辦法開啟ssh2. 複製breed 進去路由器3. 刷breed。這是一個引導系統。4. 用breed 刷rom。相關工具... ...
  • 問題:ubuntu16 執行pip3 install --upgrade pip之後,pip3執行出錯。 Traceback (most recent call last): File "/usr/bin/pip3", line 9, in <module> from pip import main ...
  • 1、使用limit 當不需要取出全部數據時,在查詢後面加上limit限制。 2、select * 每次看到select * 的時候都需要用懷疑的眼光審視,是不是真的需要返回全部的列。 3、重覆查詢相同的數據 有時可能會重覆執行相同的查詢,比如在用戶評論的地方需要查詢用戶頭像url,如果用戶多次評論, ...
  • docker啟動mysql docker run -p 3306:3306 -v /dockermysqlcfg/config/my.cnf:/etc/mysql/my.cnf -v /dockermysqlcfg/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD ...
  • 在Eclipse中使用springboot整合Mybatis,連接到5.7版本Mysql報錯WARN: Establishing SSL connection without server's identity verification is not recommended. According t ...
  • https://blog.csdn.net/demonson/article/details/79474133 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...