[英]Emergency unlocking of resources in database
我們在現場制作系統上遇到問題。 其中一個節點停止正常工作(因為托管它的網絡文件系統出現問題),並且在通道分段過程正在進行時發生了這種情況。
由於那個非常糟糕的時機,暫存過程仍未完成,並且所有鎖定的資源都保持這種狀態,從而阻止了在實時系統上編輯產品或目錄。
我們嘗試的第一個解決方案是逐個節點重新啟動服務器,但這沒有幫助。 我們嘗試執行此支持文章中提到的 SQL 的第二個解決方案: https://support.intershop.com/kb/index.php/Display/2350K6
我們執行的確切 SQL 如下,第一個用於從 RESOURCELOCK 表中刪除:
DELETE FROM RESOURCELOCK rl WHERE rl.LOCKID IN (SELECT
resourcelock.lockid
FROM
isresource ,
domaininformation resourcedomain,
process,
basiccredentials ,
domaininformation userdomain,
resourcelock ,
isresource_av
WHERE (
(isresource.domainid = resourcedomain.domainid)
AND (isresource.resourceownerid = process.uuid)
AND (resourcelock.lockid = isresource.uuid)
AND (process.userid = basiccredentials.basicprofileid(+))
AND (basiccredentials.domainid = userdomain.domainid(+))
AND (isresource_av.ownerid(+) = isresource.uuid)
AND (isresource.resourceownerid is not null)
AND (isresource_av.name(+) = 'locknestinglevel')
AND (process.name = 'StagingProcess')
));
另一個用於 ISRESOURCE 表:
UPDATE isresource
SET
resourceownerid=null,
lockexpirationdate=null,
lockcreationdate=null,
lockingthreadid=null
WHERE
RESOURCEOWNERID='QigK85q6scAAAAF9Pf9fHEwf'; //UUID of StagingProcess
現在這在一定程度上有所幫助,因為它允許上演單個產品,但仍然存在兩個問題:
現在解決第二個問題:無法啟動通道登台並且失敗並顯示消息:
ERROR - Could not lock resources for process 'StagingProcess': Error finding resource lock with lockid: .0kK_SlyFFUAAAFlhGJujvESnull
這兩個問題在運行上述 SQL 后開始出現,並且似乎它們是相關的,任何關於如何解決這種情況的建議都會有所幫助。
我發布的第一個 SQL 不應該運行:
DELETE FROM RESOURCELOCK rl WHERE rl.LOCKID IN....
修復是恢復已刪除的資源鎖,只需將 ISRESOURCE 表中的鎖字段設置為 null 和第二個 SQL:
UPDATE isresource
SET
resourceownerid=null,
lockexpirationdate=null,
lockcreationdate=null,
lockingthreadid=null
WHERE
RESOURCEOWNERID='QigK85q6scAAAAF9Pf9fHEwf'; //UUID of StagingProcess
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.