先介紹一下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;