Oracle數據庫備份與恢復(理解與實踐)--rman的使用

備份

參考《Oracle備份和恢復(RMAN篇)》

在這裏插入圖片描述

恢復

在這裏插入圖片描述

rman

介紹

參考《oracle RMAN 簡要介紹及使用》
1) 是對數據庫進行備份和恢復操作並自動管理相關備份策略的客戶端工具

2)其環境至少包含:

  • 目標數據庫(target database):需要進行備份和恢復的數據庫;通過target命令指定。
  • RMAN客戶端:存放於$ORACLE_HOME/bin下的可執行程序

還可能包括:

  • 快速恢復區(fast recovery area):存放和管理備份恢復文件 的地方;通過 DB_RECOVERY_FILE_DEST和DB_DECOVERT_FILE_DEST_SIZE設置
  • 介質管理器:RMAN與介質設備打交道所需要的應用程序
  • 恢復目錄(recovery catalog):單獨的數據庫方案,用於存儲其管理的多個目標數據庫

命令

1)show all 可查看當前配置
2)通過backup命令備份數據庫;默認情況下將備份文件放到快速恢復區中,若要備份到其他路徑,需要設置FORMAT參數。

#1)FORMAT:指定備份片段的存放路徑和命名規則。
BACKUP  FORMAT '/u01/app/oracle/oradata/enmo1/AL_%d/%t/%s/%p'   ARCHIVELOG LIKE '%arc_dest%';
其中:%U獲得系統分配的一個唯一名;%d爲DB_NAME;%t備份設置的時間戳;%s爲備份設置的編號;%p爲備份片段編號。
#2)TAG:給備份片段指定一個標籤,若不指定,則系統自動生成一個隨機唯一標籤。標籤在備份原數據中總是以大寫方式存儲。
BACKUP  TAG 'weekly_full_db_bkup'   DATABASE MAXSETSIZE 10M;

增量備份例子:

backup incremental level 0 database;----0級增量備份,作爲增量備份策略的基礎
backup incremental level 1 cumulative database;----1級累積增量備份
backup incremental level 1 database;----1級差異增量備份

3)使用list列出RMAN備份信息

list backup of database by backup;
list backup by file;
list backup summary;
list expired backupset/copy;
list backup recoverable;

4)使用REPORT列出RMAN備份信息

REPORT NEED BACKUP DATABASE;--列出當前需要備份的數據文件
REPORT OBSOLETE;
REPORT SCHEMA;
REPORT UNRECOVERABLE;

rman操作

準備工作

1、因爲rman工作在歸檔日誌模式下,開啓該模式

C:\Users\Administrator>sqlplus sys/password as sysdba

SQL> shutdown immediate
數據庫已經關閉。
已經卸載數據庫。
ORACLE 例程已經關閉。

SQL> startup mount
ORACLE 例程已經啓動。
···
數據庫裝載完畢。
SQL> alter database archivelog;
數據庫已更改。

SQL> alter database open;
數據庫已更改。

2、在D盤建立 rman文件夾,將文件夾的只讀屬性勾選去掉
3、新建表空間和用戶

SQL> create tablespace rman_ts datafile 'd:/rman/rman.ora' size 20M autoextend on next 5M maxsize unlimited;
表空間已創建。

SQL> create user wj identified by password default tablespace rman_ts temporary tablespace temp;
用戶已創建。

SQL> grant connect,resource to wj;
授權成功。

SQL> grant recovery_catalog_owner to wj;
授權成功。

備份

1、創建rman恢復目錄

C:\Users\Administrator>rman catalog wj/password
恢復管理器: Release 11.2.0.1.0 - Production on 星期一 427 09:50:48 2020
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
連接到恢復目錄數據庫

RMAN> create  catalog  tablespace rman_ts;
恢復目錄已創建

2、註冊目標數據庫到恢復目錄

C:\Users\Administrator>rman catalog wj/password target /
恢復管理器: Release 11.2.0.1.0 - Production on 星期一 427 10:04:28 2020
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
連接到目標數據庫: ORACLE (DBID=1907090180)
連接到恢復目錄數據庫

RMAN> register database;
註冊在恢復目錄中的數據庫
正在啓動全部恢復目錄的 resync
完成全部 resync

備份通道可選擇手動或自動,均可
3.1、自動備份分配通道

RMAN> configure device type disk parallelism 5;
新的 RMAN 配置參數:
CONFIGURE DEVICE TYPE DISK PARALLELISM 5 BACKUP TYPE TO BACKUPSET;
已成功存儲新的 RMAN 配置參數
正在啓動全部恢復目錄的 resync
完成全部 resync

RMAN> configure default device type to disk;
新的 RMAN 配置參數:
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
已成功存儲新的 RMAN 配置參數
正在啓動全部恢復目錄的 resync
完成全部 resync

