Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2013408
  • 博文数量: 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-08-03 13:13:36

今天在做用户管理备份的不完全恢复操作时,由于马虎在数据库打开的情况下restore数据文件,导致在后来的recover时出现错误(在重建日志的情况下打开数据库没响应,然后就强制关闭数据库)以下是错误现场及解决的方法

DB version:102010  Os: Win Xp Sp2

现场:[CODE]

SQL> shutdown immediate;

ORA-01109: 数据库未打开

 

 

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount;

ORACLE 例程已经启动。

 

Total System Global Area  209715200 bytes

Fixed Size                  1248164 bytes

Variable Size              71304284 bytes

Database Buffers          134217728 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

恢复数据库报错~前面我重建了日志文件强制关闭了数据库

SQL> recover database;

ORA-00283: 恢复会话因错误而取消

ORA-00600: 内部错误代码, 参数: [3020], [2], [1715], [8390323], [], [], [], []

ORA-10567: Redo is inconsistent with data block (file# 2, block# 1715)

ORA-10564: tablespace UNDOTBS1

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

ORA-10560: block type 'KTU UNDO BLOCK'

--600oracle内部经常出现的一个错误,错误原因很多

 [/CODE]

下面是alert日志内容

[COLOR=red]alert.log日志[/COLOR]

[CODE]

Database mounted in Exclusive Mode

Completed: ALTER DATABASE   MOUNT

Thu Aug 02 14:44:47 2007

ALTER DATABASE RECOVER  database 

Thu Aug 02 14:44:47 2007

Media Recovery Start

Thu Aug 02 14:44:48 2007

Recovery of Online Redo Log: Thread 1 Group 2 Seq 2 Reading mem 0

  Mem# 0 errs 0: D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\REDO02.LOG

Thu Aug 02 14:44:51 2007

Errors in file d:\oracle\product\10.2.0\admin\colin\udump\colin_ora_2684.trc:

ORA-00600: 内部错误代码, 参数: [3020], [2], [1715], [8390323], [], [], [], []

ORA-10567: Redo is inconsistent with data block (file# 2, block# 1715)

ORA-10564: tablespace UNDOTBS1

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

ORA-10560: block type 'KTU UNDO BLOCK'

[/CODE]

再查看相应的trc跟踪文件colin_ora_2684.trc:

 

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

查了相关的文档后考虑使用基于撤销的恢复尝试恢复

解决:

SQL> shutdown immediate;

ORA-01109: 数据库未打开

 

 

已经卸载数据库。

ORACLE 例程已经关闭。

 

把所有的冷备文件拷贝到目标位置

 

SQL> startup mount;

ORACLE 例程已经启动。

 

Total System Global Area  209715200 bytes

Fixed Size                  1248164 bytes

Variable Size              71304284 bytes

Database Buffers          134217728 bytes

Redo Buffers                2945024 bytes

数据库装载完毕。

 

下面是使用基于取消的恢复,使用备份控制文件从联机备份中恢复

SQL> recover database until cancel using backup controlfile;

ORA-00279: 更改 1057512 ( 08/02/2007 10:20:57 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\2007_08_02\O1_MF_1_11_%U_.ARC

ORA-00280: 更改 1057512 (用于线程 1) 在序列 #11

 

 

指定日志: {=suggested | filename | AUTO | CANCEL}

auto

ORA-00279: 更改 1057867 ( 08/02/2007 11:42:15 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\2007_08_02\O1_MF_1_1_%U_.ARC

ORA-00280: 更改 1057867 (用于线程 1) 在序列 #1

 

 

ORA-00279: 更改 1078070 ( 08/02/2007 11:48:43 生成) 对于线程 1 是必需的

ORA-00289: 建议: D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\2007_08_02\O1_MF_1_2_%U_.ARC

ORA-00280: 更改 1078070 (用于线程 1) 在序列 #2

ORA-00278: 此恢复不再需要日志文件 'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\2007_08_02\O1_MF_1_1_3C2O0XVP_.ARC'

 

 

ORA-00308: 无法打开归档日志 'D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\2007_08_02\O1_MF_1_2_%U_.ARC'

ORA-27041: 无法打开文件

OSD-04002: 无法打开文件

O/S-Error: (OS 2) 系统找不到指定的文件。

--接下来在重建日志方式下打开数据库

SQL> alter database open resetlogs;

 

数据库已更改。

这里一定要使用重建日志的方式打开数据库

SQL> archive log list;

数据库日志模式            存档模式

自动存档             启用

存档终点            USE_DB_RECOVERY_FILE_DEST

最早的联机日志序列     0

下一个存档日志序列   1

当前日志序列           1

汉!还好恢复回来了,赶快来个全库备份吧(本来也是需要的因为我们重建了所有的日志)

RMAN> run {

2> allocate channel d1 type disk;

3> backup database format 'd:\dfbak\%d_%s_%T.bak';

4> backup format 'log_%d_%s_%_T'

5> (archivelog all delete all input);

6> release channel d1;

7> }

 

分配的通道: d1

通道 d1: sid=142 devtype=DISK

 

启动 backup 02-8 -07

通道 d1: 启动全部数据文件备份集

通道 d1: 正在指定备份集中的数据文件

输入数据文件 fno=00001 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\SYSTEM01.DBF

输入数据文件 fno=00003 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\SYSAUX01.DBF

输入数据文件 fno=00005 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\EXAMPLE01.DBF

 

输入数据文件 fno=00002 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\UNDOTBS01.DBF

 

输入数据文件 fno=00004 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS01.DBF

输入数据文件 fno=00006 name=D:\ORACLE\PRODUCT\10.2.0\ORADATA\COLIN\USERS02.DBF

通道 d1: 正在启动段 1 02-8 -07

通道 d1: 已完成段 1 02-8 -07

段句柄=D:\DFBAK\COLIN_15_20070802.BAK 标记=TAG20070802T171405 注释=NONE

通道 d1: 备份集已完成, 经过时间:00:02:05

通道 d1: 启动全部数据文件备份集

通道 d1: 正在指定备份集中的数据文件

备份集中包括当前控制文件

在备份集中包含当前的 SPFILE

通道 d1: 正在启动段 1 02-8 -07

通道 d1: 已完成段 1 02-8 -07

段句柄=D:\DFBAK\COLIN_16_20070802.BAK 标记=TAG20070802T171405 注释=NONE

通道 d1: 备份集已完成, 经过时间:00:00:05

完成 backup 02-8 -07

 

启动 backup 02-8 -07

当前日志已存档

通道 d1: 正在启动存档日志备份集

通道 d1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =1 记录 ID=5 时间戳=628284564

................................................................................................................

 

通道 d1: 正在启动段 1 02-8 -07

通道 d1: 已完成段 1 02-8 -07

段句柄=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\LOG_COLIN_17_%_T 标记=TAG20070802T

171627 注释=NONE

通道 d1: 备份集已完成, 经过时间:00:00:27

通道 d1: 正在删除存档日志

存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\20

07_07_18\O1_MF_1_1_39VYDKYF_.ARC 记录 ID=5 时间戳 =628284564

.........................................................

 

通道 d1: 正在启动存档日志备份集

通道 d1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =9 记录 ID=1 时间戳=628251497

输入存档日志线程 =1 序列 =10 记录 ID=2 时间戳=628251661

输入存档日志线程 =1 序列 =11 记录 ID=3 时间戳=628251700

输入存档日志线程 =1 序列 =12 记录 ID=4 时间戳=628273330

通道 d1: 正在启动段 1 02-8 -07

通道 d1: 已完成段 1 02-8 -07

段句柄=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\LOG_COLIN_18_%_T 标记=TAG20070802T

171627 注释=NONE

通道 d1: 备份集已完成, 经过时间:00:00:05

通道 d1: 正在删除存档日志

存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\20

07_07_18\O1_MF_1_9_39TY38F9_.ARC 记录 ID=1 时间戳 =628251497

.......................................................

 

通道 d1: 正在启动存档日志备份集

通道 d1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =1 记录 ID=18 时间戳=629572586

通道 d1: 正在启动段 1 02-8 -07

通道 d1: 已完成段 1 02-8 -07

段句柄=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\LOG_COLIN_19_%_T 标记=TAG20070802T

171627 注释=NONE

通道 d1: 备份集已完成, 经过时间:00:00:03

通道 d1: 正在删除存档日志

存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\20

07_08_02\O1_MF_1_1_3C3879YP_.ARC 记录 ID=18 时间戳 =629572586

通道 d1: 正在启动存档日志备份集

通道 d1: 正在指定备份集中的存档日志

输入存档日志线程 =1 序列 =1 记录 ID=16 时间戳=629570587

输入存档日志线程 =1 序列 =2 记录 ID=17 时间戳=629570588

通道 d1: 正在启动段 1 02-8 -07

通道 d1: 已完成段 1 02-8 -07

段句柄=D:\ORACLE\PRODUCT\10.2.0\DB_1\DATABASE\LOG_COLIN_20_%_T 标记=TAG20070802T

171627 注释=NONE

通道 d1: 备份集已完成, 经过时间:00:00:02

通道 d1: 正在删除存档日志

存档日志文件名 =D:\ORACLE\PRODUCT\10.2.0\FLASH_RECOVERY_AREA\COLIN\ARCHIVELOG\20

.....................................................

 

完成 backup 02-8 -07

 

释放的通道: d1

 

RMAN>

 

 

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