数据库误操作数据恢复.pdf
数据库人为误操作处理
1.故障等级:
三级
2.故障现象描述:
误操作导致业务逻辑发生错误,需要从业务侧予以发现。
3.影响范围:
需要使用到该数据的相关业务。
4.故障定位需要时间
根据误操作报告时间确定
5.故障定位参考
人为操作无报错信息,以操作人员报告或bug发现为准。
6.故障处理时间预估
视具体情况120分钟至200分钟不等。
7.处置方式:
可操作,需要额外设备支持
8.处置手册:
针对误操作的种类及误操作距当前时间是否超过undo_retention参数限定的
时间,可分为3中处理方式,分别为,由于前两种方式比较简单,无需异地
恢复,因此当误操作发生时应尽告并及时处理:
1)已知SQL(UPDATE)未超过undo_retention
使用回滚段闪回将整张表还原至修改前,例如被修改的表为jun_objects。
查找修改时间
selectSQL_TEXT,to_char(LAST_ACTIVE_TIME,yyyy-mm-ddhh24:mi:ss)
fromv$sqlareawhereSQL_TEXTlikeupdatejun%;
SQL_TEXTTO_CHAR(LAST_ACTIVE
updatejun_objectssetOBJECT_ID=66662012-11-0910:50:49
开启行迁移,将表回复至修改前
SQLaltertableorderenablerowmovement;
SQLflashtablejun_objectstotimestampto_timestamp(2012-11-0910:45:00,yyyy-mm-dd
hh24:mi:ss);
或者通过在回滚段中的记录更新表。
SQLselectOBJECT_IDfromjun_objectsasoftimestampto_timestamp(2012-11-09
10:45:00,yyyy-mm-ddhh24:mi:ss)whererownum10;
OBJECT_ID
20
44
28
9rowsselected.
2)误drop表,没有超过undo_retention
SQLdroptableJUN_OBJECTS_DROP;
Tabledropped.
SQLselectTABLE_NAMEfromuser_tables;
TABLE_NAME
JUN_OBJECTS
SQLSELECT*FROMTAB;
TNAMETABTYPECLUSTERID
JUN_OBJECTSTABLE
BIN$zgh/fNHty2XgQAIKIKlC7Q==$0TABLE
SQLFLASHBACKTABLEJUN_OBJECTS_DROPTOBEFOREDROP;
Flashbackcomplete.
3)已知SQL(UPDATE,DROP),超过undo_retention,采用异地恢复方式
尽可能找到可恢复的时间点
SELECTsample_time,