oracle怎么恢复bkp⽂件,OracleRMAN还原与恢复(⼀)--还原
服务器参数⽂件
⼀. RMAN 还原与恢复基础
在RMAN ⽤于中,还原与恢复是两个不同的概念。
还原(restore):指访问先前⽣成的备份,从中得到⼀个或多个对象,然后在磁盘上的某个位置还原这些对象。
恢复(recover):是⼀个数据库与给定时间点相⼀致以保证能够打开这个数据库的实际进程,该进程通常是通过应⽤重做(包括联机重做⽇志和归档的重做⽇志)来完成的。
数据库中的数据状态对数据库是⾮常重要的,在数据库启动时要求数据与给定的时间状态⼀致。 如果数据库是⼀致的,就可以打开这个数据库,如果不⼀致,就不能打开。 通过使⽤回滚段,就可以在启动和运⾏数据库时保持这种⼀致性。 正常关闭数据库时,数据⽂件会再⼀次⼀致。
Oracle 严格要求数据的⼀致性。 当我们在恢复数据⽂件后重新启动数据库时,Oracle 会检测这些数据⽂件是否状态不⼀致。 Oracle 会跟踪每个数据库数据⽂件头中的当前SCN和控制⽂件中的当前SCN。
打开数据库时,Oracle 要经历3个阶段: 未加载,加载和打开。 数据库启动进⼊打开阶段时,Oracle 会开始尝试打开这个数据库。 在尝试打开数据库的时候,Oracle 检测控制⽂件中的SCN以及每个数据⽂件中的SCN,如果这些SCN 不匹配,Oracle 就会知道数据库存在某些错误并且处于不⼀致的状态。
如果发现数据库是不⼀致的。 Oracle 就需要判断是否能够基于联机重做⽇志来恢复这个数据库,或者是否需要归档的重做⽇志来完成恢复操作。 如果Oracle 能够使⽤联机重做⽇志来执⾏恢复操作,它就会执⾏灾难恢复(或者在RAC 环境中执⾏实例恢复操作)。 如果Oracle 不能使⽤联机重做来确保数据库的⼀致性,它就会停⽌启动进程,通知报告需要执⾏介质恢复操作。
⼆. RMAN 还原与恢复前的操作
百度数据恢复启动数据库恢复时,我们必须先恢复服务器参数⽂件,然后恢复控制⽂件。
补充知识: 先对控制⽂件和spfile的备份的知识做下回顾:
当我们修改为⾃动备份后,在每次备份之后都会⾃动备份控制⽂件和初始化pfile.
RMAN> show all;
CONFIGURE CONTROLFILE AUTOBACKUP ON; -- 该参数默认是关闭的
RMAN> backup database;
......
启动 Control File and SPFILE Autobackup 于 25-6⽉ -10
段 handle=D:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/ORCL/AUTOBACKUP/2010_06_25/O1
_MF_S_722604317_6288DYQF_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 25-6⽉ -10
配置控制⽂件和参数⽂件的⾃动备份时的⼀些规则:
(1) 在RUN 程序块之外执⾏每个RMAN的backup 或者 copy 命令时,都会⾃动备份控制⽂件和参数⽂件。
(2) 使⽤使⽤了RUN 程序块,⽽且该程序块的最后⼀个命令不是backup 或者copy,在RUN 程序块结尾处会备份控制⽂件和参数⽂件。
除了上⾯2种⾃动控制⽂件备份类型,我们还可以配置另⼀种特殊的控制⽂件备份类型。该类型发⽣在数据库变化时,这些变化包括添加新的表空间,添加数据⽂件,添加联机重做⽇志等。 这些⾃动备份类型只在磁盘上发⽣,使⽤configure controlfile autobackup命令的特殊选项可以简化备份。如:
Configure controlfile autobackup format for device type disk to 'd:/backup/sid_%F';
使⽤了该选项,RDBMS 会在数据结构的变化控制⽂件产⽣影响时⾃动备份控制⽂件。强调⼀点,只⽀持磁盘。
⼿动的备份控制⽂件
Alter database backup controlfile to 'd:/backup/l';
⼿⼯备份spfile:
RMAN> backup spfile ;
启动 Control File and SPFILE Autobackup 于 26-6⽉ -10
段 handle=D:/APP/ADMINISTRATOR/FLASH_RECOVERY_AREA/ORCL/AUTOBACKUP/2010_06_26/O1
_MF_S_722706435_62CD44SN_.BKP comment=NONE
完成 Control File and SPFILE Autobackup 于 26-6⽉ -10
三、还原服务器参数⽂件
1、使⽤RMAN(不使⽤FRA)从⾃动备份中恢复服务器参数⽂件
ORACLE 会默认地在$ORACLE_HOME/dbs 或者 $ORACLE_HOME/DATABASE ⽬录中创建服务器参数⽂件与控制⽂件。
还原服务器参数⽂件的⼀般过程是先设置ORACLE_SID 和 登陆 RMAN, 然后设置DBID, 使RMAN知道需要查哪⼀个数据库的服务器参数⽂件,还必须在这个操作的同时启动数据库实例。
启动数据库实例后,如果使⽤默认的位置来存储控制⽂件的⾃动备份,就可以简单的执⾏:Restore spfile from autobackup, 这样RMAN 就可以查包含最新服务器参数备份的控制⽂件备份集。 ⼀旦恢复了服务器参数⽂件,就必须关闭重启数据库实例。如果使⽤的是⾮默认位置,就需要分配⼀个指向该位置的通道,然后在使⽤相同的⽅法来还原服务器参数⽂件。
执⾏ restore spfile from autobackup 命令时,Oracle 会在默认位置中(或者在使⽤allocate channel 命
令定义的为位置中)查⾃动的控制⽂件备份集。 RMAN 创建控制⽂件⾃动备份⽚时,会使⽤默认的命名约定: C-DBID-DATE-序列号。 如:C-1247395743-2010627-00。 注意的是, 这种命名规则不适⽤于FRA。
需要注意的是,如果没有使⽤恢复⽬录(并且没有使⽤控制⽂件,这是可能的),Oracle 就不知道最新控制⽂件备份⽚的名称,因此Oracle 会基于这些备份集的默认命名标准来构造控制⽂件备份⽚的名称。 Oracle 会遍历整个⽬录,向后查数据库的控制⽂件备份集。 在默认情况下,Oracle 会查⼀个在过去10天内创建的控制⽂件备份集。 如果Oracle 美欧查到指定时间周期内创建的控制⽂件备份集,就会产⽣⼀个错误。 如果Oracle 发现⼀个有效的控制⽂件备份集,就会为⽤户还原服务器参数⽂件。
使⽤restore 命令的maxseq 和 maxdays 参数可以修改RMAN 向后查控制⽂件⾃动备份的时间周期。
使⽤默认设置的⽰例:
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
restore spfile from autobackup;
shutdown immediate;
不使⽤默认设置的⽰例:
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
run
{
set controlfile autobackup format for device type disk to 'f:/backup/%f';
allocate channel c1 device type disk;
restore spfile from autobackup;
}
shutdown immediate;
使⽤maxseq 和 maxdays 参数在超过默认天数(10天)的时间周期内向后查控制⽂件备份集:
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
run
{
set controlfile autobackup format for device type disk to 'f:/backup/%f';
allocate channel c1 device type disk;
restore spfile from autobackup maxseq 200 maxdays 1000;
}
shutdown immediate;
将参数⽂件还原到不同的位置和⽂件中的⽰例(假定数据库正在启动和运⾏):
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
restore spfile to 'f:/store' from autobackup;
shutdown immediate;
2、使⽤RMAN 和 FRA 从⾃动备份中恢复服务器参数⽂件
使⽤FRA 恢复参数⽂件⽐不使⽤FRA 简单。 ⾸先,我们不需要担⼼DBID 没有意义,也不⽤操⼼分配通道的⼯作,这就节省了⼀定的时间。 恢复服务器参数⽂件时,我们只需要正确配置临时参数⽂件(确保适当的设置FRA⽬标⽬录),启动ORACLE 实例,并且执⾏restore spfile 命令。
set oracle_sid=orcl
rman target sys/pwd
startup nomount;
restore spfile from autobackup;
shutdown immediate;
3、从特定的备份集中恢复服务器参数⽂件
在Oracle 10g中, restore 命令包含了⼀个from backup⼦句, 使⽤该⼦句可以指⽰包含服务器参数⽂件的备份的备份集⽚。 因此,只需要知道该备份集⽚的名称和它的位置,就可以还原服务器参数⽂件。 在某些情况下,查包含服务器参数⽂件备份的备份集⽚可能存在⼀些困难,但⼀旦到了该备份集⽚,还原⼯作就会⾮常简单,当然,最好还原最新的控制⽂件备份。
为了还原服务器参数⽂件,⾸先要启动数据库实例并标识包含服务器参数⽂件备份的备份集⽚(或者进⾏猜测)。 接着启动RMAN,然后设置数据库饿DBID。 ⼀旦设置了DBID,就需要分配通道给要还原的设备。 分配通道后,执⾏restore spfile 命令,在命令的末尾传⼊备份集⽚的名称。 于是RMAN 将服务器参数还原到正确的位置。
set oracle_sid=orcl
rman target sys/pwd
set dbid=1247395743
startup nomount;
run
{
allocate channel c1 device type disk;
restore spfile from 'f:/backup/c-1247395743-2010627-00';
}
shutdown immediate;
4、使⽤恢复⽬录恢复服务器参数⽂件
如果使⽤了恢复⽬录,在启动(未加载)ORACLE 实例后简单执⾏restore spfile 命令就可以还原最新的服务器参数⽂件。 RMAN 会使⽤恢复⽬录出最新的控制⽂件备份,并析取这个备份以供⽤户使⽤。
set oracle_sid=orcl
rman target sys/pwd catalog user/pwd@sid
startup nomount;
restore spfile from autobackup;
shutdown immediate;
5、使⽤联机操作的数据库还原备份的服务器参数⽂件
不管是否使⽤控制⽂件或恢复⽬录,在数据库启动时从数据库备份中析取服务器参数⽂件的副本是⾮常容易的。 我们应当注意到这个操作会⽣成⼀个⽂本参数⽂件,⽽不是⽣成⼀个服务器参数⽂件。 因此如果要将这个⽂本参数⽂件⽤作服务器参数⽂件,就必须转换该⽂件。
如果不是使⽤恢复⽬录并且控制⽂件的⾃动备份已经启动,只需要执⾏下⾯的命令:
RMAN>RESTORE SPFILE TO PFILE 'D:/BAKCUP/ORCL.ORA' FROM AUTOBACKUP;
对于任何⾃动备份的还原操作来说,如果不提供maxseq 和maxdays 参数值,RMAN 只需要查过去7天内⽣成的控制⽂件的⾃动备份⽚。
如果没有使⽤恢复⽬录与控制⽂件⾃动备份,或者是在使⽤恢复⽬录,就可以执⾏:
RMAN>RESTORE SPFILE TO PFILE 'D:/BACKUP/ORCL.ORA';
这种情况下,Oracle 会使⽤数据库控制⽂件到最新的备份集,并从这个备份集中还原服务器参数⽂件。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论