Recovery Manager(RMAN),是一种用于集备份(backup)、还原(restore)和恢复(recover)数据库于一体的Oracle 工具。能够备份整个数据库、表空间、数据文件、控制文件、归档文件以及Spfile参数文件。支持增量数据块级别的备份 和块级别的介质恢复,可以保存频繁执行的备份恢复脚本,可以实现数据库的克隆、使用RMAN建立备用数据库, 支持镜像备份与备份集,可以备份到磁盘与磁带, 管理备份与恢复任务,可增加备份并发度或限制I/O减少备份给数据库带来的影响,在备份期间检查损坏的数据块,支持在备份期间使用压缩特性来减少磁盘空间的占用。
在Windows操作系统中为rman.exe,在Unix系统中为rman。
在用rman做备份时要确定数据库archive处于Enabled状态
sqlplus>archive log list
如果不是要打开
shutdown immediate;
startup mount;
alter database archivelog;
RMAN> backup format '/u01/app/oracle/rmanbak/lf_%d_%U' archivelog all delete input; --delete input 删除所有已经备份过的归档日志
RMAN> backup archivelog all delete input format '/u01/app/oracle/rmanbak/lf_%d_%U';
full备份:
backup format 'u01/rmbak/full_%T_%u.bak' database plus archivelog;
0级增量备份:
run{
allocate channel ch1 type disk;
backup incremental level 0 database
format '/u01/bk/rmbk/Inc_0_%U'
tag=Inc_0;
release channel ch1;}
1级增量备份:
run{
allocate channel ch1 type disk;
backup incremental level 1 database
format '/u01/bk/rmbk/Inc_1_%U'
tag=Inc_1;
release channel ch1;}
一个典型的增量备份案例:
星期天晚上 - level 0 backup performed
星期一晚上 - level 2 backup performed
星期二晚上 - level 2 backup performed
星期三晚上 - level 1 backup performed
星期四晚上 - level 2 backup performed
星期五晚上 - level 2 backup performed
星期六晚上 - level 2 backup performed
做到自动一周备份计划:
1.自动备份:备份脚本+crontab
三个脚本名字:
bakl0
bakl1
bakl2
2.执行脚本:
rman target / msglog=bak_0.log cmdfile=bakl0
rman target / msglog=bak_1.log cmdfile=bakl1
rman target / msglog=bak_2.log cmdfile=bakl2
脚本:
run{
allocate channel ch1 type disk; --备份到硬盘上,分配一个通道
backup incremental level 0 database --0级备份
format '/u01/bk/rmbk/Inc_0_%u_%T' --存放的位置
tag=Inc_0; --标签
release channel ch1; --释放通道
}