Oracle RMAN (基于catalog) 配置与使用步骤
Oracle Recovery Management
(基于catalog)
一、 简介
RMAN(Recovery Management)是一款Oracle自带的备份恢复工具软件,是DBA的一个重要工具。专门用于数据库的备份、恢复、修复操作,同时自动管理备份。
二、 特点
1、功能类似于物理备份,但是比物理备份更加强大
2、可以压缩空块、检测坏块,并且在数据块的水平上做增量备份。
3、可以把备份输出打包为备份集(backupset),也可以根据需求切割备份集。
4、 备份与恢复的过程可以自动管理,也可以使用脚本。
三、 环境
操作系统:windows 7 专业版 64位
数据库版本: oracle 11g R2 64位
四、 配置
1、 创建用户
1.1 创建rman表空间并指定大小
create tablespace rman_tbsdatafile 'D:appAdministratororadataheheman_tbs.dbf' size 2G;
1.2 创建rman用户,指定表空间
create user rman identified by rman defaulttablespace rman_tbs;
1.3 为rman用户授权
create user rman identified by rman defaulttablespace rman_tbs;
1.4 创建并注册恢复目录
rman target rman/rman@hehe catalogrman/rman@hehe
create catalog tablespace rman_tbs;
register database; (unregisterdatabase 注销)
不注册恢复目录,create script时会出现rman-20001错误未注册恢复目录
2、 设置归档
1、 查看归档模式
select log_mode from v$database;
archive log list;
2、 设置归档模式
Shutdown immediate;
Startup mount
Alter database (no)archivelog
3、 设置归档路径
Alter system set log_archive_dest_1='location=D:appAdministratororadataarchivelog';
Alter systemset standby_archive_dest='';
4、 归档参数
Log_archive_dest_n=’location=’;
--设置本地归档路径
Log_archive_dest_n=’service=zwy’;
--设置远程归档路径(zwy网络服务名必须在tnsnames文件内有解析)
Log_archive_dest_state_n=defer/enable;
--禁用/启用对应的归档路径
Log_archive_dest、standby_archive_dest这两个参数和log_archive_dest_n参数无法同时使用。
五、 RMAN备份脚本
1、创建脚本
create (global) script zwy
comment 'level 0 backup for database hehe'
--脚本说明
{
allocatechannel ch1 device type disk;
--分配备份通道指定类型
backupspfile format 'd:manspfile.ora';
--备份参数文件
backup ascopy current controlfile format 'd:mancontrol01.ctl';
--备份当前使用的控制文件
backupincremental level 0 database format 'd:man%d_%T_%u.bak'
--对数据库进行0级备份
plusarchivelog format 'd:manarch_%u.log';
--加所有归档日志
releasechannel ch1;
--释放通道
}
2、 将脚本生成本地文档
print (global) scriptzwy to file 'd:script_oracleman.txt';
3、 本地文档变为rman脚本
create (global)script zwy from file 'd:script_oracleman.txt';
4、 列出所有脚本
list all/global script names
5、 查看脚本内容
print (global) script zwy
6、 删除脚本
delete script zwy
六、 备份源数据
运行备份脚本
run {
execute script zwy;
}
或
run {
allocate channel ch1 device typedisk;
backup spfile format'd:manspfile.ora';
backup as copy current controlfile format'd:mancontrol01.ctl';
backup incremental level 0 databaseformat 'd:man%d_%T_%u.bak'
plus archivelog format 'd:manarch_%u.log';
release channel ch1;
}
单独备份参数文件和控制文件
0级备份数据库和归档日志
备份源数据时,若出现ora-19625 找不到指定归档日志文件,或者归档日志丢失,需要执行以下命令:
changearchivelog all crosscheck; ——交叉验证所有归档日志
(crosscheckarchivelog all)
deleteexpired archivelog all; ——删除过期的归档
七、 恢复
1、 创建数据库实例
C:> oradim -new-sid hehe -startmode auto -spfile
rman target /
2、 启动数据库到非挂载状态
RMAN> startupnomount;
3、 恢复参数文件(创建相应路径的文件夹)
RMAN> restorespfile from 'd:manhehe.ora';
4、 恢复控制文件(创建相应路径的文件夹)
RMAN> restorecontrolfile from 'd:mancontrol01.ctl;
5、 启动数据库到挂载状态
RMAN> alterdatabase mount;
此时可能会报错:
ORA-01103: 控制文件中的数据库名 ''HEHE'' 不是''DUMMY''
需要关闭数据库,然后再启动到nomount
再次执行alter database mount;
此时又报错:
ORA-00205: 标识控制文件时出错, 有关详细信息, 请查看预警日志
查看预警日志D:appAdministratordiagdbmshehehehealertlog.xml
提示无法在指定位置找到控制文件。恢复的参数文件中指定的有控制文件的位置,从之前的控制文件恢复目录内把控制文件copy到指定目录下,更名。
6、将归档日志、备份片加入编目
RMAN> catalog backuppiece 'path';
RMAN> catalog archivelog 'path'; (如果归档日志是单独备份,则需要加上这条命令,如果是plus在database的备份集内,则不需要加)
7、恢复数据库
RMAN> restore database;
8、启动数据库
RMAN> alter databse open resetlogs;
9、验证恢复结果
ora-32004 obsoleteor deprecated parameter(s) specified for RDBMS instance
手动创建参数文件时可能会报错,因为参数文件中有没用的参数,注释掉即可,也可在alert日志内查看。
八、 RMAN中各个配置
1、 保留策略冗余
Configureretention policy to redundancy 3;
Configureretention policy to recovery window of 7days;
Configureretention policy clear;
2、 备份优化开/关
Configurebackup optimization on;
Configurebackup optimization off;
Configurebackup optimization clear;
3、 默认设备类型
Configuredefault device type to disk; --默认磁盘设备
Configuredefault device type to sbt; --SBT-TAPE磁带设备
Configuredefault device type clear;
4、 控制文件
Configurecontrolfile autobackup on;
Configurecontrolfile autobackup format for device type to disk to ‘/tmp/ctl_%F’;
Configuresnapshot controlfile name to ‘/tmp/control.snp’;
Configurecontrolfile autobackup clear;
Configurecontrolfile autobackup format for device type to disk clear;
Configuresnapshot controlfile name clear;
5、 并行通道数
Configuredevice type disk/sbt parallelism 2;
Configuredevice type disk/sbt clear;
Configurechannel device type disk format ‘/tmp/rman_backup_%U’;
Configurechannel 1 device type disk format ‘/tmp/rman_backup_%U’;
Configure channel2 device type disk format ‘/tmp/rman_backup_%U’;
Configurechannel device type disk rate 1200K; --备份速度
Configurechannel device type disk maxpiecesize 100M; --备份片最大大小
6、 生成备份副本
Configuredatafile backup copies for device type disk/sbt to 3;
Configurearchivelog backup copies for device type disk/sbt to 3;
Configuredatafile/ archivelog backup copies for device type disk/sbt clear;
7、 排除选项(exclude)
Configureexclude for tablespace ‘USERS’;
Configureexclude clear;
8、 备份集大小
Configuremaxsetsize to 1G/1000M/1000000K/unlimited;
Configuremaxsetsize clear;
9、 其它辅助选项(auxiliary)
Configureauxname for datafile 1 to ‘/oracle/auxfiles/aux_1.dbf’
Configureauxname for datafile 1 clear;
九、 注意事项
1、 RMAN不能用于备份口令文件(密码文件)。
2、 RMAN启动数据库上的oracle服务器来进行备份或还原。备份、还原、修复是由这些进程驱动的。
3、 RMAN可以由OEM上的 backup manager GUI来控制。
4、 RMAN的备份级别分为:数据库级别、表空间级别、文件级别。
5、 RMAN的备份方式有两种:catalog方式、控制文件方式(nocatalog)
6、 在RMAN中分别开启会话
set command id to ‘sess1’
set command id to ‘sess1’;
指定cmmand id之后,在会话查询中可以看到以下信息
由社区会员上传分享,如想下载word版文档请点击阅读原文
长按二维码关注公众号