天天看點

探索ORACLE之RMAN_02基本使用

探索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';