一、RMAN备份特点
Oracle提供的recovery manager工具简称RMAN。
极大简化我们的备份工作
1.备份数据文件、归档日志、控制文件、spfile
2.自动维护备份相关的元数据,例如备份文件的名称,完成备份的SCN号
3.以数据块为单位进行备份,只备份使用过的数据块
4.对备份出来的文件进行压缩
5.自动检测数据库是否损坏
6.支持增量备份
......
二、RMAN配置
连接数据库
sqlplus / as sysdba
archive log list;
该指令查询的结果可知当前数据库并没有开归档。下面将对数据库开启归档:
首先对数据库该参数
从参数列表中选择对”log_archive_dest_1 “参数进行修改
执行命令
shutdown immediate
startup mount
将数据库一致性关闭后重新开启到mount阶段。
执行命令
alter database archivelog;
将数据库开启归档模式。
再执行
alter database open;
将数据库正常开启。
此时再次查看可发现数据库已开启归档模式,如图:
这时已经可以使用rman了
三、RMAN参数设置
RMAN参数列表
- 配置数据库备份留几份,留多长时间下面参数决定。默认为1.
CONFIGURE RETENTION POLICY TO REDUNDANCY
将该参数改为2如下:
- 配置磁盘类型备份文件或磁带类型备份文件由下面参数决定。DISK表示常用的磁盘库
CONFIGURE DEFAULT DEVICE TYPE TO DISK;
- 配置控制文件自动备份由下面参数决定。
CONFIGURE CONTROLFILE AUTOBACKUP
开启后只要rman做备份都会在Oracle home的dbs文件下面生成对应的控制文件。
- 配置设备类型是磁盘的开多少个并发 注意:并发数量不要超过CPU核数
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO BACKUPSET;
四、RMAN全库备份当前数据库
首先,写个脚本
#!/bin/bash
export ORACLE_SID=orcl
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'
echo '--------------------------------'>>/tmp/rman_PROD4_full.log
echo 'Start FULL Backup at ''date +%Y-%m-%d:%H:%M:%S' >>/tmp/rman_PROD4_full.log
echo '--------------------------------'>>/tmp/rman_PROD4_full.log
rman target / nocatalog log /tmp/rman_PROD4_full.log append<<EOF
run{
allocate channel c1 type disk;
allocate channel c2 type disk;
allocate channel c3 type disk;
backup database format '/home/oracle/bak/full_%d_%T_%s_%p';
SQL 'alter system archive log current';
SQL 'alter system archive log current';
backup archivelog all delete input format '/home/oracle/bak/arch_%d_%t_%s_%p';
backup current controlfile format '/home/oracle/bak/ctl_%d_%T_%s_%p';
backup spfile format '/home/oracle/bak/%d_%U.spfile';
}
EOF