91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

informix鎖

發布時間:2020-06-22 01:26:01 來源:網絡 閱讀:2043 作者:曼曼曼鰻魚 欄目:數據庫

 1.在將一個表unload,出現:

244:Could not do a physical-order read to fetchnext row

107:ISAM error:record is locked

在不重啟動數據庫情況下,如何解鎖?

 

onstat -g sesonstat -g sql可以通過SQL語句檢查那些用戶,那些SQL在操作這張表。

可以重點檢查onstat-g sqlUPDATE,DELTE,INSERT語句。

 

onstat -k看鎖的情況,通過輸出的tblsnum一列檢查是否這張表被鎖了。

tblsnum可以通過下面的SQL去獲得

select tabname,hex(partnum) from systableswhere tabname="tabname"

 

這個是我經常用得看誰鎖表得小腳本,后面可以再加上onstat -g 得選項。看具體執行了什么東西。

代碼:

 

onstat -k|grep X|awk '{print $3}'|sort -u>tmp1.txt

cat tmp1.txt|while read line

do

onstat -u|grep $line

done

rm tmp1.txt

 

2.近期我在對informix數據庫的表進行update時,總也報-244的錯誤,我已經在配置文件中加大的鎖的個數,

但還是不行,不知-244的錯誤還與什么有關系?

 

請查看該表的鎖級別,有page,row之分

 

SQL code只能說明操作上的故障,最終要看ISAM錯誤代碼。

只要索引沒問題的前提下,估計是鎖并發性的問題,而不是鎖不夠的問題。

可能通過走索引的方式去盡量避免。

 

3.Informix里如果應用將某個表鎖住了,如何查出是那個進程鎖住的,又如何釋放?

 

1、發現鎖表(以tab_test為例)。

2、在systables中找出tab_test對應的partnum

3、用計算器將此數轉換成十六進制。

4、用onstat -k|grep [十六進制] 找到相應的鎖,并記錄相對應的owner號,此owner號表示進行此操作的用戶進程,找到rowid0的記錄(如果有的話)。

5、用onstat -u|grep [owner] 找到相應的用戶進程。

6、如果想看看到底是哪個語句產生的鎖,用:onstat -g ses [owner] 查看語句。或者用onmode -z [owner]殺之。

 

 

謝謝樓上的,解決了我找了很久的問題。不過最后一點是session id

 

 

4.如果您執行SQL語句時候出現下面的錯誤提示:

244: Could not do a physical-order read tofetch next row.

113: ISAM error: the file is locked.

毫無疑問,您要訪問的表被別人鎖住了。

 

如果您的使用了set lock mode to wait 語句,onstat -u 命令可以報告出會話在等待鎖資源的信息(

 

標志位“L”),如:

c0000000379015e8 L--PR-- 4626 informix tJc0000000006e45f0 20 1 0 0

超時后報錯:

244: Could not do a physical-order read tofetch next row.

154: ISAM error: Lock Timeout Expired

 

那么,怎么樣找出是誰鎖住了這個表呢?介紹一個小技巧,執行下面SQL語句:

 

DATABASE sysmaster;

SELECT owner FROM syslocks WHEREtabname="表名";

 

得到的owner就是加鎖的會話號SID,于是我們就可以使用 onstat -g ses SID 命令查看該會話的信息,

 

包括是哪個用戶、執行了什么SQL語句。還可以通過DBA身份使用onmode -z 命令殺斷該會話。

 

 

不過方法真的不錯,比我的好多了:

1、發現鎖表(以tea為例)。

2、在systables中找出tea對應的partnum

3、用計算器將此數轉換成十六進制。

4、用onstat -k|grep [十六進制] 找到相應的鎖,并記錄相對應的owner號,此owner號表示進行此操作的用戶進程。

5、用onstat -u|grep [owner] 找到相應的用戶進程。

6、如果想看看到底是哪個語句產生的鎖,用:onstat -g ses [owner] 查看語句。或者用onmode -z [owner]殺之。

 

 

 

5.我有一個表,再用ISQL查詢時,提示記錄被鎖定,查不出任可內容,用unlock table 表名,又提示我表未被我鎖定。

確認為表中的某一記錄被鎖定了。在不重啟數據庫和表數據情況下,怎樣解鎖。

 

記錄應該是被其他進程的數據庫訪問鎖住了,

只能找出源頭,釋放鎖才行。

 

解鎖步驟:

1、發現鎖表(以tpm_radio_bts為例)。

2、在systables中找出tpm_radio_bts對應的partnum

3、用計算器將此數轉換成十六進制。

4、用onstat -k|grep [十六進制] 找到相應的鎖,并記錄相對應的owner號,此owner號表示進行此操作的用戶進程。

5、用onstat -u|grep [owner] 找到相應的用戶進程。

6、如果想看看到底是哪個語句產生的鎖,用:onstat -g ses [owner] 查看語句。或者用onmode -z [owner]殺之。

 

 

6.怎樣查看數據庫現在用的是什么鎖?怎樣設置informix的鎖? 我現在要把一個表從頁級鎖改為記錄瑣該怎么辦啊?

1、看表的鎖級別

1oncheck -ptdatabase_name:table_name

2select tabname, locklevel fromsystables where ...

2、設置鎖級別

   alter tablet_test lock mode (ROW)


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

安庆市| 贞丰县| 焉耆| 兴和县| 抚松县| 三河市| 巧家县| 城口县| 汝阳县| 温州市| 武功县| 昌图县| 慈利县| 刚察县| 津市市| 册亨县| 望谟县| 石景山区| 济南市| 德庆县| 金川县| 新平| 内丘县| 土默特左旗| 香河县| 房产| 都兰县| 眉山市| 贺州市| 樟树市| 万安县| 德惠市| 天全县| 治县。| 肇源县| 南汇区| 栾城县| 湖北省| 图木舒克市| 南木林县| 沁阳市|