简单和你说明白Oracle 的 Rman怎么恢复,用oracle用户恢复,创建文件夹的时候要用有权限的用户创建:
创建数据所需的文件夹 (看别人说可以查看spfile这个文件来确认,但是我恢复过程中发现按照这个文件创建的目录在恢复过程中还是会经常出现文件路径不存在的情况。所以建议大家有时间可以去生成环境把所有目录记录一下,以后恢复会比较方便)
为创建的文件夹目录授权(授权777是为了测试恢复方便,真实环境根据实际情况授权)
chmod -Rf 777 目录
恢复参数文件
在Linux命令行执行:
export ORACLE_SID=xxx --(xxx对应EAS的数据库名称)
cd $ORACLE_HOME/dbs --(打开数据库的dbs目录)
echo "db_name=xxx" > initxxx.ora --(将数据库名写入到启动文件中)
rman target / --(进入RMAN管理工具)
在RMAN管理器的操作:
startup nomount;
restore spfile from '/tmp/xx/spfile_xxxx'; --(恢复控制文件)
在Linux命令行执行:
sqlplus --(进入SQLPlus)
sys as sysdba 使用管理员登录数据库
create pfile from spfile; --(创建pfile文件,spfile属于二进制的看不出来,通过查看pfile文件可以确认恢复时需要目录,所以其实第一步也可以在进行这一步后,再进行)
恢复控制文件
在Linux命令行执行:
rman target /
shutdown immediate; --关闭数据库
startup nomount; --启动数据(这次是加载了上面参数文件的启动)
restore controlfile from '/tmp/xx/ctl_xxx'; --(恢复控制文件)
还原数据库
在Linux命令行执行:
rman target /
alter database mount; --启动数据
catalog start with '/数据库恢复文件目录'; --注册文件,后面会提示是否注册,输入YES后回车。
restore database; --还原数据库
恢复数据库
recover database; --执行,最后会告诉你scn 的值xxxxxx。
recover database until scn xxxxx; --根据上一个的恢复到达的位置进行修改
alter database open resetlogs; --打开数据
这样就可以恢复了,我的环境数据库名用的是easTest,安装数据库用的是默认的orcl。所以会时不时的执行export ORACLE_SID=xxx 这个。其实这个变量可以写入到oracle用户的环境变量中,或者数据库可以直接叫easTest,感觉这样应该会容易一些。
如果那里说的不对,请大家指出,我们一起学习交流。
推荐阅读