oracle全库备份恢复详细步骤 oracle数据库备份与恢复

Oracle数据库非常强大 , 有其自己的备份与恢复机制 , 并且细分 , 只要配置合理 , 完全可以保证数据库的完整 , 免去运维人员的后顾之忧 。
Oracle 数据库使用 RMAN 备份 , 需要把数据库的非归档模式改成归档模式 。
数据库的备份
一、更改数据库的归档模式需要重新启动数据库 , 在 mount 模式下修改(三种启动模式 nomount—mount— open) 。
具体步骤如下:
1、进入数据库后 , 关闭数据库
SQL>shutdown immediate
2、启动数据库到 mount 状态
SQL>startup mount
3、改变数据库为归档模式
SQL>alter database archivelog;(归档改为非归档语句为 alter database noarchivelog;)
4、验证方式
SQL>alter database open;(打开数据库)
SQL>archive log list

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


二、启动控制文件的自动备份
RMAN>configure controlfile autobackup on;
RMAN>show controlfile autobackup ;(验证)

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


三、全库备份
3.1 最简单的全库备份
RMAN>backup database;
RMAN>list backup;(验证)
RMAN>list backup summary;(验证)
四、脚本备份
4.1 查看 linux 系统oracle用户的环境变量 , 从而知道需要备份数据库的名称和实例
$ cat /home/oracle/.bash_profile
主要看 ORACLE_SID=orcl

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


4.2 在 RMAN 中设置冗余数(备份的次数 , 根据需要 , 一次备份的数据大小 , 备份的磁盘空间大小来决定) 。
$ rman target/
RMAN>configure retenticn policy to redundancy 10;(这里设置为 10 次)
4.3 规划备份的目录
/usr/local/oradata/orcl/RmanBackup , 如果没有 , 创建即可 , 这里需要注意这个文件夹必须属于 oracle 用户 。
4.4 全量备份脚本如下图
这个 0 级全量备份脚本需要在 oracle 用户下执行 , 并且需要把脚本 chmod 为 775 权限 。

oracle全库备份恢复详细步骤 oracle数据库备份与恢复



oracle全库备份恢复详细步骤 oracle数据库备份与恢复


export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 0 tag ‘db0’ format
‘/usr/local/oradata/orcl/RmanBackup/db0_%d_%U’ database include current controlfile;
delete noprompt obsolete;
release channel c1;
}
#end
把以上脚本放置到 crontab 中 , 可以设置自动执行 。
4.3 增量备份脚本

oracle全库备份恢复详细步骤 oracle数据库备份与恢复


export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin:$HOME/bin
rman target/ << EOF_RMAN
run{
allocate channel c1 type disk;
backup incremental level 1 tag ‘db1’ format
/usr/local/oradata/orcl/RmanBackup/db1_%d_%T_%s’ database include current controlfile;
delete noprompt obsolete;
release channel c1;
}
#end
Oracle 数据库的恢复(一)

推荐阅读