Oracle數據庫的備份與恢復還原筆記


先介紹一下rman
RMAN(Recovery Manager)是一種用於備份(backup)、還原(restore)和恢復(recover)數據庫的 Oracle 工具。RMAN只能用於ORACLE8或更高的版本中。它能夠備份整個數據庫或數據庫部件,如表空間、數據文件、控制文件、歸檔文件以及Spfile參數文件。RMAN也允許您進行增量數據塊級別的備份,增量RMAN備份是時間和空間有效的,因為他們只備份自上次備份以來有變化的那些數據塊。而且,通過RMAN提供的接口,第三方的備份與恢復軟件如veritas將提供更強大的備份與恢復的管理功能。通過RMAN,也提供了其它更多功能,如數據庫的克隆、采用RMAN建立備用數據庫、利用RMAN備份與移動裸設備(RAW)上的文件等工作將變得更方便簡單。9i的RMAN通過增強的自動配置與管理功能,以及特有的塊級別的恢復,將使備份與恢復工作變得更加快捷與完美。

這是來自百度百科給我的介紹

接下來我們直接開始干!!!!

第一步:首先介紹一下先進入Rman

1.本地連接方式

rman target /

2.遠程連接方式

rman target sys/oracle@orcl

第二步:關於rman的一些指令

這句sql的意思就是對單實例數據庫或RAC中的當前實例執行日志切換。

SQL ‘ALTER SYSTEM SWITCH LOGFILE’;

建議參考更多資料了解:下面是一個有關鏈接

http://www.itpub.net/thread-287031-1-1.html

顯示rman的默認配置

SHOW ALL;

#default 表示該條配置仍然是初始的默認配置。

如果我們想把某條更改過的配置再置為初始應該怎么辦呢

我們可以使用這個命令

configure ... clear;

CONFIGURE RETENTION POLICY CLEAR;

第三步:看一下備份的配置

1、CONFIGURE RETENTION POLICY 配置備份保留策略

兩種保留策略:

基於時間:

CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n DAYS;

基於冗余數量:

CONFIGURE RETENTION POLICY TO REDUNDANCY n;

也可以取消備份保留策略:

CONFIGURE RETENTION POLICY TO NONE;

2、CONFIGURE BACKUP OPTIMIZATION 配置備份優化

如果優化設置打開,將對備份的數據文件、歸檔日志或備份集運行一個優化算法。

備份優化,包括OFF 和ON 兩個狀態

打開備份優化:

CONFIGURE BACKUP OPTIMIZATION ON;

關閉備份優化:

CONFIGURE BACKUP OPTIMIZATION OFF;

3、CONFIGURE DEFAULT DEVICE TYPE 配置IO 設備類型

RMAN 支持的 IO 設備類型有兩種:磁盤(DISK)和磁帶(SBT),默認情況下為磁盤。
使用磁盤設備:

CONFIGURE DEFAULT DEVICE TYPE TO DISK;

使用磁帶設置:

CONFIGURE DEFAULT DEVICE TYPE TO SBT;

在這里需要注意的一點是:如果IO 設備發生變化,相關配置項也需要修改。例如:

RMAN> CONFIGURE DEVICE TYPE DISK PARALLELISM 2; 

4、CONFIGURE CONTROLFILE AUTOBACKUP 配置控制文件自動備份

是否自動備份,包含兩個狀態:OFF 和ON
打開自動備份

CONFIGURE CONTROLFILE AUTOBACKUP ON;

禁止自動備份

CONFIGURE CONTROLFILE AUTOBACKUP OFF;

同時可以通過如下配置指定備份的控制格式,路徑。例如:

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO 'E:/backup/%F';

在備份期間,將產生一個控制文件的快照,用於控制文件的讀一致性,這個快照可
以通過如下配置:

`CONFIGURE SNAPSHOT CONTROLFILE NAME TO

'E:/BACKUP/ZTEST.ORA';`

5、CONFIGURE DEVICE TYPE 設置並行備份
RMAN 支持並行備份與恢復,也可以在配置中指定默認的並行程度。例如:

CONFIGURE DEVICE TYPE DISK PARALLELISM 2;

指定在以后的備份與恢復中,將采用並行度為2,同時開啟2個通道進行備份與恢復,當然也可以在run 中指定通道來決定備份與恢復的並行程度。
默認情況下,自動分配通道的並行度為1,如果你通過設置PARALLELISM 設置了

並行通道為2,那么在run 塊中,如果你沒有單獨通過ALLOCATE CHANNEL 命令指定通道,它會默認使用2 條並行通道,如果你在run 命令塊中指定了數個ALLOCATE CHANNEL,那么rman 在執行備份命令時會以你設置的channel 為准,而不管configure中配置了多少個並行通道。

需要注意的一點是,在backup 命令中有一個 FILESPERSET 參數該參數是指
rman建立的每個備份集中所能包含的備份片段(即磁盤文件)的最大數,該參數默認值為64,如果在執行backup 命令時沒有指定該參數值,那么rman 會僅使用第一個通道來執行備份,其它通道將處於空閑狀態。filesperset 值不要小於你設定的通道數。

6、CONFIGURE DATAFILE BACKUP COPIES 設置備份文件冗余度

7、CONFIGURE MAXSETSIZE 配置備份集的最大尺寸
該配置限制通道上備份集的最大尺寸。單位支持bytes,K,M,G。默認值是unlimited。

RMAN> show channel; // 通道分配 RMAN> show device type; // IO 設備類型 RMAN> show retention policy; // 保存策略 RMAN> show datafile backup copies; // 多個備份的拷貝數目 RMAN> show maxsetsize; // 備份集大小的最大值 RMAN> show exclude; // 不必備份的表空間 RMAN> show backup optimization; // 備份的優化 

