使用RMAN进行恢复 1、使用restore命令 读取备份文件里的数据块,根据数据块所属的数据文件,将这些数据块放回到相应的数据文件里
使用RMAN进行恢复
1、使用restore命令
读取备份文件里的数据块,根据数据块所属的数据文件,将这些数据块放回到相应的数据文件里面去,从而完成还原工作
2、使用recover命令
把那些从备份以来生成的归档日志文件以及联机重做日志文件应用到还原出来的数据文件上,从而把数据库从备份的时间点恢复到最新的或者指定的时间点。
完全恢复
1、分为归档和非归档模式,如果目标数据库是非归档模式,那么数据库需要在mount状态进行恢复
2、如果是归档模式,只要不是恢复系统表空间或undo表空间以及控制文件,而是恢复其他数据文件,数据库在打开的状态下就可以进行
如果控制文件和spfile都丢失,那么必须先还原spfile,再还原控制文件
启用了自动备份控制文件,且备份集位于闪回恢复区域
1、每次备份时,都会自动备份控制文件和spfile,并将这两种文件放在同一个备份集中。如果我们失去了spfile,则需要还原该文件,那么实例需要启动到nomount状态,控制文件可以不打开。
2、启动实例时,,我们需要借助一个参数文件,该参数文件的内容不要求很完整,只要能够将数据库启动到nomount状态即可。
控制文件和spfile所在的备份集位于闪回恢复区,该区域的文件名是随机生成的,因此,要从其中恢复spfile,必须仔细找到spfile所在的最新备份集。因为没有从控制文件中得到备份信息,因此需要手工的寻找spfile所在备份集的名字。
一般控制文件和spfile都在一个备份集中,而且文件比较小,大都比较小,一般在10M以下。找到备份集以后,执行命令进行恢复。
具体流程就是
1、寻找spfile和控制文件所在的备份集,然后恢复出来。
RMAN> restore spfile to ‘Your spfile path’ from ‘Your spfile backupset path’;
如果没有指定spfile的恢复路径,默认恢复到$Oracle_HOME/dbs目录中去.
还原控制文件和spfile的步骤都是一样的
1、找到spfile所在的路径
2、找到文件所在的备份集
3、使用命令restore spfile from ‘备份集的路径名称’
4、使用命令restore controlfile from ‘备份集的路径名称’
分为几种情况
1、启用了自动备份控制文件,而且备份集位于闪回恢复区
随便找一个ora文件将数据库启动到nomount状态,因为闪回恢复区的文件名字是数据库自己管理的,因此我们只能尝试着使用每一个备份片,使用restore进行恢复尝试。
2、启用了自动备份控制文件,且备份集位于不同的指定路径中,那么备份集的名字和路径一定是按照我们指定的format参数来命名的。
我们直接可以使用下面的命令进行恢复
获得dbid的方式有两种
1、通过自动备份控制文件的名字获得
2、通过mount数据库以后的select dbid from v$database
将spfile还原出来,然后转换成为pfile