探索ORACLE之RMAN_02基本使用
作者:吳偉龍
RMAN工具是Oracle8i為了更好的實作資料庫備份恢複而推出來的一實用工具,可以實作資料庫的線上的備份和恢複進而不影響業務的正常運作。并且在Oracle軟體安裝上的那一時刻就已經存在了,不必另外安裝或買媒體,從今天開始就開始談談RMAN的使用和維護:
1、 登入和通路RMAN
A、 在Windows下進入RMAN,很簡單,隻需要在指令行輸入rman即可。
如下:
C:\>rman
Recovery Manager:Release 10.2.0.4.0 - Production on Fri May 18 10:45:58 2012
Copyright (c)1982, 2007, Oracle. All rights reserved.
RMAN>
B、 在Linux下進入RMAN同樣也是在指令行輸入rman即可,但是有一點需要注意,必須修改oracle使用者環境變量為如下,在Linux系統中還有一個RMAN指令不是Oracle的。
PATH=$ORACLE_HOME/bin:/sbin:$PATH
執行RMAN
[oracle@wwldb ~]$ rman
Recovery Manager: Release10.2.0.1.0 - Production on Fri May 18 10:53:15 2012
Copyright (c) 1982, 2005,Oracle. All rights reserved.
注意:就上面的進入RMAN運作的是在NOCATALOGmoshi
,既不使用恢複目錄。輸入RMAN後即可進入RMAN指令行界面。
2、 獲得RMAN幫助
[oracle@wwldb ~]$ rman help
Argument Value Description
-----------------------------------------------------------------------------
target quoted-string connect-string for target database
catalog quoted-string connect-string for recovery catalog
nocatalog none if specified, then no recoverycatalog
cmdfile quoted-string name of input command file
log quoted-string name of output message log file
trace quoted-string name of output debugging message log file
append none if specified, log is opened inappend mode
debug optional-args activate debugging
msgno none show RMAN-nnnn prefix for allmessages
send quoted-string send a command to the media manager
pipe string building block for pipe names
timeout integer number of seconds to wait for pipe input
checksyntax none check the command file for syntaxerrors
3、 RMAN的啟動:
連接配接到目标資料庫
注意:1、connect不能簡寫為conn
2、連接配接USER必須具備SYSDBA權限
3、連接配接的db_name必須在tnsnames.ora中有配置,且有效(即通過SQLPLUS可以連接配接)
4、target database必須為archivelog
模式
5、如果是本地可以采用OS認證,如果是遠端需要使用密碼檔案認證。
6、RMAN工具版本與目标資料庫必須是同一版本。
4、 在RMAN中執行作業系統指令
Egg:
RMAN> run{host "ls -artl";}
RMAN> run{host "ifconfig";}
RMAN> run{host "pwd";}
/home/oracle
host commandcomplete
RMAN> run{host "ls";}
Desktop sqlnet.log
RMAN> exit
5、 在RMAN中執行SQL指令對資料庫進行操作
5.1
啟動關閉資料庫
RMAN> shutdown immediate
database closed
database dismounted
Oracle instance shut down
RMAN> startup
connected to target database (not started)
Oracle instance started
database mounted
database opened
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 79693416 bytes
Database Buffers 197132288 bytes
Redo Buffers 7168000 bytes
5.2
在RMAN中執行SQL語句
RMAN> sql 'select * fromuser_tablespaces';
sql statement: select * fromuser_tablespaces
RMAN> sql 'alter system checkpoint';
sql statement: alter system checkpoint
為了解釋這個問題請參看紅色注釋
注意:
rman is not sqlplus, rman show result of"sql" command, but not show result of 'select ....'
5.3
在RMAN中執行bak.sql腳本
RMAN> run {executescript bak.sql}
6、 配置和檢視RMAN的環境資訊
6.1檢視rman的所有配置資訊。
RMAN> show all;
using target database control file instead of recoverycatalog
RMAN configuration parameters are:
1; # default
注釋:配置redundancy配置需要保留幾份備份檔案,預設是1。也可以改變為其它非零的正整數值。
注釋:裝置備份優化打開,如果表空間是隻讀狀态,那麼在做備份的時候隻是第一次會備份,以後不備份。有兩個選項off關閉和on打開
TO DISK; # default
注釋:配置預設備份裝置可以是sbt(錄音帶),DISK(硬碟);預設是硬碟
CONFIGURE CONTROLFILE AUTOBACKUP OFF;# default
注釋:配置在備份的時候是否将控制檔案一并備份,兩個選項,預設是off不備份,也可以是on備份、。
CONFIGURE CONTROLFILE AUTOBACKUPFORMAT FOR DEVICE TYPE DISK TO '%F'; # default
注釋:配置control file自動備份的路徑和檔案格式
CONFIGURE DEVICE TYPE DISK PARALLELISM1 BACKUP TYPE TO BACKUPSET; # default
注釋:配置磁盤備份的類型,預設是備份集方式(backupset)或鏡像拷貝也叫檔案拷貝(copy)。
鏡像拷貝值适用于磁盤備份,錄音帶隻支援備份集。一般用備份集更多,其效率會更高
注釋:配置生成備份集的個數,預設是1;備份集内會包括(資料檔案,控制檔案,參數檔案)
注釋:配置歸檔日志預設的備份路徑
UNLIMITED; # default
注釋:配置單個備份集大小,預設是不限制,我們可以配置成1G/100M/1024K or other
OFF; # default
注釋:配置備份資料加密,是10Gr2推出來的新功能,設定為on後。
可以set encryption on identifyed by youpassword only;加密備份,還原的時候需要提供密碼。
注釋:指定備份資料加密的類型。
# default
注釋:配置歸檔日志在備份後自動删除
CONFIGURE SNAPSHOT CONTROLFILE NAME TO'/DBSoft/product/10.2.0/db_1/dbs/snapcf_WWL.f'; # default
注釋:配置控制檔案快照,可以有效的提高控制檔案的恢複性。
6.2檢視單個參數的配置資訊:
RMAN> show RETENTION POLICY;
CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default
RMAN> show BACKUP OPTIMIZATION;
CONFIGURE BACKUP OPTIMIZATION OFF; # default
RMAN> show DEFAULT DEVICE TYPE;
CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default
注意:在檢視當參數資訊的時候執行輸入showall出來的參數後的參數名稱即可,不可同時輸入TO或FORMAT以及for後面值。
6.3修改RMAN的配置資訊
通過執行configure指令來進行修改,後面接上參數名稱和值如下操作:
Egg1:
RMAN> showcontrolfile autobackup; -----檢視目前參數的值,是off。
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
new RMAN configuration parameters:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
new RMAN configuration parameters are successfully stored
RMAN> show controlfile autobackup; ---檢視修改後的,已經修改成功。
Egg2:
RMAN> CONFIGURECHANNEL 1 DEVICE TYPE DISK FORMAT '/DBBak/bak_%d_%M_%D_%U';
new RMANconfiguration parameters:
CONFIGURE CHANNEL 1DEVICE TYPE DISK FORMAT '/DBBak/bak_%d_%M_%D_%U';
new RMANconfiguration parameters are successfully stored
注釋:配置資料檔案的備份路徑.
RMAN> CONFIGURECONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
old RMANconfiguration parameters:
CONFIGURE CONTROLFILEAUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '/DBBak/ctorl_%d_%M_%D_%U_%F';
CONFIGURE CONTROLFILEAUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F';
RMAN>注釋:配置控制檔案的備份路徑
RMAN> show all; ------檢視所有資訊,看到已經更改了預設備份路徑
RMAN configurationparameters are:
CONFIGURE RETENTIONPOLICY TO REDUNDANCY 1;
CONFIGURE BACKUPOPTIMIZATION OFF; # default
CONFIGURE DEFAULTDEVICE TYPE TO DISK; # default
CONFIGURE CONTROLFILEAUTOBACKUP ON;
CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FORDEVICE TYPE DISK TO '/DBBak/ctorl_%d_%M_%D_%U_%F';
CONFIGURE DEVICE TYPEDISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
CONFIGURE DATAFILEBACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE ARCHIVELOGBACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default
CONFIGURE CHANNEL 1 DEVICE TYPE DISKFORMAT '/DBBak/bak_%d_%M_%D_%U';
CONFIGURE MAXSETSIZETO UNLIMITED; # default
CONFIGURE ENCRYPTIONFOR DATABASE OFF; # default
CONFIGURE ENCRYPTIONALGORITHM 'AES128'; # default
CONFIGURE ARCHIVELOGDELETION POLICY TO NONE; # default
CONFIGURE SNAPSHOTCONTROLFILE NAME TO '/DBSoft/product/10.2.0/db_1/dbs/snapcf_WWL.f'; # default
7、 學習并記憶備份檔案的格式:
備份檔案可定義的格式符号如下
%c
備份片的複制數
%d
資料庫的名稱
%D
時間日期(DD)
%M
時間月份(MM)
%F
基于DBID的唯一名稱
%n 資料庫名稱,向右填補到最多8個字元
%u 一個8個字元的名稱代表備份集魚建立時間
%p 該備份集中的備份片号,從1開始到建立的檔案數
%U
一個唯一的檔案名,代表%u_%p_%c
%S 備份集的編号
%t 備份集的時間戳
%T 年月日格式(YYYYMMDD)
注意: %F是基于DBID的唯一名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ其中IIIIIIIII是該資料庫的DBID,YYYYMMDD為日期,QQ是1-256的序列号。
8、 基于上面的配置,執行一備份案例:
1、 執行rman備份必須開啟資料的歸檔功能:
SQL> shutdown immediate ---關閉資料庫
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startupmount; ----啟動資料庫到mount狀态
ORACLE instance started.
Total System Global Area 285212672 bytes
Fixed Size 1218968 bytes
Variable Size 79693416 bytes
Database Buffers 197132288 bytes
Redo Buffers 7168000 bytes
Database mounted.
SQL> alter database archivelog; ---開啟歸檔功能
Database altered.
SQL> archivelog list; ---檢視歸檔狀态
Database logmode Archive Mode ---歸檔已經打開
Automatic archival Enabled
Archive destination USE_DB_RECOVERY_FILE_DEST
Oldest online logsequence 8
Next log sequence toarchive 10
Current log sequence 10
SQL>
2、 執行rman的全庫備份
[oracle@wwldbDBBak]$ rman target / ---登入到rman
Recovery Manager: Release10.2.0.1.0 - Production on ÐÇÆÚÎå 5ÔÂ 18 18:56:47 2012
connected to target database:WWL (DBID=5520179, not open) ---目前資料的DBID和執行個體名及狀态
RMAN> backupdatabase; -----執行備份資料庫的指令
Starting backup at 18-5ÔÂ -12 ----啟動備份的時間
using target database controlfile instead of recovery catalog -----描述資料的備份模式
allocated channel: ORA_DISK_1 ----配置設定通道
channel ORA_DISK_1: sid=159devtype=DISK ----告訴備份的裝置類型是硬碟
channel ORA_DISK_1: startingfull datafile backupset ----備份方式類型是全備
channel ORA_DISK_1:specifying datafile(s) in backupset ----根據以上條件檢索出需備份的資料檔案
input datafile fno=00001name=/DBData/WWL/system01.dbf ----檔案資訊
input datafile fno=00003name=/DBData/WWL/sysaux01.dbf
input datafile fno=00002name=/DBData/WWL/undotbs01.dbf
input datafile fno=00004name=/DBData/WWL/users01.dbf
channel ORA_DISK_1: startingpiece 1 at 18-5ÔÂ -12 ----告訴通道啟動的時間
channel ORA_DISK_1: finishedpiece 1 at 18-5ÔÂ -12 ----告訴通道結束時間
piecehandle=/DBBak/bak_WWL_05_18_04nbaffs_1_1 tag=TAG20120518T185700 comment=NONE
channel ORA_DISK_1: backupset complete, elapsed time: 00:01:05 -----生成備份檔案,在/DBBak目錄中,檔案名稱是我們之前在環境配置裡面定義好的。
Finished backup at 18-5ÔÂ -12
Starting Control File andSPFILE Autobackup at 18-5ÔÂ -12 ---啟動備份控制檔案
piecehandle=/DBSoft/product/10.2.0/db_1/dbs/c-5520179-20120518-01 comment=NONE
Finished Control File andSPFILE Autobackup at 18-5ÔÂ -12 ------生成控制檔案的備份,我沒有指定controlfile的備份路徑,是以是備份在預設路徑,檔案名是用的%F參數生成。
3、 檢視備份集資訊
RMAN> listbackupset; ---執行list backupst指令檢視備份集資訊
List of BackupSets
===================
BS Key Type LV Size Device Type Elapsed Time Completion Time
------- ---- ------------ ----------- ------------ ---------------
2 Full 522.59M DISK 00:00:59 18-5ÔÂ -12
BP Key: 2 Status: AVAILABLE Compressed: NO Tag: TAG20120518T185700
Piece Name:/DBBak/bak_WWL_05_18_04nbaffs_1_1
--備份後的檔案名稱及路徑
List of Datafiles in backup set 2 ---備份及編号
注釋:BS:是備份集編号
Key:
Type:
備份的類型,是全備還是增備或差備
LV Size:
備份後備份檔案大小
Device Type:
存放備份檔案的媒體類型
Elapsed Time:
備份執行的耗時長
Completion Time:
備份完成的時間
File LV Type Ckp SCN Ckp Time Name
---- -- ---- ---------- ---------- ----
1 Full 618100 18-5ÔÂ -12/DBData/WWL/system01.dbf
2 Full 618100 18-5ÔÂ -12/DBData/WWL/undotbs01.dbf
3 Full 618100 18-5ÔÂ -12/DBData/WWL/sysaux01.dbf
4 Full 618100 18-5ÔÂ -12/DBData/WWL/users01.dbf
注釋:File:資料檔案編号
Type:備份的類型
Ckp SCN:備份時的檢查點編号
Ckp Time:發生檢查點的時間
Name: 備份的資料檔案名稱及路徑
3 Full 6.80M DISK 00:00:02 18-5ÔÂ -12
BP Key: 3 Status: AVAILABLE Compressed: NO Tag: TAG20120518T185806
Piece Name:/DBSoft/product/10.2.0/db_1/dbs/c-5520179-20120518-01
Control File Included: Ckp SCN: 618100 Ckp time: 18-5ÔÂ -12
SPFILE Included: Modification time: 18-5ÔÂ-12
4、 檢視備份後出來的檔案
[oracle@wwldbDBBak]$ pwd
/DBBak
[oracle@wwldbDBBak]$ ls
bak_WWL_05_18_04nbaffs_1_1 lost+found ----檔案名是應征了CONFIGURECHANNEL
1 DEVICE TYPE DISK FORMAT '/DBBak/bak_%d_%M_%D_%U';這參數的設定
[oracle@wwldbDBBak]$ ll
×ܼÆ535164
-rw-r----- 1oracle oinstall 547987456 05-18 18:57 bak_WWL_05_18_04nbaffs_1_1
drwxrwxr-x 2oracle oinstall 16384 05-18 17:35lost+found
[oracle@wwldb DBBak]$
RMAN> showchannel;
RMANconfiguration parameters are:
CONFIGURECHANNEL 1 DEVICE TYPE DISK FORMAT '/DBBak/bak_%d_%M_%D_%U';