第四步:備份信息的查看

1.列出備份信息

列出數據庫中所有文件的備份信息:

RMAN>LIST BACKUP OF DATABASE;

列出指定表空間的備份信息:

RMAN>LIST COPY OF TABLESPACE 'SYSTEM';

二.刪除備份信息

1.刪除陳舊備份

當使用 RMAN 執行備份操作時,RMAN 會根據備份冗余策略確定陳舊備份。

RMAN> delete obsolete;

2.刪除 EXPIRED 備份

執行 crosscheck 命令核對備份集,如果備份集丟失或者損壞,那么會將該備份集標記

為 EXPIRED 狀態。為了刪除相應的備份記錄,可以執行 delete expired backup 命令。

RMAN> delete expired backup;

3.刪除 EXPIRED 副本

RMAN> delete expired copy;

4.刪除特定備份集

RMAN> delete backupset 19;

5.刪除特定備份片

RMAN> delete backuppiece 'd:\backup\DEMO_19.bak';

6.刪除所有備份集

RMAN> delete backup;

7.刪除特定映像副本

RMAN> delete datafilecopy 'd:\backup\DEMO_19.bak';

8.刪除所有映像副本

RMAN> delete copy;

9.在備份后刪除輸入對象

RMAN> delete archivelog all delete input;

RMAN> delete backupset 22 format = ''E:\backup\%u.bak'' delete input; 

rman簡單的一些操作就到這里吧

下面我們進行一個實驗操作系統:WINDOWS 2007

ORACLE版本:10G

ORACLE_SID:ZXTEST

首先我進入數據庫管理員最高的權限

`SQLPLUS /NOLOG

CONNECT / AS SYSDBA`

我的目標數據庫

ZXTEST

第一步准備工作

找到我們的數據庫表空間TABLESPACE所在位置

select * from dba_data_files;

創建表空間

`CREATE TABLESPACE demo

DATAFILE 'C:\app\admin\oradata\ZXTEST\DEMO.DBF'

SIZE 20M AUTOEXTEND ON NEXT 20M

MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL

SEGMENT SPACE MANAGEMENT AUTO;`

創建用戶

CREATE USER zhb IDENTIFIED BY zhbzhb** **DEFAULT TABLESPACE DEMO** **TEMPORARY TABLESPACE TEMP** **QUOTA UNLIMITED ON DEMO;

給用戶授權

`GRANT CONNECT,DBA,RESOURCE,EXP_FULL_DATABASE,IMP_FULL_DATABASE
TO zhb WITH ADMIN OPTION;

GRANT CREATE ANY INDEX,CREATE ANY TABLE,DELETE ANY TABLE,
CREATE SESSION,CREATE TABLE,CREATE VIEW,UNDER ANY TABLE,
UNLIMITED TABLESPACE TO zhb WITH ADMIN OPTION;`

我們再創建一個Rman (基於catalog)

把我們的備份數據放這里

創建表空間

CREATE TABLESPACE space_for_backup DATAFILE 'C:\app\admin\oradata\ZXTEST\space_for_backup.DBF' SIZE 50M;

創建用戶

CREATE USER rman IDENTIFIED BY rman TEMPORARY TABLESPACE TEMP DEFAULT TABLESPACE space_for_backup QUOTA UNLIMITED ON space_for_backup;

給用戶授權

GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO rman;

第二步開始玩起來---備份階段

創建恢復資料數

登錄到恢復資料數據庫

RMAN>connect catalog rman/rman;

創建恢復資料 (如果沒有這個,你注冊目標數據庫的時候一定會報錯的)

RMAN>CREATE CATALOG TABLESPACE space_for_backup;

注冊目標數據庫

知道怎么進入rman的把上面已經說過了

`RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN>register database;注冊目標數據庫

RMAN>report schema;查看注冊是否成功
`

注冊目標數據庫

查看注冊是否成功

開始備份實例

-----全庫備份

注意這里C盤指定的文件夾需要提前創建好不然會找不到的
`
RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN>backup database format 'c:\backup\db0_%s_%p_%t';`

-----備份表空間

`RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN> backup tablespace demo format 'c:\backup\exoa_%s_%p_%t';`

-----備份歸檔日志

RMAN> backup archivelog all format 'c:\backup\archive_%U';

-----備份控制文件

`RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN> backup current controlfile format 'c:\backup\controlfile_%s_%p_%t';`

-----備份參數文件SPFILE
`RMAN>connect catalog rman/rman;

RMAN>connect target /;

RMAN> backup spfile format 'c:\backup\spfile_%s_%p_%t';`

好了該備份的基本都已經備份好了,接下來就是要恢復了

恢復實例

恢復數據庫(可以將數據庫文件全部刪除,模擬數據庫損壞現象)

SQL> connect / as sysdba;

已連接到空閑例程。

startup mount;

ORACLE 例程已經啟動。

RMAN> connect catalog rman/rman;

還原數據庫

connect target /;

恢復數據庫

recover database;

數據庫已更改。

alter database open;

恢復表空間(可以將表空間文件文件刪除,模擬表空間損壞現象) 這些剛才我們都做了備份

已連接到空閑例程。

connect / as sysdba

例程已經啟動。

startup

`connect catalog rman/rman;

connect target /;`

`run

{

restore tablespace demo;

switch datafile all;

recover tablespace demo;

}`

alter tablespace exoa online;

數據庫已更改。

alter database open;

表空間已更改

alter tablespace exoa online;


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM