Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1981576
  • 博文数量: 148
  • 博客积分: 7697
  • 博客等级: 少将
  • 技术积分: 3071
  • 用 户 组: 普通用户
  • 注册时间: 2006-03-10 23:04
个人简介

MiBDP,数据开发、项目团队、数据应用和产品在路上,金融保险、互联网网游、电商、新零售行业、大数据和AI在路上。对数仓、模型、ETL、数据产品应用了解。DTCC 2013演讲嘉宾,曾做过两款大获好评的数据产品平台。知识星球ID:35863277

文章分类
文章存档

2020年(1)

2019年(2)

2017年(2)

2016年(5)

2015年(1)

2014年(1)

2013年(6)

2012年(5)

2011年(24)

2010年(28)

2009年(1)

2008年(6)

2007年(30)

2006年(36)

分类: Oracle

2007-07-19 12:10:39

用户管理的备份中数据文件没有备份损坏情况下的恢复测试。这种情况下要求数据库必须运行在归档模式下,并且所有的归档日志文件及重做日志文件都存在。

首先新建一个数据文件模拟数据文件丢失的情况:

ALTER TABLESPACE USERS

ADD DATAFILE 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\users02.dbf' SIZE 5120K REUSE AUTOEXTEND ON NEXT 1280K MAXSIZE 32767M;

SQL> alter table colin.emp

  2 allocate extent(size 100k datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF');

 

表已更改。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

利用操作系统命令

删除新建的数据文件D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\users02.dbf

这里我们就模拟了数据文件损坏/丢失的情况

 

我们再启动数据库,结果报错

SQL> startup

ORACLE 例程已经启动。

 

Total System Global Area  167772160 bytes

Fixed Size                  1247900 bytes

Variable Size              83887460 bytes

Database Buffers           79691776 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

ORA-01157: 无法标识/锁定数据文件 6 - 请参阅 DBWR 跟踪文件

ORA-01110: 数据文件 6: 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF'

 

查询动态视图查看需要恢复的文件

SQL> select * from v$recover_file;

 

     FILE# ONLINE  ONLINE_

---------- ------- -------

ERROR                                                                CHANGE#

----------------------------------------------------------------- ----------

TIME

--------------

         6 ONLINE  ONLINE

FILE NOT FOUND                                                             0

 

 

 

SQL> select * from v$recovery_log;

 

未选定行

这里相应的日志文件还没有生成。

下面我们开始恢复损坏/丢失的数据文件:

1)离线丢失的数据文件:

SQL> alter database datafile 6 offline;

 

数据库已更改。

2)重新打开数据库:

SQL> alter database open;

 

数据库已更改。

--这时数据库已打开,不要影响到其他的正常使用(其他无丢失损坏的文件)

3)重新创建损坏/丢失的数据文件:

SQL> alter database create datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF' as 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF';

 

数据库已更改。

4)恢复损坏/丢失的数据文件:(这里要用到相应的归档日志文件及重做日志文件)

SQL> recover datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF';

完成介质恢复。

5)最后再把相应的数据文件联机,就Ok~

SQL> alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF' online;

 

数据库已更改。

阅读(6740) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~