归档模式下的数据库完全恢复归档模式下的数据库完全恢复
12、数据库在归档模式下的完全恢复
在进行数据库的完全恢复时要进行如下的操作:
?将要恢复的文件和表空间设为脱机(offline),但是不包括系统表空间或活动的还原(回滚)表空间
?仅还原(Restore)损坏的或丢失的操作系统文件,不还原(Restore)其他的任何文件 ?恢复(recover)数据文件
其中“还原(Restore)”就是将原先备份的文件复制回去替换损坏或丢失的操作系统文件。 “恢复(Recover)”就是将使用recover命令将从备份操作完成开始到数据文件崩溃这段时间...
归档模式下的数据库完全恢复
12、数据库在归档模式下的完全恢复
在进行数据库的完全恢复时要进行如下的操作:
?将要恢复的文件和表空间设为脱机(offline),但是不包括系统表空间或活动的还原(回滚)表空间
?仅还原(Restore)损坏的或丢失的操作系统文件,不还原(Restore)其他的任何文件 ?恢复(recover)数据文件
其中“还原(Restore)”就是将原先备份的文件复制回去替换损坏或丢失的操作系统文件。 “恢复(Recover)”就是将使用recover命令将从备份操作完成开始到数据文件崩溃这段时间内所提交的数据从归档日志文件或重做日志文件协会到还原的数据文件中。这一操作会自动执行。
完全恢复的好处:
?在恢复时不需要关闭数据库
?所有的提交数据都可以恢复
?仅需要还原损坏的或丢失的数据文件
数据库在归档模式下的完全恢复有4种方法,下面我们对每一种方都进行操作一下。 在开始做恢复实验之前,我们认识一下recover命令的用法,Oracle提供了3中recover的用法:
?recover [automatic] database;该命令只能在数据库加载(mount)的状态下使用。 ?recover [automatic] tablespace “表空间号”|“表空间名”;该命令只能在数据库打开(open)状态下使用。
? recover [automatic] datafile “数据文件号”|“数据文件名”;该命令只能在数据库打开状态下使用。
一、 在数据库最初处于打开的状态下,进行数据库的恢复
这一种数据库恢复是指数据库的某一个或多个数据文件被删除,数据库处于打开状态下的恢复。
这种故障,我们一般是先想办法将数据库启动起来,然后再想办法恢复数据,原因是让那些没有损坏的数据文件尽快上线提供系统服务,减少系统宕机时间,减少损失。 1、 模拟环境搭建
//创建一个表空间ts1
SQL>create tablespace ts1 datafile „c:\disk1\ts1.dbf? size 10m autoextend on next 10m
maxsize unlimited;
2、备份要删除的表空间ts1
//备份表空间ts1,实际上就是备份表空间中的数据文件ts1.dbf SQL>alter tablespace ts1 begin backup; SQL>host copy c:\disk1\ts1.dbf c:\ SQL>alter tablespace ts1 end backup; 2、 关闭数据库,并删除数据文件ts1
//查看数据文件位置
SQL>select file_name,tablespace_name from dba_data_files;
//关闭数据库
SQL>shutdown immediate
删除数据文件
SQL>host del c:\disk1\ts1.dbf
3、 启动数据库
SQL>startup
发现数据库可以装载但不能打开,并报告数据文件6:„c:\disk1\ts1.dbf?锁定或无法标识。数据库无法打开。
4、 如果表空间中还有其他数据文件能正常使用,这时我们就将损坏的数据文件脱机 SQL>alter database datafile 6 offline;//将数据文件脱机
5、 将损坏的数据文件脱机后,就不会在影响数据库的打开了,现在打开数据库 SQL>alter database open;
6、 如果磁盘没有坏,将原有备份的数据文件拷回到原有磁盘上,如果磁盘坏了,我们就要
在选一个适当的磁盘,把数据文件拷贝到上面去,然后再将数据库数据文件改路径: ? 将数据文件ts1拷贝到e盘上
SQL>host copy c:\ts1.dbf e:
?数据文件改名
SQL>alter database rename file „c:\disk1\ts1.dbf? to „e:\ts1.dbf?;
7、 对数据文件ts1.dbf介质恢复
SQL>set autorecovery on
SQL>recover datafile 6;
8、 将数据文件ts1.dbf联机
SQL>alter database datafile 6 online; 9、 查询数据库状态
SQL>select file_name,tablespce_name from dba_data_files;
恢复完成
二、 在数据库最初处于关闭的状态下,进行开启数据库的恢复
这个恢复实验是在数据库系统表空间的系统数据文件system01.dbf遭到破坏后进行的恢复。
1、 将系统表空间的数据文件system01.dbf备份
SQL>alter tablespace system begin backup; SQL>host copy e:\oradata\orcl\system01.dbf c:\system01.dbf
SQL>alter tablespace system end backup; 2、 将数据库关闭,并删除system01.dbf
SQL>shutdown immediate
SQL>host del e:\oradata\orcl\system01.dbf 3、 启动数据库到mount状态,这是不能将数据文件system01.dbf设置为offline,因为它
是系统数据文件,只要它脱了机,数据库就根本无法启动。
SQL>startup mount
4、 将system01.dbf改名
SQL>alter database rename file „e:\oradata\orcl\system01.dbf? to
„c:\system01.dbf?;
5、 完成介质恢复
SQL>set autorecovery on
SQL>recover database;
6、 打开数据库
SQL>alter database open;
数据库恢复完成。
三、 恢复没有备份的数据库
1、 将数据文件ts1.dbf删除
SQL>shutdown immediate
SQL>host del e:\ts.dbf
2、 将数据库启动到mount状态
SQL>startup mount;
3、 将数据文件ts1.dbf脱机
SQL>alter database datafile „e:\ts1.dbf? offline;
4、 将数据库打开
SQL>alter database open;
//查看数据库恢复状态
SQL>select * from v$recover_file; 5、 创建数据文件的结构
SQL>alter database create datafile „e:\ts1.dbf?;;//重建与原有数据文件同名的文件 或:
//重建的数据文件名与原来的数据文件不同,这可能是原有的磁盘损坏的情况 SQL>alter database create datafile „e:\ts1.dbf? as „e:\oradata\ts1.dbf?; 6、 使用recover命令对数据文件进行恢复,这时一定要注意归档文件一定要在Oracle能够
访问到的磁盘上,不能放在磁带上,最好在归档日志文件定义的
内 //查看归档日志文件的目标位置
SQL>show parameter log_archive_dest_ SQL>set autorecovery on
SQL>recover datafile „e:\ts1.dbf?;
7、 将数据文件ts1.dbf联机
SQL>alter database datafile „e:\ts1.dbf? online;
数据库恢复完成。
四、 在关闭状态下进行的数据库的恢复
与第一种和第二种没有多大区别。
本文档为【归档模式下的数据库完全恢复】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。