一,准备工作(如果需使用恢复目录) :
1). 建立catalog数据库(假设名称为rman)
2). 建立用于恢复目录的表空间
SQL> create tablespace rcat_tbs datafile
'D:\oracle\product\10.2.0\oradata\rman\rman_tbs01.dbf' size 200M;
3). 建立用户
SQL> create user rman_cat identified by oracle default tablespace
rcat_tbs temporary tablespace temp ;
SQL> alter user rman_cat quota unlimited on rcat_tbs;
SQL> grant recovery_catalog_owner to rman_cat ;
SQL> grant connect , resource to rman_cat ;
4). 创建恢复目录 (创建恢复目录都做了什么 ??? )
C:\>rman catalog rman_cat/oracle@rman01
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 5月 23 09:15:42 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到恢复目录数据库
RMAN> create catalog tablespace rcat_tbs ;
恢复目录已创建
5). 通过RMAN连接到目标库和恢复目录后,将目标库注册到恢复目录中。
C:\>rman target sys/oracle@test01 catalog rman_cat/oracle@rman01
恢复管理器: Release 10.2.0.1.0 - Production on 星期一 5月 23 09:19:38 2011
Copyright (c) 1982, 2005, Oracle. All rights reserved.
连接到目标数据库: TEST01 (DBID=3556425887)
连接到恢复目录数据库
RMAN> register database;
注册在恢复目录中的数据库
正在启动全部恢复目录的 resync
完成全部 resync
6). RMAN备份(测试)
RMAN> backup device type disk format 'D:\rmanbak\%U' database plus archivelog;
二,常用命令 :
1. 备份log以append方式保存在log文件中.
C:\>set ORACLE_SID=test01
C:\>rman target / log=c:\rman.log append
RMAN> backup device type disk format 'D:\rmanbak\%U' database ;
其中log=c:\rman.log,表示RMAN所有的输出都不会显示在屏幕上,而是
全都输出到rman.log 中, append表示追加.
2. 查看RMAN配置
RMAN> show all;
使用目标数据库控制文件替代恢复目录
RMAN 配置参数为:
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 'D:\ORACLE\PRODUCT\10.2.0\DB_2\DATABASE\SNCFTEST01.ORA'; # default
RMAN> show device type;
RMAN 配置参数为:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET; # default
RMAN>
3. 使用Configure修改选项值
configure命令选项值修改很简单,可以先通过show all 显示,然后修改。
RMAN > show all ;
....
CONFIGURE CONTROLFILE AUTOBACKUP OFF; # default
....
RMAN> CONFIGURE CONTROLFILE AUTOBACKUP ON ;
新的 RMAN 配置参数:
CONFIGURE CONTROLFILE AUTOBACKUP ON;
已成功存储新的 RMAN 配置参数
正在启动全部恢复目录的 resync
完成全部 resync
登入目标库,修改的部分可以通过 select * from v$rman_configuration; 查询到。
再次show all 查看CONTROLFILE AUTOBACKUP后面的 # default 会消失。说明以前
更改过,修改回OFF之后同样后面的 # default 也是消失的 。
4. PARALLELISM, BACKUP SET,BACKUP PIECES, FILESPERSET, MAXSETSIZE,MAXPIECESIZE
A. 如果設置了PARALLELISM=3,在RUN中没有单独通过ALLOCATE CHANNEL指定通道,
它会默认使用PARALLELISM 设置的通道数目。
RMAN > configure device type disk parallelism 3 ;
B. 如果在run命令块中指定了allocate channel,那么设置的parallelism配置的
并行通道不起作用,以 allocate channel 为准。
run {
allocate channel d1 type disk;
allocate channel d2 type disk;
}
C. 备份片(BACKUP PIECE)是物理概念,即操作系统中的文件。每个backup set默认包
含一个backup piece,但是piece的数量还受到maxpiecesize影响,但超过maxpiecesize
时就会产生多个 piece。设置最大备份片大小:
RMAN > configure channel device type disk maxpiecesize 10240 M ;
D. 备份集(BACKUP SET)是逻辑概念,一次备份的backup set的数量可以由FILESPERSET
参数设定,所以如果备份的文件数超过此参数就会产生多个backup set,
E. FILESPERSET : 表示每个备份集(backup set)包含多少个数据文件(dbf文件)
或归档日志文件 (注意不是备份片文件), 如果备份的文件数超过此参数就会产生
多个备份集 .
G. MAXSETSIZE
一个数据库的备份是由多个backup set组成的,一个backup set 可能是由多个backup
piece组成的。
maxsetsize的设定更多侧重的是优化,它定义了一个backupset的大小,从而rman就会自动
的控制这个backup set包含多少个datafile或archive log等文件。其作用是与filesperset
差不多的。
maxpiecesize侧定的是限制, 因为实际生成的文件是piece,如果你的文件系统不支持
大文件,最大的文件则为2GB,当然要做maxpiecesize的设定,否则会报错。
H . 数据块大小不同的文件不能在同一备份集中。
select * from v$datafile;
select * from v$controlfile;
select * from v$archived_log;
数据文件和控制文件的block_size = db_block_size = 16K, 归档日志的block_size = 512,
数据文件,控制文件能保存在同样的备份集上,但是不能与归档日志保存在同样的备份集上。
如果启动了控制文件自动备份,那么控制文件所在的备份文件会单独生成一个备份集,不会
与数据文件备份集合并在一起
I. 文件数,通道数,备份集的关系
例子 :
(1). filesperset设置为6,数据文件数目为30,通道数据为4,通过30/4可以得
出每个备份集可含有8个文件,取6和8中较小的值6,那么30/6=5个备份集,那
么4个通道肯定都有事情可做了。
(2). 如果不指定filesperset,假设数据文件数目为30,通道数据为4,通过30/4
可以得出每个备份集可含有8个文件,比较8和默认值64,我们取其中较小的8,
那么也可以保证4个通道都有事情可做 。 备注: 每个备份集中包含的最大的
文件数目(dbf数量)为64 。
5. 使用RMAN进行备份
备份整个库:
RMAN > backup database;
RMAN > backup as backupset database format '/u01/cfbak/full_bak_%U';
(1). 表示对整个库进行备份,RMAN自动创建通道。
(2). 如果数据库为非归档模式,需要数据库为mount模式进行RMAN备份。
(3). 若是归档模式,数据库可以open,也可以mount,但不能关闭(可在关闭状态恢复数据库)。
(4). 不指定备份路径的情况下, 备份会放在ORACLE_HOME下的类似
\FLASH_RECOVERY_AREA\TEST01\BACKUPSET\2011_08_11 目录下,控制文件及spfile自动
备份的部分会在 FLASH_RECOVERY_AREA\TEST01\AUTOBACKUP\2011_08_11 下。
只备份一个表空间:
RMAN > BACKUP TABLESPACE SYSTEM;
RMAN > backup as backupset tablespace users format '/data/backup/tbs_users_%U' ;
只备份数据文件
RMAN > backup as backupset datafile 4 format '/data/backup/df_#4_%U' ;
在备份数据文件时,为了加快速度,可以手动指定为某些文件设置多个通道,也可以通过
parallelism参数自动创建多个通道,需要注意的是,通过parallelism自动创建的多个通
道可能用不上。
例子:
RMAN > run{
allocate channel c1 device type disk format 'D:\%U';
allocate channel c2 device type disk format 'D:\%U';
backup as backupset datafile 1,2,3,4 ;
sql 'alter system archive log current' ;
}
RMAN > run{
allocate channel c1 device type disk format '/data/backup/%U';
allocate channel c2 device type disk format '/data/backup/%U';
backup as backupset
(datafile 1,4 channel c1)
(datafile 2,3 channel c2);
sql 'alter system archive log current' ;
}
也可以不指定通道的格式,将备份集放在同一个目录下(注意其中的分号):
RMAN > run{
allocate channel c1 device type disk ;
allocate channel c2 device type disk ;
backup as backupset format '/data/backup/%U'
(datafile 1,4 channel c1)
(datafile 2,3 channel c2);
sql 'alter system archive log current' ;
}
不具体指定哪些通道负责哪些文件,RMAN自动决定:
RMAN > run{
allocate channel c1 device type disk ;
allocate channel c2 device type disk ;
backup as backupset format '/data/backup/%U'
(database) ;
sql 'alter system archive log current' ;
}
这样RMAN会按照备份集大小尺寸相差不多的原则,自动组合数据文件,最终生成
的两个备份集的大小尺寸差不多。
我们也可以配置parallelism来配置多个通道:
RMAN > configure device type disk parallelism 3 backup type to backupset ;
以上设置,在每次备份时都会默认自动生成3个通道,执行决定每个通道负责备份
哪些数据文件,最后得到的3个备份集的尺寸大小会差不多。
RMAN > backup as backupset database format '/data/backup/full_bak_%U' ;
备份集的压缩:
Oracle10g开始,RMAN备份提供对备份集文件的压缩,当然只对备份集有效,对镜像
副本无效,命令如下, 一般是大概5:1的压缩 :
RMAN > backup as compressed backupset database ;
压缩比比较理想。不过压缩备份集虽能够节省一些存储空间,但会降低备份和恢复时
的速度,如何取舍就取决于实际需求了。
RMAN配置中如何去掉SBT_TAPE
CONFIGURE ARCHIVELOG BACKUP COPIES FOR DEVICE TYPE 'SBT_TAPE' clear;
6. RMAN备份类型二 - 镜象副本(Image Copy)
镜像副本(Image copy): 与手工OS Copy备份数据文件类似,是一个数据文件生成
一个镜像副本文件(数据库数据文件、归档重做日志或者控制文件的精确副本),不
同的是这个过程由RMAN完成,RMAN复制的时候也是一个数据块一个数据块(Oacle block)
的复制,同时默认检测数据块是否出现物理损坏(默认不会进行逻辑损坏检查,需要手
工启动),且不需要将表空间置为begin backup状态,和备份集类型不同在于生成的
镜像副本中包含使用过的数据块,也包含从来没有用过的数据块 。
一个image copy是对数据库文件的二进制拷贝,与os的拷贝命令相同。不同的是rman
的image copy会将备份信息记录在rman的备份信息库,这些image copy可以被rman用
来恢复文件,而os的copy命令产生的备份文件则需要手动的加入到rman的备份信息库
才能被rman使用。
Image copy只能创建在disk上,使用as copy选项的backup命令将会创建image copy的备份。
Copy镜像拷贝至少要在mount 状态下运行(需要读取控制文件中的文件号 等)。
Copy镜像拷贝可作为增量备份的 Level0
Oracle10g开始,允许使用单条命令"backupascopy"进行数据库拷贝。
备份集/热备份和镜像副本的区别 ----
A. 镜象副本拷贝文件过程通过RMAN进行,备份信息会记录在RMAN信息库中。
B. 与热备份相似,备份所有的数据块,且备份文件以datafile存在。
C. 镜象备份只能备份在disk上,不能在磁带上。
D. 与备份集相似,备份过程中可以进行物理损坏的检测。
E. 可以使用操作系统工具或 RMAN 创建镜像副本,也能够使用操作系统工具
或RMAN 直接利用镜像副本恢复数据库,而无须任何额外处理。
F. 鏡像副本可以進行增量備份動作。
G. 生成镜像副本的好处在于恢复时速度相对备份集来说要更快 ,恢复时可以
不用拷贝,指定新位置即可。
H. OS的copy命令产生的备份文件需要手动的加入到rman的备份信息库才能被rman使用。
I. 备份集可以包含多个数据文件,备份中可以压缩及增量备份,但必须使用RMAN恢复。
J. 备份集的格式为RMAN自有格式 。
K. RMAN压缩只对备份集有效,对镜象副本无效。
镜象副本的原理 ---
镜象副本和备份集的原理一样,进行Oracle block块的拷贝,只是整个文件的块都需要
扫描到,所有的块都会被复制到副本中,处理正在被更新的block与RMAN备份集一样(协
调DBWn将脏块处理到disk之后再进行)。
操作镜象副本备份 ---
使用RMAN生成镜像副本文件,可以使用以下命令:
RMAN > backup as copy
datafile '/u01/app/oradata/ora10g/users01.dbf'
format '/u01/backup/users01.dbf' ;
或者使用copy命令:
RMAN > run {
allocate channel c1 device type disk ;
copy datafile 'D:\oracle\product\10.2.0\oradata\test01\USERS01.dbf'
to 'D:\USERS01.bak' ;
}
使用以上命令的时候,可以使用如下命令批量处理数据文件:
SELECT 'datafile '||''''||name||''''||'
to '||''''||'/backup'||name||''''||',' FROM v$datafile;
7. Backup命令的选项
A. 若需要提高备份速度,可以适时取消RMAN中的物理检测(一般不建议) :
RMAN > backup nochecksum database ;
B. 默认情况下,RMAN不会检查数据块是否发生逻辑损坏,可以启动逻辑坏块检查:
RMAN > backup check logical database;
C. RMAN备份时,只要发现了新的坏块,就会立刻停止备份,如果发现的是上次备份时
已经发现的坏块,则RMAN会继续备份。 我们可以设置maxcorrupt参数来通知RMAN,
发现坏块个数超过指定的数量时才停止备份:
RMAN > run{
set maxcorrupt for datafile 5,7,8,9 to 10 ;
backup database ;
}
表示当在5,7,8,9号文件中的坏块超过10个时就停止备份,其他文件碰到新坏块就
停止备份。
E. 我们也可以使用validate 来检验坏块, 它不会生成物理的备份文件 。
RMAN > backup validate database ;
F. 跳过离线或不可访问或只读的文件,也可以同时都包含。
RMAN > backup database skip offline ;
RMAN > backup database skip inaccessible;
RMAN > backup database skip readonly;
RMAN > backup database skip inaccessible skip readonly;
G. 只备份上次备份以来新加入的文件
RMAN > backup database not backed up;
H. 对那些在指定的时间范围内,没有被备份过的数据文件进行备份,如下:
RMAN > backup database not backed up since time='sysdate-2' ;
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-705805/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/35489/viewspace-705805/
本文详细介绍了Oracle RMAN的使用方法,包括备份数据库的准备步骤、常用命令及其功能,如备份类型的选择、配置参数的调整、并行性和备份集的管理等,并对比了备份集与镜像副本的特点。
1403

被折叠的 条评论
为什么被折叠?



