達(dá)夢(mèng)數(shù)據(jù)庫(kù)報(bào)錯(cuò):回滾記錄版本太舊,無(wú)法獲取用戶記錄-創(chuàng)新互聯(lián)

現(xiàn)象描述

我們?cè)谶M(jìn)行一個(gè)大的查詢的時(shí)候,往往會(huì)碰到這個(gè)錯(cuò)誤:

創(chuàng)新互聯(lián)建站堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的華坪網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

回滾記錄版本太舊,無(wú)法獲取用戶記錄

達(dá)夢(mèng)數(shù)據(jù)庫(kù)報(bào)錯(cuò): 回滾記錄版本太舊,無(wú)法獲取用戶記錄

碰到這種問(wèn)題,我們?cè)趺唇鉀Q呢?

有三個(gè)方法

?   擇機(jī)執(zhí)行

?   適當(dāng)調(diào)整 undo_retention

?   考慮啟用 ENABLE_IGNORE_PURGE_REC 參數(shù)

處理方法

處理方法一:

在涉及到的數(shù)據(jù),無(wú)人改動(dòng)時(shí),執(zhí)行對(duì)應(yīng)的操作(查詢,或者查詢建表等),

可以簡(jiǎn)單理解為(不是對(duì)等的情況,但是可以大概這么理解):在你執(zhí)行這個(gè)語(yǔ)句開始后,數(shù)據(jù)被其他人修改,而且提交了。數(shù)據(jù)庫(kù)保留了一份最新的值,這是修改后的值,基于事務(wù)可見性,你執(zhí)行的那個(gè)語(yǔ)句,是在修改之前開始的,不應(yīng)該查詢到被修改的數(shù)據(jù)。你應(yīng)該查詢到的是,修改之前的數(shù)據(jù) —— 這時(shí)候,修改過(guò)的舊值,就在回滾段里。

但是,數(shù)據(jù)庫(kù)不是一個(gè)可以無(wú)限存儲(chǔ)的機(jī)器啊,在回滾段里面的值,對(duì)應(yīng)的事務(wù)已經(jīng)提交的情況下,它本應(yīng)該可以被清理了,但是為了 我們當(dāng)前執(zhí)行的這類查詢不報(bào)錯(cuò),我們也需要適當(dāng)留一留。

那么,留多久,有一個(gè) undo_retention 的參數(shù) 決定,2017 年往后的版本,默認(rèn)值是 300s 了(以前默認(rèn)是 900s )

如何查看這個(gè)值:

  `select * from v$dm_ini where para_name LIKE 'UNDO_RETENTION'`

這個(gè)就是說(shuō),如果你這個(gè)sql 執(zhí)行時(shí),涉及到的數(shù)據(jù),被其他人修改了,而且超過(guò) 300s 了,就有可能遇到報(bào)錯(cuò)(回滾記錄版本太久)。

那么,我們 只要在無(wú)人修改相關(guān)數(shù)據(jù)的時(shí)候執(zhí)行,無(wú)論執(zhí)行多少個(gè) 300s 都不會(huì)報(bào)錯(cuò)。

處理方法二:

暫時(shí)修改 undo_retention ,比如我們預(yù)期這個(gè)語(yǔ)句需要執(zhí)行 30min ,那么我么可以暫時(shí)修改這個(gè)參數(shù)為 30*60 = 1800

在執(zhí)行完后,在修改回原先的默認(rèn)值。

這是修改為 18000 的sql 語(yǔ)句,直接通過(guò) 執(zhí)行sql 的方式,執(zhí)行這個(gè)語(yǔ)句,就對(duì)這個(gè)參數(shù)進(jìn)行了調(diào)整

  `sp_set_para_value(1,'UNDO_RETENTION',1800);`

相應(yīng) 的,這個(gè)就是修改回 300s

  `sp_set_para_value(1,'UNDO_RETENTION',300);`

修改之前,確認(rèn)下之前是多少。以免改錯(cuò)(過(guò)大或過(guò)?。┯绊懫渌嘶蛘咂渌麘?yīng)用使用。(該值 過(guò)大對(duì)性能 是有負(fù)面影響的)

處理方法三:

在知道怎么回事的時(shí)候,我們也可以知道,數(shù)據(jù)庫(kù)給我們提供了這樣一個(gè)參數(shù),畢竟,對(duì)于數(shù)據(jù)庫(kù)的性能來(lái)說(shuō) undo_retention 保持較小的值比較好,個(gè)別的查詢,其實(shí)可以忽略那條數(shù)據(jù),不影響我們的執(zhí)行預(yù)期。那么,我們可以啟用這個(gè)參數(shù)(而且也是 動(dòng)態(tài)參數(shù))

ENABLE_IGNORE_PURGE_REC  默認(rèn)值為 0 動(dòng)態(tài),會(huì)話級(jí)

當(dāng)返回 EC_RN_NREC_PURGED ( -7120 )錯(cuò)誤(回滾記錄版本太舊,無(wú)法獲取用戶記錄)時(shí)的處理策略; 0 :報(bào)錯(cuò); 1 :忽略這一條記錄,繼續(xù)執(zhí)行

文章題目:達(dá)夢(mèng)數(shù)據(jù)庫(kù)報(bào)錯(cuò):回滾記錄版本太舊,無(wú)法獲取用戶記錄-創(chuàng)新互聯(lián)
URL地址:http://muchs.cn/article32/csjssc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、面包屑導(dǎo)航、小程序開發(fā)、定制網(wǎng)站、軟件開發(fā)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站建設(shè)