3.2、手動備份分配通道

RMAN> run
2> {
3> allocate channel ch1 device type disk;
4> allocate channel ch2 device type disk;
5> allocate channel ch3 device type disk;
6> }

分配的通道: ch1
通道 ch1: SID=72 設備類型=DISK

分配的通道: ch2
通道 ch2: SID=135 設備類型=DISK

分配的通道: ch3
通道 ch3: SID=196 設備類型=DISK
釋放的通道: ch1
釋放的通道: ch2
釋放的通道: ch3

4、開始備份
備份整個數據庫和歸檔日誌,不指定備份路徑會被分到默認路徑。

5.在歸檔模式備份數據庫 1)若數據庫開啓歸檔,則數據庫支持open狀態進行RMAN備份,但此時的備份爲非一致性備份,即在恢復時,需要使用到歸檔redo日誌,才能使數據庫恢復到一致性狀態。
2)backup database plus archivelog;
6.在非歸檔模式下進行RMAN備份 1)在非歸檔模式下的數據庫,只能進行一致性備份,備份前需要將數據庫一致性關閉後,打開到mount狀態,再進行備份。
2)shutdown immediate;

RMAN> backup database plus archivelog;

備份過程截圖:
在這裏插入圖片描述
備份完成後在Oracle文件夾下的備份文件:
在這裏插入圖片描述


模擬故障user01.dbf丟失(自己刪了試試)
在這裏插入圖片描述
測試數據庫是否關閉

RMAN> shutdown immediate

數據庫已關閉
數據庫已卸裝
Oracle 實例已關閉

???
爲什麼可以關閉
???

再試試退出登陸

C:\Users\Administrator>sqlplus sys/password as sysdba

SQL> alter database open;
alter database open
*1 行出現錯誤:
ORA-01157: 無法標識/鎖定數據文件 4 - 請參閱 DBWR 跟蹤文件
ORA-01110: 數據文件 4: 'D:\APP\ADMINISTRATOR\ORADATA\ORACLE\USERS01.DBF'

恢復

在mount下恢復 USERS01.DBF

1、restore database
還原到備份的時間點;
還原是指從所有的備份或鏡像文件中找到一個用於恢復操作的數據文件。

C:\Users\Administrator>rman target sys/password
恢復管理器: Release 11.2.0.1.0 - Production on 星期一 427 10:59:59 2020
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
已連接到目標數據庫: ORACLE (DBID=1907090180, 未打開)

RMAN> restore database;

運行結果:
在這裏插入圖片描述
2、recover database
通過redo log & archive log恢復 ;
恢復是指在還原的數據文件上應用redo日誌或增量備份中記錄的變化,使得數據文件向前滾到一個SCN值或者一個時間點。

RMAN> recover database;

啓動 recover 於 27-4-20
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
使用通道 ORA_DISK_4
使用通道 ORA_DISK_5
未處理數據文件 5, 因爲文件是隻讀的

正在開始介質的恢復
介質恢復完成, 用時: 00:00:04

完成 recover 於 27-4-20

需要處理數據文件5

RMAN> recover datafile 5;

啓動 recover 於 27-4-20
使用通道 ORA_DISK_1
使用通道 ORA_DISK_2
使用通道 ORA_DISK_3
使用通道 ORA_DISK_4
使用通道 ORA_DISK_5

正在開始介質的恢復
介質恢復完成, 用時: 00:00:00

完成 recover 於 27-4-20

查看文件下該文件已經恢復:
在這裏插入圖片描述
測試打開 數據庫未報錯:

此處需要注意的一點是,如果你的數據庫並非處於歸檔模式,那麼必須使用ALTER DATABASE OPEN RESETLOGS來打開數據庫,
因爲RMAN會認爲在非歸檔模式下是一個不一致的備份,執行resetlogs之後,oracle將會把scn重新置爲0。

在這裏插入圖片描述
數據庫也可正常訪問查詢數據:
在這裏插入圖片描述

使用閃回數據庫技術

1)想使用閃回數據庫技術,需要先開啓閃回日誌功能。(閃回日誌只能存放在快速恢復區中,並且不會進行歸檔)
2)閃回數據庫不能用於介質恢復和修復數據文件的丟失。
3)閃回數據庫需要在mount狀態下進行。
4)命令:
shutdown immediate ;----調整至mount狀態
startup mount;
flashback database to scn 1526845;----閃回到過去的某時刻
flashback database to restore point before_points;
flashback database to timestamp to_date(‘20140510’,‘yyyymmdd’);
alter database read only;----將數據庫置爲只讀狀態,進行驗證
shutdown immediate;----若閃回後滿足要求,啓動數據庫
startup mount;
alter database open resetlogs;

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章