在实际生产环境中,oracle的恢复方式大部分是异机恢复。
环境:
备份机:windows server2008,ip:192.168.20.56
恢复目标机:windows server2008,ip:192.168.20.55
CS、MA:windows server2012
1.恢复控制文件
1.1把恢复目标机的oracle启动到nomount模式
1.1.1 认识oracle的3种状态:
(1)NOMOUNT状态:
*数据库实例读取控制文件以了解数据库的基本信息
*尚未与任何数据库相关联,无法提供数据库服务
*可以执行一些操作,如创建数据库、修改参数文件等
(2)MOUNT状态:
*数据库实例已经成功连接到控制文件并获取了数据库的结构和配置信息。
*系统改变号(SCN)已经具体确定,并且数据库实例知道从哪个SCN开始进行恢复。
*可执行一些管理操作,如恢复数据库、修改数据库的结构等。
*用户不能直接访问数据库中的数据,因为数据文件尚未加载到内存中。
(3)OPEN状态:
*数据库实例已经成功加载了数据文件和日志文件的内容,并使其在内存中可用
*用户可以正常访问和操作数据库
*数据库可以接收用户的查询和事务请求,并返回相应的结果
*数据库实例可以执行完整的事务处理,包括读取、写入和修改数据。
使用cv备份oracle要在open状态下进行
1.1.2 状态切换方式
(1)查看oracle状态方法
在默认情况下,oracle数据库是处于open状态的。
#在cmd控制台输入以下语句,以sysdba用户身份登录oracle
sqlplus / as sysdba
#在sql界面中输入以下语句,可以查看oracle状态(不要忘了分号)
select status from v$instance;
(2)切换至nomount状态
sqlplus / as sysdba
#在sql界面中输入以下语句
startup nomount;
#如果提示“无法启动已经运行的oracle”,则需要先关闭oracle。输入下面的语句关闭oracle
shutdown immediate
#关闭后,再在sql界面输入startup nomount;
(3)切换至mount状态
sqlplus / as sysdba
shutdown immediate
startup mount;
也可以通过下列命令直接从nomount状态切换到mount状态:
alter database mount;
1.2调整恢复参数,恢复控制文件
1.2.1将ctrl文件自动备份设置为开
右击备份机实例,选择属性
在详细信息一栏中将ctrl文件自动备份设置为开
1.2.2恢复控制文件设置
右击备份机实例下的默认子客户端,点击恢复
在弹出的选项界面中点击查看内容
直接勾选实例ORCL,然后点击恢复全部所选
在弹出的恢复选项界面中进行如下图的设置:
*目标客户端选择恢复目标机(20.55)
*恢复目标机如果成功处于nomount状态,则左下角的状态就是已启动
接着,点击上图中的高级,进行如下设置
上图中的切换数据库模式以恢复的作用是,在恢复完控制文件后,可以自动把恢复目标机切换到mount模式
设置完成后,点击ok,进行恢复即可
*2.将恢复目标机的实例路径下的文件移走
进入下图所示的路径下,将其中的所有文件移动到新建的backup1文件夹下
这一步是为了看清哪些文件是新恢复过来的。如果没做这一步,新恢复的文件也会覆盖原文件
3.恢复数据文件
3.1把目标恢复机切换到mount模式
如果在恢复控制文件的过程中勾选了切换数据库模式以恢复,那么就不用手动切换为mount模式
3.2恢复选项设置
恢复目标机处于mount状态的标识是已装载
然后点击高级,进行如下设置:
点击ok后,等待恢复即可。
|指定scn号恢复:
oracle的每次备份任务都会产生一个对应的scn号,在进行恢复时就可以根据不同的scn号选择不同时间点的oracle进行恢复。
在上述的恢复过程中,是使用最新的scn号进行备份的,但如果有特殊需求,也可以恢复指定scn的备份。
如果想要指定scn号进行恢复,可以在备份机上,输入以下命令查看备份任务的scn号
#在cmd中键入下述命令进入rman
rman target /
#在rman中键入下列命令查看scn号
list backup;
上图中红框内就是2个不同时间点的scn号
恢复时步骤都与之前所述相同,只需把scn号填入下图所示的位置里,而不是勾选最新scn号