節點一 alert日誌: PDB(17):Transaction recovery: lock conflict caught and ignored PDB(17):Transaction recovery: lock conflict caught and ignored PDB(17):Tra ...
節點一 alert日誌:
PDB(17):Transaction recovery: lock conflict caught and ignored
PDB(17):Transaction recovery: lock conflict caught and ignored
PDB(17):Transaction recovery: lock conflict caught and ignored
...
節點二: alert日誌
PDB(17):minact-scn: useg scan erroring out with error e:12751
PDB(17):minact-scn: useg scan erroring out with error e:12751
PDB(17):minact-scn: useg scan erroring out with error e:12751
...
起因:
分區表 表級nologging,分批四千萬數據並行插入,全表共6億多數據,導致死鎖,查詢
select 'alter system kill session '||chr(39)||t2.sid||','||t2.serial#||chr(39)||';'
from v$locked_object t1,v$session t2
where t1.session_id=t2.sid order by t2.logon_time;
alter system kill session '4843,29019';
...
全部是同一個會話,竟有3000多條記錄,
後採用殺會話的方式沒能釋放,又用kill -9 殺掉進程。隨後,alert日誌出現以上告警。
然後各種查資料...網上有說要dump數據快,技術有限,還好是壓力測試用的,等著慢慢恢復,停止此表數據的插入。
1.查看恢復時使用的回滾段
select b.name useg, b.inst# instid, b.status$ status, a.ktuxeusn
xid_usn, a.ktuxeslt xid_slot, a.ktuxesqn xid_seq, a.ktuxesiz undoblocks,
a.ktuxesta txstatus
from x$ktuxe a, undo$ b
where a.ktuxecfl like '%DEAD%'
and a.ktuxeusn = b.us#;
USEG INSTID STATUS XID_USN XID_SLOT XID_SEQ UNDOBLOCKS TXSTATUS
------------------------------ ---------- ---------- ---------- ---------- ---------- ---------- ----------------
_SYSSMU30_2947991045$ 1 3 30 10 50494 3572115 ACTIVE
2.查看恢復進度
select ktuxeusn USN, ktuxeslt Slot, ktuxesqn Seq, ktuxesta State, ktuxesiz Undo from x$ktuxe
where ktuxesta <> 'INACTIVE'
and ktuxecfl like '%DEAD%'
order by ktuxesiz asc;
USN SLOT SEQ STATE UNDO
---------- ---------- ---------- ---------------- ----------
30 10 50494 ACTIVE 2815649
等著慢慢恢復,一分鐘約一萬block的速度,6個小時3572115blocks。第二天觀察UNDO恢復正常了,告警也隨之消失。