博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
redo被删导致的各种问题处理12c
阅读量:2064 次
发布时间:2019-04-29

本文共 2165 字,大约阅读时间需要 7 分钟。

背景:某现场(oracle 12.2)所有redo文件(包括current、active等)被误删(redo的后缀被写成了.log)

1、恢复redo

startup mount

set lines 400 pages 9999

col MEMBER for a50

select v1.status, v1.group#, member, sequence#, first_change# from v$standby_log v1, v$logfile v2 where v1.group# = v2.group#;

image.png

alter database clear unarchived logfile group 1;

alter database clear unarchived logfile group 2;

alter database clear unarchived logfile group 3;

2、保证数据库能启动

设置scn激增:--event 10015已经无法实现scn激增,12.2可以使用event 21307096 来实现scn激增,level1为增加100万,level 3增加300万

show parameter event

备份spfile:create pfile from spfile;

alter system set event="21307096 trace name context forever, level 3" scope=spfile;

设置忽略一致性问题,强制打开数据库

alter system set "_allow_resetlogs_corruption" = true scope=spfile;

并将undo_management设为manual,redo损坏可能导致undo段有问题

alter system set undo_management=manual scope=spfile;

shutdown immediate

startup mount

alter database open resetlogs;

此时数据库报ora-00600 kcbzib_kcrsds_1错,且数据库自动down,需要重建控制文件,

startup mount

alter database backup controlfile to trace;

oradebug setmypid

oradebug tracefile_name

shutdown immediate

startup nomount

按照trace创建控制文件

CREATE CONTROLFILE REUSE DATABASE  ...

select member from v$logfile;

recover database using backup controlfile until cancel; --使用上述查询的某个redo文件

alter database open resetlogs;

3、undo新建

create undo tablespace undotbs2 *** --新建undo表空间

shutdown immediate

将pfile中的undo_tablespace=undotbs2

create spfile from pfile;

startup mount

show parameter undo

alter database open;

drop tablespace undotbs1 including contents and datafiles;

 

4、遗留问题处理

根据业务人员反馈,有个sql无法正常执行,报错如下

image.png

ora-00600 qosdDirRead: dircnt mismatch

搜了下mos,貌似是12.1的一个bug,在12.2中已经被修复,还有个文档

提SR解决的,但是这里通过另一种方法解决

经测试发现,库能正常写,只有在涉及某张表时会出现这个mismatch错误

准备重建此表恢复,但由于现场没有备份,数据泵也无法导出,只能尝试使用odu恢复此表

odu具体配置可参考或者

但此次unload table ossdb.IM_SERVICENO_SAP auto 时,抽取0行数据

image.png

但跟业务确认此表并不是空表,所以根据dba_objects中的DATA_OBJECT_ID(此情景下DATA_OBJECT_ID与OBJECT_ID不同,应该是表ddl过恢复

unload table ossdb.IM_SERVICENO_SAP object 144164

成功抽取出40万数据

 

以下语句得到表的定义:

set lines 400 pages 9999 long 99999;

select dbms_metadata.get_ddl('TABLE','IM_SERVICENO_SAP','OSSDB') from dual;

 

drop table OSSDB.IM_SERVICENO_SAP;

使用sqlldr导入40万条数据,查询正常不再报错

 

5、建议:redo的后缀取名为.dbf以防被误删

 

转载地址:http://llwmf.baihongyu.com/

你可能感兴趣的文章
剑指offer 57. 删除链表中重复的结点
查看>>
剑指offer 58. 链表中环的入口结点
查看>>
剑指offer 59. 把字符串转换成整数
查看>>
剑指offer 60. 不用加减乘除做加法
查看>>
leetcode 热题 Hot 100-3. 合并两个有序链表
查看>>
leetcode 热题 Hot 100-4. 对称二叉树
查看>>
Leetcode C++《热题 Hot 100-12》226.翻转二叉树
查看>>
Leetcode C++《热题 Hot 100-13》234.回文链表
查看>>
Leetcode C++《热题 Hot 100-14》283.移动零
查看>>
Leetcode C++《热题 Hot 100-15》437.路径总和III
查看>>
Leetcode C++《热题 Hot 100-17》461.汉明距离
查看>>
Leetcode C++《热题 Hot 100-18》538.把二叉搜索树转换为累加树
查看>>
Leetcode C++《热题 Hot 100-19》543.二叉树的直径
查看>>
Leetcode C++《热题 Hot 100-21》581.最短无序连续子数组
查看>>
Leetcode C++《热题 Hot 100-22》2.两数相加
查看>>
Leetcode C++《热题 Hot 100-23》3.无重复字符的最长子串
查看>>
Leetcode C++《热题 Hot 100-24》5.最长回文子串
查看>>
Leetcode C++《热题 Hot 100-26》15.三数之和
查看>>
Leetcode C++《热题 Hot 100-27》17.电话号码的字母组合
查看>>
Leetcode C++《热题 Hot 100-28》19.删除链表的倒数第N个节点
查看>>