天天看點

Oracle 備份與恢複學習筆記(7)

第七章:RMAN

1、rman的定義和功能:

      1) Recovery Manager

      2)通過oracle 提供的包,建立備份和恢複的server process,在oracle server 上做備份和恢複

      3)rman 備份 database、tablespace、datafile、controlfile、spfile、archivelog

      4)支援歸檔和非歸檔

      5)在歸檔模式下支援一緻性備份(冷備份)和非一緻性備份(熱備份)

      6)非歸檔隻支援一緻性備份

2、rman的優點:

       1)隻備份資料檔案中已經使用過的block(備份segment高水位線以下的block),節省空間

       2)備份時自動檢查資料檔案是否有壞塊,并可以标記壞塊,跳過壞塊

       3)可以實作增量備份

       4)備份和恢複都是用rman的指令來完成

3、rman的架構:

    1)target  database:需要做備份的生産庫

    2)儲存設備:disk 、tape (sbt 錄音帶機)存放備份檔案的裝置

    3)channel :目标庫和儲存設備之間備份通道(服務程序)預設最少啟動一個channel,可同時啟動多個channel ,并發操作,加快備份和恢複的速度

    4)server process:用于備份和恢複

    5)rman備份的中繼資料:記錄備份的資訊(一般放在目标庫的controlfile 裡)

    6)catalog database :集中管理、存放備份的中繼資料,還可以存儲備份腳本

    7} MML:media manage layer 媒體管理層:用于管理錄音帶機的庫檔案或驅動

4、rman 連結目标庫

          1) $ORACLE_SID 和目标庫一緻

[oracle@work ~]$ env |grep SID

ORACLE_SID=prod

[oracle@work ~]$ rman target /

Recovery Manager: Release 10.2.0.1.0 - Production on Thu Aug 18 05:06:08 2011

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

connected to target database: PROD (DBID=170319990)

RMAN>

[oracle@work ~]$ rman

Recovery Manager: Release 10.2.0.1.0 - Production on Thu Aug 18 05:10:11 2011

RMAN> connect target /                                                                                                                  

RMAN>

2)遠端連接配接

1)在target database 啟動listeners ,在client配置tnsnames

C:\Documents and Settings\liqx>rman target sys/oracle@prod

恢複管理器: Release 10.2.0.1.0 - Production on 星期四 8月 18 09:51:24 2011

連接配接到目标資料庫: PROD (DBID=170319990)

5、檢視rman的預設配置,修改rman的配置資訊

    1)檢視rman的預設配置

RMAN> show all;                                                                                                                         

using target database control file instead of recovery catalog

RMAN configuration parameters are:

CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default

CONFIGURE BACKUP OPTIMIZATION OFF; # default

CONFIGURE DEFAULT DEVICE TYPE TO DISK; # default

CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default

CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '%F'; # default

CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default

CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE DISK TO 1; # default

CONFIGURE MAXSETSIZE TO UNLIMITED; # default

CONFIGURE ENCRYPTION FOR DATABASE OFF; # default

CONFIGURE ENCRYPTION ALGORITHM 'AES128'; # default

CONFIGURE ARCHIVELOG DELETION POLICY TO NONE; # default

CONFIGURE SNAPSHOT CONTROLFILE NAME TO '/u01/app/oracle/product/10.2.0/db_1/dbs/snapcf_prod.f'; # default

RMAN> CONFIGURE CONTROLFILE AUTOBACKUP  on;                                                                                             

new RMAN configuration parameters:

CONFIGURE CONTROLFILE AUTOBACKUP ON;

new RMAN configuration parameters are successfully stored

------off:預設情況下,在備份system 表空間時,會備份控制檔案和spfile

      on: 在做任何檔案的備份時,會自動備份控制檔案和spfile,并且資料庫的實體結構發生變化時,也自動備份controlfile。

 2)format 指明備份檔案的路徑和檔案名

 RMAN備份檔案格式

備份檔案可以自定義各種各樣的格式,如下:

%c 備份片的拷貝數

%D 位于該月中的第幾天 (DD)

%M 位于該年中的第幾月 (MM)

%F 一個基于DBID 唯一的名稱,這個格式的形式為c-IIIIIIIIII-YYYYMMDD-QQ,

%d 資料庫名稱其中IIIIIIIIII 為該資料庫的DBID,YYYYMMDD 為日期,QQ 是一個1-256 的序列

%n 資料庫名稱,向右填補到最大八個字元

%u 一個八個字元的名稱代表備份集與建立時間

%p 該備份集中的備份片号,從1 開始到建立的檔案數

%U 一個唯一的檔案名,代表%u_%p_%c

%s 備份集的号

%t 備份集時間戳

%T 年月日格式(YYYYMMDD)

6、rman備份的分類:

     1)backupset:隻備份datafile裡已經使用過的塊(HWM以下)、可以實作增量備份(可以備份到disk和tape)。如果隻啟用一個channel,預設會把所有備份的datafile放入到一個backupset裡

     ,并且生成一個備份片(backup piece,在OS下看到的備份檔案)

     2)backup piece :由backupset 生成的備份檔案,儲存在os下

     3) copy(snapshot 鏡像):實際上和手工cp 是類似的,備份datafile 所有的資料塊,不能實作增量備份(但可以作為增量備份的0級備份),隻能備份到disk ,不能備份到tape,

        恢複時速度快     

6、rman的指令格式:

    1)互動式

RMAN> shutdown immediate;                                                                                                               

database closed

database dismounted

Oracle instance shut down

RMAN> startup force mount;                                                                                                              

Oracle instance started

database mounted

Total System Global Area     314572800 bytes

Fixed Size                     1219184 bytes

Variable Size                 67110288 bytes

Database Buffers             243269632 bytes

Redo Buffers                   2973696 bytes

RMAN> alter database open;                                                                                                              

database opened

RMAN> sql 'alter system switch logfile';                                                                                                

sql statement: alter system switch logfile

RMAN> sql 'select * from scott.emp';                                                                                                    

sql statement: select * from scott.emp

---------對select 不顯示結果

RMAN> backup datafile 2 format '/disk1/rman/prod/%d_%s_%t.bak';                                                                         

Starting backup at 18-AUG-11

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=139 devtype=DISK

channel ORA_DISK_1: starting full datafile backupset

channel ORA_DISK_1: specifying datafile(s) in backupset

input datafile fno=00002 name=/u01/app/oracle/oradata/prod/users01.dbf

channel ORA_DISK_1: starting piece 1 at 18-AUG-11

channel ORA_DISK_1: finished piece 1 at 18-AUG-11

piece handle=/disk1/rman/prod/PROD_2_759476271.bak tag=TAG20110818T053751 comment=NONE

channel ORA_DISK_1: backup set complete, elapsed time: 00:00:03

Finished backup at 18-AUG-11

RMAN> list backup;