Ⅰ db2資料庫裡面的一張表被鎖定,怎麼解鎖
請教各位:DB2資料庫兆襲里如何判斷一個表被鎖
1、執行命令打開鎖的監視開光
UPDATE
MONITOR
SWITCHES
USING
lock
on==>;>族友兄;
2、查看資料庫的鎖的情況
get
snapshot
for
locks
on
tberp
3、某一個用戶的鎖的情況
get
snapshot
for
application
applid
C0A8084A.040A.031015144751
4、如果表被鎖可以關閉該應用告磨連接
force
application
ID1
5、看正在運行的程序有沒有處於鎖等待狀態的
list
applications
for
db
tberp
show
detail
Ⅱ MySQL資料庫表被鎖、解鎖,刪除事務
在程序員的職業生涯中,總會遇到資料庫表被鎖的情況,前些天就又撞見一次。由於業務突發需求,各個部門都在批量操作、導出數據,而資料庫又未做讀寫分離,結果就是:資料庫的某張表被鎖了!
用戶反饋系統部分功能無法使用,緊急排查,定位是資料庫表被鎖,然後進行緊急處理。這篇文章給大家講講遇到類似緊急狀況的排查及解決過程,建議點贊收藏,以備不時之需。
用戶反饋某功能頁面報502錯誤,於是第一時間看服務是否正常,資料庫是否正常。在控制台看到資料庫CPU飆升,堆積大量未提交事務,部分事務已經阻塞了很長時間,基本定位是資料庫層出現問題了。
查看阻塞事務列表,發現其中有鎖表現象,本想利用控制台直接結束掉阻塞的事務,但控制台賬號許可權有限,於是通過客戶端登錄對應賬號將鎖表事務kill掉,才避免了情況惡化。
下面就聊聊,如果當突然面對類似的情況,我們該如何緊急響應?
想像一個場景,當然也是軟體工程師職業生涯中會遇到的一種場景:原本運行正常的程序,某一天突然資料庫的表被鎖了,業務無法正常運轉,那麼我們該如何快速定位是哪個事務鎖了表,如何結束對應的事物?
首先最簡單粗暴的方式就是:重啟MySQL。對的,網管解決問題的神器——「重啟」。至於後果如何,你能不能跑了,要你自己三思而後行了!
重啟是可以解決表被鎖的問題的,但針對線上業務很顯然不太具有可行性。
下面來看看不用跑路的解決方案:
遇到資料庫阻塞問題,首先要查詢一下表是否在使用。
如果查詢結果為空,那麼說明表沒在使用,說明不是鎖表的問題。
如果查詢結果不為空,比如出現如下結果:
則說明表(test)正在被使用,此時需要進一步排查。
查看資料庫當前的進程,看看是否有慢SQL或被阻塞的線程。
執行命令:
該命令只顯示當前用戶正在運行的線程,當然,如果是root用戶是能看到所有的。
在上述實慧明踐中,阿里雲控制台之所以能夠查看到所有的線程,猜測應該使用的就是root用戶,而筆者去kill的時候,無法kill掉,是因為登錄的用戶非root的資料庫賬號,無法操作另外一個用戶的線程。
如果情況伍碧腔緊急,此步驟可以跳過,主要用來查看核對:
如果情況緊急,此步驟可以跳過,主要用來查看核對:
看事務表INNODB_TRX中是否有正在鎖定的事務線程,看看ID是否在show processlist的sleep線程中。如果在,說明這個sleep的線程事務一直沒有commit或者rollback,而是卡住了,需要手動kill掉。
搜索的結果中,如果在事務表發現了很多任務,最好都kill掉。
執行kill命令:
對應的線程都執行完kill命令之後,後續事務便可正常處理。
針對緊急情況,通常也會直接操作第一、第二、第六步。
這里再補充一些MySQL鎖相關的知識點:資料庫鎖設計的初衷是處理並發問題,作為多用戶共享的資源,當出現並發訪問的時候,資料庫需要合理地腔衫控制資源的訪問規則,而鎖就是用來實現這些訪問規則的重要數據結構。
根據加鎖的范圍,MySQL裡面的鎖大致可以分成全局鎖、表級鎖和行鎖三類。MySQL中表級別的鎖有兩種:一種是表鎖,一種是元數據鎖(metadata lock,MDL)。
表鎖是在Server層實現的,ALTER TABLE之類的語句會使用表鎖,忽略存儲引擎的鎖機制。表鎖通過lock tables… read/write來實現,而對於InnoDB來說,一般會採用行級鎖。畢竟鎖住整張表影響范圍太大了。
另外一個表級鎖是MDL(metadata lock),用於並發情況下維護數據的一致性,保證讀寫的正確性,不需要顯式的使用,在訪問一張表時會被自動加上。
常見的一種鎖表場景就是有事務操作處於:Waiting for table metadata lock狀態。
MySQL在進行alter table等DDL操作時,有時會出現Waiting for table metadata lock的等待場景。
一旦alter table TableA的操作停滯在Waiting for table metadata lock狀態,後續對該表的任何操作(包括讀)都無法進行,因為它們也會在Opening tables的階段進入到Waiting for table metadata lock的鎖等待隊列。如果核心表出現了鎖等待隊列,就會造成災難性的後果。
通過show processlist可以看到表上有正在進行的操作(包括讀),此時alter table語句無法獲取到metadata 獨占鎖,會進行等待。
通過show processlist看不到表上有任何操作,但實際上存在有未提交的事務,可以在information_schema.innodb_trx中查看到。在事務沒有完成之前,表上的鎖不會釋放,alter table同樣獲取不到metadata的獨占鎖。
處理方法:通過 select * from information_schema.innodb_trxG, 找到未提交事物的sid,然後kill掉,讓其回滾。
通過show processlist看不到表上有任何操作,在information_schema.innodb_trx中也沒有任何進行中的事務。很可能是因為在一個顯式的事務中,對表進行了一個失敗的操作(比如查詢了一個不存在的欄位),這時事務沒有開始,但是失敗語句獲取到的鎖依然有效,沒有釋放。從performance_schema.events_statements_current表中可以查到失敗的語句。
處理方法:通過performance_schema.events_statements_current找到其sid,kill 掉該session,也可以kill掉DDL所在的session。
總之,alter table的語句是很危險的(核心是未提交事務或者長事務導致的),在操作之前要確認對要操作的表沒有任何進行中的操作、沒有未提交事務、也沒有顯式事務中的報錯語句。
如果有alter table的維護任務,在無人監管的時候運行,最好通過lock_wait_timeout設置好超時時間,避免長時間的metedata鎖等待。
關於MySQL的鎖表其實還有很多其他場景,我們在實踐的過程中盡量避免鎖表情況的發生,當然這需要一定經驗的支撐。但更重要的是,如果發現鎖表我們要能夠快速的響應,快速的解決問題,避免影響正常業務,避免情況進一步惡化。所以,本文中的解決思路大家一定要收藏或記憶一下,做到有備無患,避免突然狀況下抓瞎。
Ⅲ db2資料庫裡面的一張表被鎖定,怎麼解鎖
步驟一:使用命令get snapshot來查詢哪些進程鎖了哪些表。
步驟二:使用春渣命令force來斷開這些進行了死鎖的進程來。
步驟三: 使用命令list application查看是否已經斷開了哪些進行了死鎖的進程。
Ⅳ 怎麼解鎖excel2010(密碼忘記了)
打開文檔賣余後,通過文件菜單中「另存為」,將文檔存為rtf格式。保存好文件後,先關掉文檔再打開另檔配氏存的文件,選擇工具欄中的「解除文檔保護」命令,不用填寫密碼就可以解除此文件的「文檔保護功能」,而且任何信息都不會丟失。用Office Password Remover這個軟體可以打開。
使用方法:
首先運行解壓好的OPRemove.exe 這個程式,打開程式行散後能看到中間文本框後面有個類似目錄的按鈕。
選擇後出現下圖的畫面,點擊移除密碼。
呆幾秒鍾後便出現「該文件已被成功破解」,點確定即可,這時候就大功告成了。 在這里要注意的是,破解後的文章名字會有點變化,加了「DEMO」這四個字母,翻譯過來就是示範的意思,不必在意,重命名去掉就能了。
Ⅳ 單元格鎖定怎麼解鎖
Excel中 被鎖定的單元格如何解鎖? 10分
方法一:
1.首先,利用Excel快捷鍵"Ctrl + A"全選所以的單元格,然亂慎後,右鍵選擇「設置單元格格式」。
2.在彈出的「單元格格式」中選擇「保護」,取消「鎖定」前面的鉤去掉。
方法二:
1.打開文件。
2.工具---宏----錄制新宏---輸入名字,如「aa」。
3.停止錄制(這樣得到一個空宏)。
4.工具---宏----宏,選「aa」,點編輯按鈕。
5.刪除窗口中的所有字元,替換為下面的內容:
Option Explicit
Public Sub AllInternalPasswords()
' Breaks worksheet and workbook structure passwords. Bob McCormick
' probably originator of base code algorithm modified for coverage
' of workbook structure / windows passwords and for multiple passwords
'
' Norman Harker and JE McGimpsey 27-Dec-2002 (Version 1.1)
' Modified 2003-Apr-04 by JEM: All msgs to constants, and
' eliminate one Exit Sub (Version 1.1.1)
' Reveals hashed passwords NOT original passwords
Const DBLSPACE As String = vbNewLine & vbNewLine
Const AUTHORS As String = DBLSPACE & vbNewLine & _
"Adapted from Bob McCormick base code by" & _
"Norman Harker and JE McGimpsey"
Const HEADER As String = "AllInternalPasswords User Message"
Const VERSION As String = DBLSPACE & "Version 1.1.1 2003-Apr-04"
Const REPBACK As String = DBLSPACE & "Please report failure " & _
"to the microsoft.public.excel.programming newsgroup."
Const ALLCLEAR As String = DBLSPACE & "The workbook should " & _
"now be free of all password protection, so make sure you:" & _
DBLSPACE & "SAVE IT NOW!" & DBLSPACE & &q......>>
excel格式被鎖定了如何解指拍除?
點擊「撤銷工作表保護」可以解除鎖定。
按鈕位置具體參見下圖:
如果解鎖excel中鎖定的單元格
1、去掉工作表保護
2、選中需要解鎖區域
3、擊右鍵——設置單元格格供——保護,去掉鎖定前的勾即可
所有excel表格被鎖定了怎麼解鎖
軟體版本:Office2007
方法如下:
1.審閱菜單中,點擊「撤銷工作表保護」:
2.輸入正確的密碼,點擊確定:
3.審閱視圖中出現「保護工作表」就說明可以對工作表進行修改了。
excel表格被鎖定了怎麼解鎖
--工具--保護---取消保護
EXCEL中工作表部分單元格被鎖定了.如何解鎖.
--工具--保護---取消保護
電子表格被鎖定怎麼解除
→設置單元格格式→保護→去掉「鎖定」前方框中的√→確定(此步驟是為了設置保護後可以編輯其他單元格)
2、選中要保護的公式所在單元格→重復以上過程→在「鎖定」前方框中加上「√」;(此步驟是為了設置保護公式所在單元格)
3、工具→保護→保護工作表→設置密碼(兩次,也可以不設)→確定。
註:需要修改公式時嘩逗敬→工具→保護→撤銷工作表保護
excel單元格被鎖定,無密碼。怎麼解鎖。密碼解鎖器無用。求方法。
第一步:1、打開該文件,先解除默認的「宏禁用」狀態。方法是:點擊工具欄下的「選項」狀態按鈕,打開「MicrosoftOffice安全選項」窗口,選擇其中的「啟用此內容」,「確定」退出。」(或:安全性→宏安全性→非常高,然後點確定、確定)2、再次點擊「宏」→「錄制宏」,出現「錄制新宏」窗口,在「宏名」定義一個名稱為:PasswordBreaker,點擊「確定」退出。第二步:1、再點擊「宏」→「查看宏」,選擇「宏名」下的「PasswordBreaker」並點擊「編輯」,打開「MicrosoftVisualBasic」編輯器,清空編輯器里所有的內容,把如下代碼復制到編輯器右邊的窗口欄內:Sub PasswordBreaker()
Dim i As Integer, j As Integer, k As Integer
Dim l As Integer, m As Integer, n As Integer
Dim i1 As Integer, i2 As Integer, i3 As Integer
Dim i4 As Integer, i5 As Integer, i6 As Integer
On Error Resume Next
For i = 65 To 66: For j = 65 To 66: For k = 65 To 66
For l = 65 To 66: For m = 65 To 66: For i1 = 65 To 66
For i2 = 65 To 66: For i3 = 65 To 66: For i4 = 65 To 66
For i5 = 65 To 66: For i6 = 65 To 66: For n = 32 To 126
ActiveSheet.Unprotect Chr(i) & Chr(j)& Chr(k) & _
Chr(l) & Chr(m) & Chr(i1)& Chr(i2) & Chr(i3)& _
Chr(i4) & Chr(i5) & Chr(i6)& Chr(n)
If ActiveSheet.ProtectContents = False Then
MsgBox "One usable password is " & Chr(i)& Chr(j) & _
Chr(k) & Chr(l) & Chr(m)& Chr(i1) & Chr(i2)& _
Chr(i3) & Chr(i4) & Chr(i5)& Chr(i6) & Chr(n)
ActiveWorkbook.Sheets(1).Select
Range("a1").FormulaR1C1 = Chr(i) & Chr(j)& _
Chr(k) & Chr(l) & Chr(m)& Chr(i1) & Chr(i2)& _
Chr(i3) & Chr(i4) & Chr(i5)& Chr(i6) & Chr(n)
Exit Sub
End If
Next: Next: Next: Next: Next: Next
Next: Next: Next: Next: Next: Next
End Sub第三步:1、再點擊「宏」→「查看宏」,選擇「宏名」下的「PasswordBreaker」並點擊「運行」,密碼就現形了,同時你的文檔也就消除了保護。...>>
excel表格鎖定了沒得密碼怎麼解鎖
1、全選工作表--右鍵--設置單元格格式--保護,把「鎖定」前的勾打上,確定。(所有區域有效)
2、選中不需要 鎖定的單元格,右鍵--設置單元格式格式--保護,取消「鎖定」前的勾,確定。(個別區域有效,即可編輯、修改等操作)
3、點單菜單欄--工具--保護--保護工作表,輸入保護密碼,確定即可。(沒有保護密碼,無法修改或編輯操作)
WPS下載人事管理表格為什麼單元格是鎖定的,怎麼解鎖
這是製作表格時,為保證某些單元格輸入的數據格式符合要求。
從面保護工作表,不能修改格式或其它功能。
解決方法:在審閱選項卡中,選擇「撤銷工作表保護」命令,會要求輸入密碼。
Ⅵ oracle如何解鎖表
一些ORACLE中的進程被殺掉後,狀態被置為"killed",但是鎖定的資源很長時間不釋放,有時實在沒辦法,只好重啟資料庫。現在提供一種方法解決這種問題,那就是在ORACLE中殺不掉的,在OS一級再殺。
1.下面的語句用來查詢哪些對象被鎖:
select object_name,machine,s.sid,s.serial#
from v$locked_object l,dba_objects o ,v$session s
where l.object_id=o.object_id and l.session_id=s.sid;
2.下面的語句用來殺死一個進程:
alter system kill session '24,111'; (其中清慧擾24,111分別是上面查詢出的sid,serial#)
【注】以上兩步,可以通過Oracle的管理控制台來執行。
3.如果利用上面的命令殺死一個進程後,進程狀態被置為"killed",但是鎖定的資源很長時間沒有被釋放,那麼可以在os一級再殺死相應的進程(線程),首先執行下面的語句獲得進程(線程)號:
select spid, osuser, s.program
from v$session s,v$process p
where s.paddr=p.addr and s.sid=24 (24是上面的sid)
4.在OS上殺死這個進程(線程):
1)在unix上,用root身份執行命令:
#kill -9 12345(即第3步查詢出的spid)
2)在windows(unix也適用)用orakill殺答旦死線程,orakill是oracle提供的一個可執行命令,語法為:
orakill sid thread
其中:
sid:表示要殺死的進程屬於的碧磨實例名
thread:是要殺掉的線程號,即第3步查詢出的spid。
例:c:>orakill orcl 12345
Ⅶ Hive中的鎖的用法和使用場景
前面遇到過一次因為 Hive 中表被鎖住了,導致定時任務一直失敗。這兩天又出現了表被鎖,原因是連接 hiveserver2 過於頻繁,余斗茄 mysql 連接被打滿,引發的連鎖反應,導致我們的小時任務一直失敗,下午重點注意到這個問題,才解決好。
在執行 insert into 或 insert overwrite 任務時,中途手動將程序停掉,會出現卡死情況(無法提交MapRece),只能執行查詢操作,而 drop insert 操作均不可操作,無論執行多久,都會保持卡死狀態。
查看 Hive 的中死鎖,可以使用 show locks [table] 來查看。
可以看到裡面的那個Type下的EXCLUSIVE,這是一種互斥鎖銷春,需要解決,否則後續的查詢和插入任務都會影響。
hive存在兩種鎖,共享鎖 Shared (S) 和互斥鎖 Exclusive (X)
鎖的基本機制是:
觸發共享鎖的操作是可以並發執行的,但是觸發互斥鎖,那麼該表和該分區就不能並發的執行作業了。
對於上面的情況,使用解鎖命令:
注意 : 表鎖和分區鎖是兩個不同的鎖 ,對表解鎖,對分區是無效的,分區需要單獨解鎖
查看錶被鎖的情況:
常規解鎖方法:
高版本hive默認插入數據時,不能查詢,因為有鎖
解鎖之路通常不是一帆風順的,可能會遇到各種問題,筆者是在 Hive2.1.1 下面測試,比如:
這個命令無法執行,說 LockManager 沒有指定,這時候需要執行命令:
這樣重新執行,命令就可以豎察執行了
如果還!是!不!行,終極方法,可以直接去mysql元數據執行:
查到所有的鎖,然後根據條件把對應的鎖刪掉,這個鎖住的表即可釋放出來了。
注意 : 表名和欄位都需要大寫 。
通過這種辦法,通常可以徹底解決鎖的問題。
Ⅷ 關於手機解鎖指令
(一)阿爾卡特
阿爾卡特手機查軟體版本:*#06#
阿爾卡特手機進入工程模式密碼:在待機狀態下輸入000000*
阿爾卡特手機恢復出廠設置:###847#
阿爾卡特BE1、BE3(OT220/221)解鎖:25228352/ALCATEL+D
阿爾卡特BE4、BE5(OT301/302)解鎖:83227423
阿爾卡特HD1、HE1(OT500/700)解鎖:25228352
阿爾卡特OT735解鎖指令:83227423(增)
--------------------------------------------------------------------------------
(二)波導
1200、1220、1800、1820、3200、3220進入測試狀態:上卡開機,進入待機狀態後,按一下側鍵(功能鍵),再按一下*鍵,屏幕顯示熱線菜單,然後顯示4個選項:1.應用;2.PROM; 3.SIM卡鎖; 4.LCD測試。(目前MAS模塊機型(薩基姆機)如1200、1800、8288……都沒有指令可以解的,想解除只能用軟體解。)
8XX/9XX系列:解話機鎖為*+串號7-14位+OK;解SIM卡鎖為串號後9位去掉最後一位;測試指令為「下翻、*」。
S1000:輸入*#*#1705#進入工程模式後選4再選6(慎用,會引起來電亂碼)通用密碼:24681357
SC02:通用密碼為12345678;進入工程模式為#123321#*
S1500:通用密碼為19980722;
SG1100:通用密碼為24681357
V08:插卡開機按「SOS」再輸入4268#後長按*會顯示密碼;測試指令為無卡開機輸入*789 後長按#
V09:手機上鎖後,早期的版本不放卡開機,輸入753進入工程模式後恢復出廠設置即可;新版本需要在無卡狀態下開機,按*下下下上上上(導航鍵的上下鍵)進入工程模式後恢復出廠設置,必須連續操作兩次,然後放入SIM卡開機,無需再輸入密碼,此時手機密碼恢復為初始密碼"0000"。
8180/GiyaQ1688/1699測試指令:*#369#
S1000A測試指令:*#301#
G100,G200,GC600測試指令:2945#*#
--------------------------------------------------------------------------------
(三) 博士
博士SIM卡解鎖指令:*#9100#
博世(BOSCH)909S回中文:*#0852#
博世(BOSCH)909s回英文:*#0851#
*#0852# 選取中文
*#0851# 自動選取
*#9190# 解話機鎖
*#9103# 解網路鎖
IMEI number: * # 0 6 #
Dafault Language: * # 0 0 0 0 #
Net Monitor: * # 3 2 6 2 2 5 5 * 8 3 7 8 #
(四) CECT
CECT手機解鎖:和飛利浦解鎖碼一樣,嘗試用*#7489*#解鎖。
CECTi889手機鎖其解鎖碼是在不放卡的情況下輸入*544*745625#
--------------------------------------------------------------------------------
(五)大顯
大顯76系列解鎖:*528*737381#
大顯78系列解鎖:*528*737382#
--------------------------------------------------------------------------------
(六)迪比特
通用手機解鎖法:輸入#*80#進入測試狀態,再輸入#*761格式化解鎖
巧解迪比特2017系列手機鎖:
方法:插卡用穩壓電源開機,出信號條後按112發射,此時快速 把SIM卡向前推出,然後拉回,此時手機會出現請捎後,然後就會重新搜網,這就繞過話機鎖進入待機狀態,不過還需要輸入#*80#(進入測試模式),#*761#(手機格式化),#*762#(此指令不輸開機會出現一串英文,電話號碼不儲存),#*41#(退出測試模式),此時就把話機鎖解開了,原始密碼0000
注意:在撥112發射後,推卡在拉回時的操作可能會失敗,可以多重復幾次
迪比特2017應急解鎖法:裝卡開機,等出現信號時把電池稍微向上抬起,再迅速按112然後按發射鍵,此後快速把SIM卡向前推動一下然後再拉回來,這時手機顯示屏會一閃,出現「請稍候」,不要管它,等一會就會成功地繞過話機鎖進入待機狀態。不過此法關閉不了話機鎖,手機關機後,必須重新進行以上步驟。
--------------------------------------------------------------------------------
(七)東信
東信720:*#*#1705#進入菜單選項,恢復出廠設置即可解SIM卡鎖(慎用,會丟失記錄)
東信EL650/760/760C/860/818解鎖:不插卡開機輸入##1001#,PCK重設;輸入0000 OK!
東信760c:*#1706#46。
東信660:19980722
東信EX369鍵盤鎖:#*5264386264,即顯示密碼 ;話機鎖:1215
東信EG730解鎖:20021226 20021206
東信788解話機鎖:插卡用穩壓電源開機,等有信號後撥打112,再把卡取下,再撥打112三次,手機自動死機,等3秒鍾左右手機自動開機,解鎖成功。
東信200手動解話機鎖:
手機插入UIM卡,開機打112,等出現計時後,不停的按08080808080808……(大約20秒左右計時結束)!此時按一下關機鍵,再長按#字鍵就解開了!再用**321456987##輸入000000即可看密碼!
東信200手動解話機鎖-2
東信200如果有話機鎖,可以用另外一部電話打入,然後掛機,手機顯示未接電話,然後按C建進入正常狀態。
輸入**321456987##+000000就可以顯示話機鎖了
32147*0#569#01#626 解鎖
這種方法不用軟體就可以解鎖了
那個指令同樣可以用來讀ESN的
--------------------------------------------------------------------------------
(八)飛利浦
Philips DIGA 和 GENIE解鎖: 輸入 *#7489 *# 可以看到密碼,
Philips FIZZ解鎖: 輸入 *#1234*# 可以查看密碼
828測試指令:輸入*#7489*#可顯示和更改手機的保密碼
630解鎖指令:#20021208按發射鍵
飛利浦部分手機外文改中文:長按0鍵後,朝上選。
828測試指令
*#7489# 顯示和更改手機的保密碼
*#2562# 強迫重新接入網路
*#3377*# 獲取SIM卡鎖信息,初始化設定和標志
*#2254*# 顯示狀態行
*#2255*# 激活或關閉調試呼叫
*#2258*# 顯示總通話時間
*#7693*# 激活或關閉睡眠模式
*#8463*# 獲取睡眠模式信息
*#476*# GSM關/開(可省電)
*#327*# DCS關/開 ···
*#337*# EFR關/開 ···
929
功能鍵+*# 4764*# 變單頻900兆
功能鍵+*# 4765*# 1800兆
功能鍵+*# 4762*# 雙頻900/1800兆
飛利浦手機的秘籍:Philips DIGA 和 GENIE 輸入 *#7489 *# 可以看到密碼,
Philips FIZZ 輸入 *#1234*# 可以查看密碼
--------------------------------------------------------------------------------
(九)海爾、GVC
海爾6910、7910、7920、7930、8018/GVC168/268/668解鎖:手機要求輸入「SIM卡鎖密碼」,輸入四個零不能解開時,將手機關機,取出SIM卡,開機輸入「##1001#」,此時手機顯示「SIM卡鎖密碼已重設」,將手機關機裝上SIM卡開機,當顯示輸入「SIM卡鎖密碼」時輸入「0000」再確定即可。
開運星3000、天智星3000解鎖:##8879501#\#8879576#
海爾(TZ1000、T6000)看版本:先輸#*80#、再輸#*17#
海爾Z1000解鎖:#20021208#
T9000解鎖:在待機狀態下輸入#7233+OK,密碼恢復為0000,此為防火牆密碼;在待機狀態下輸入#20020405#+OK,此為手機鎖。
海爾Y2000解鎖:輸入*2850#進入測試模式,選擇出廠設置,左鍵確認,密碼恢復為0000
海爾H6988測試指令:*#301#
海爾79系列/H8018/D3000測試指令:關機狀態下按住#鍵和開機鍵,然後輸入668
海爾K1000/ XDX1000/XDX2000測試指令:待機狀態下輸入#**3487*#
海爾YDN2000測試指令:關機狀態下同時按住*0#,再按開機鍵
海爾HC1000/HC2000測試指令:待機狀態下輸入*#3001
海爾HK3000/HTZ3000測試指令:待機狀態下輸入#03#
海爾開運星調對比度:*#760#
海爾系列CDMA通用密碼:2372
--------------------------------------------------------------------------------
(十)鴻基
鴻基70:19980722
--------------------------------------------------------------------------------
(十一)康佳
康佳K3118/3118+/3228解話機鎖:不插卡輸入##1001#,然後插卡開機輸入0000;解SIM卡鎖:*94726501#;開關鍵盤鎖:按功能鍵和4上鎖,按功能鍵和5解鎖。
康佳3238/7388解鎖:不插卡輸入19980722,然後插卡開機輸入0000
康佳3268解鎖:不插卡輸入*#0000#,插卡開機輸入1234
康佳5218/5218+/5219/7268/7899解鎖:不插卡開機輸入#8879576#,插卡輸入1234
康佳5238解鎖:不插卡輸入*5238*#2002#
康佳R768/R769解鎖:#20021208#
康佳C688、C699、C869解鎖:**0102#。(須軟體升級)
康佳KC66/88解鎖:插卡開機按「功能表」和0070571,再選擇nv_read、Lock_code。
康佳KC827解鍵盤鎖密碼:##835766 END
康佳6288解鎖:*6288*#2002#
康佳C868/R6188/KC826等須用軟體升級解鎖
康佳K3118、K3118+:查看版本號*3118#,解鎖密碼##1001#,查看EMMI號*#06#,手機初始密碼0000,解除網路鎖*94726501#,3118隻識別一張卡鎖:*94726501#
康佳K3228:查看版本號*0519#,解鎖密碼##1001#,查看EMMI號*#06#,手機初始密碼0000,只識別一張卡鎖:*94726501#
康佳K3238、7388:查看版本號*#300#再按確認,解鎖密碼19980722,查看EMMI號*#06#,手機初始密碼1234,界面測試碼*#301#
康佳K3268、K3268+:查看版本號*#0000#,解鎖密碼#1001#,查看EMMI號*#06#,手機初始密碼0000
康佳K5218、K5218+、K5219、K5219+、K7268、K7899:查看版本號#02#,解鎖密碼#8879576#,查看EMMI號*#06#,查看EMMI號*#06#,手機初始密碼0000,鈴聲測試密碼#09#,快速進入待機狀態密碼#07#
康佳K5238:查看版本號*5238#,解鎖密碼*5238*#2002#,查看EMMI號*#06#,手機初始密碼0000,個人信息密碼瑣解密碼瑣*5238*00#
康佳KC88、KC66:查看版本號按「功能表」和0070571
康佳K6188:查看版本號*#300#
康佳K6288:查看版本號*6288#
--------------------------------------------------------------------------------
(十二)科健
科健老式手機不插卡調菜單:*#722#;查版本號、出廠日期:*#701#;復位碼片解鎖:*#715#;調節對比度:*#760#
科健K3000不能使用充值卡充值:輸入*#9918*106*1647# 或*#9918*106*6538#
科健6300解鎖:*2767*2878#
不插卡調菜單 *#722#
版本號 *#701#
復位碼片解鎖 *#715#
調節對比度 *#760#
科健K518解鎖:解話機鎖密碼為*2767*2878#;解SIM卡鎖密碼為*#8999*947#
科健K98解鎖指令:輸入*2767*3855#復位碼片
科健k3000、海爾t3000的萬能密碼:#8879501#。
科健K100,調對比度:*#760#
--------------------------------------------------------------------------------
(十三)LG手機
部分機型的通用密碼為:1477
LG 200: * 7 8 9 # + Send
LG 500 :2 9 4 5 # * (hold)
LG 600: 2 9 4 5 # * (hold)
LG - 510 :2 9 4 5 # * #
LG - B1200:#和開機鍵一起按,然後輸入668
LG - B1200 :* 8 3 7 5 #
LG - 5200 :2 9 4 5 # * #
LG – 510: 2 9 4 5 # * 1 # (網路鎖)
LG - B1200: *6861#
LG200 :不放卡輸入##1001#,密碼恢復為0000
--------------------------------------------------------------------------------
(十四)聯想
聯想288/300解鎖:輸入2945#*,進入測試模式,選擇恢復出廠設置即可。
聯想手機解網路鎖密碼:(增)
G820:*#111# G530/G818:2945#*# G678:*#0000#
聯想i188的結鎖*544*745625#
--------------------------------------------------------------------------------
(十五)美辰
*#06# imei nummer imei號碼 國際移動設備身分
*#100# phone nummer 手機號碼+push
*#9900# phone and sotw version 手機和sotw版本
*#9901# pbatch
*#9911# L1 debug on/off 調整ON/OFF監控模式;目錄向上/向下
*#9912# forbidden list 禁止列表
*#9915# back to defauld 後退到預設
*#9916# text(scroll up/down)測試(目錄。向上/向下)
*#9917# simlock status sim鎖狀態
*#9934# bb config配置
*#9935# fc init初始
*#9936# toc init初始
*#9937# discharging battery放電
*#9940# pins
*#9941# testsignal測試信號
*#9955# list of caracters列表
*#9957# select 2/3 menu lines選擇菜單台詞 9957*2#狀態條可以見到。*3#隱形
*#9958# watch stop錶停止
*#9959# watch start表開始
*#9960# contrast set對比度設定
*#9965# adjust shine調整光亮
*#9988# play tetris MN2唯一的
*#9999# oem ld
美晨手機解話機鎖指令:不插卡開機,輸入*#9922#進入話機菜單,在話機設置中選擇出廠設計,按是確定後屏幕顯示復位確定然後自動關機。再插卡開機,OK! 查版本指令: *#9900#
美晨6898:
*#9915#解除話機鎖
*#9960#調對比度
*#9922#免卡進入菜單
--------------------------------------------------------------------------------
(十六)摩托羅拉
摩托羅拉所有機鎖:按MENU+5+1/2
T190解鎖密碼: 20010903
T191解鎖密碼:19980722
3X8/2X88/998/8088/L2000/7689/T189/C289等初始密碼為1234 ;話機密碼為000000 ;解鎖方法:如無測試卡,則先輸入1234,如密碼已更改,先按Menu鍵會出現「修改開鎖密碼」,按OK鍵,然後輸入000000就會顯示四位數的話機密碼,如保密碼已更改,則只能用測試卡或軟體工具解。
T2688/2988萬能解鎖碼:19980722
C300解話機鎖:20020801
摩托羅拉手機出現「話機壞,請送修」:可利用測試卡,輸入0205#、0205068#即可修復,無須重寫碼片。
T2688/2988/988d設置中文:*#0000# ok(插卡)
摩托羅拉所有機鎖:按MENU+5+1/2
T2688
*#0086# 設為中文(不插卡)
*#0000# 回中文,(插卡)
*#300# 查版本號,生產日期
*#301# 顯示屏,振鈴,按鍵,振動等測試
*#402# 調對比度
19980722可解其一切手機鎖
V60/V66/V70解鎖:插入測試卡,開機後輸入menu+048263*進入測試狀態後按18*1總清除,輸入18*0是主復位。
V998外文改中文:MENU—左方向鍵按3下—OK—左方向鍵按5下—OK—Simplified—CHINESE
摩托羅拉語言調成第三國語言快速解決方法:menu+26
摩托羅拉2688時間不走修復密訣:將電源1腳和8腳用漆包線短接,必殺!
★ 如何解除摩托羅拉手機的PIN密碼
當你的設置的PIN不小心遺忘了,或別人在你的手機上設置了PIN等,這時PUK就幫了大忙了。在輸錯三次的PIN後則手機上會顯示SIM卡已鎖,這時你必須要通過PUK來解鎖了。PUK為8位數字的碼一般在大卡的背面,如果找不到的話要盡快到當地的客服中心查詢,切不可亂輸,因為PUK只有10次輸錯的機會,輸錯10次則SIM卡報銷。摩托羅拉手機一般在輸入PUK之前都必須先輸入**05*再輸PUK,格式如下:**05*PUK即可。
★ 摩托羅拉手機的主清除與主復位
無論你的摩托羅拉手機上做了任何的設置,造成了如:不能正常拔入拔出,來電顯示亂碼,或無法刪除電話本,等等,您都可以用以下方法復原。
MENU鍵+5+1(2)屏幕則會顯示「主清除或主復位」如選擇主清除將會執行以下操作:
1、從話機記憶中清除電話本項目。
2、清除最後呼出號碼及最後呼入號碼。
3、可清零計時表。
但不能清除的功能有:固定號碼表、本機號碼表、計費表、收到和傳出的短消息。
選擇主復位,將執行以下:
1、返回最初的語言選擇。
2、鈴音恢復標准音量復為中,網路查找頻度恢復為中,取消自動應答,聲音提示計,時通話中顯示計費,節電,自動免提,自動加鎖,小區廣播及通話傳真方式。
★ 摩托羅拉 T2688 鍵盤解鎖
T2688有通過鍵盤解鎖的功能,只要輸入:19980722 即可,不過它只支持當前的卡解瑣,無法實現手機的全復位。
★ MOTOROLA GSM手機的測試指令
測試狀態的進入:
插入測試SIM卡後打開手機電源,當內部自動「叫醒」功能順利完成後,按「#」鍵三秒鍾。
三秒鍾後手機顯示「TEST」,表明手機已進入測試狀態,
測試指令如下:
01#:退出測試狀態
02xxyy:顯示/改變Tx功率電平DAC與裝入PA校準表,類似於ETACS 72#指令
07#:關閉Rx Audio通道
08#:打開Rx Audio通道
09#:關閉Tx Audio通道
10#:打開Tx Audio通道
11ABC#:設置信道 ABC=000~124
12AB#:設置功率級電平 AB=00~15
19#:顯示呼叫處理器軟體版本
20#:顯示數據機軟體版本
22#:顯示語音編解碼器軟體版本
82#:看U801的版本號
24A#:設置AGC步進 A=0 or 1
25ABC#:將連續的AGC置為ABC,ABC=0~255
26ABCD#:將連續的AFC置為ABCD,ABCD=0~4095
31A#:設定時隙為A,A=0~7
33ABC#:單步捕捉ABC信道
36#:打開音頻環路
37#:中止測試
38#:激活SIM卡
39#:使SIM卡失效
40#:發射全「1」信息
41#:發射全「0」信息
43A#:改變Audio通道至A
45ABC#:讀取信道ABC上的信號強度,ABC=0~124
46#:顯示當前AFC DAC的值
47A#:設置音量A=0~7
490#:讀鋰電池信息
57#:清除保留內存,相當於ETACS的32#指令
58ABCDEF#:設置保密碼為ABCDEF
59ABCD#:顯示/改變解鎖碼
60#:顯示IMEI(國際移動設備識別碼)
65#:顯示IMSI
7100#:手機自檢,03、04為Modem IC錯誤,05、06為SpeechCode IC錯誤,07為軟體錯誤必 需轉移卡,08為手機正常,00、01為CPU錯誤。
MOTO T720測試指令集(工程模式)
MOTO T720測試指令集(工程模式)
按菜單鍵(即中間那個T型鍵)再接著輸入 048263* 進入手動測試模式
54* 測試待命
0*0*0 選擇音調 0
0*0*1 選擇音調 1
0*0*2 選擇音調 2
0*0*3 選擇音調 3
0*0*4 選擇音調 4
0*0*5 選擇音調 5
0*0*6 選擇音調 6
0*0*7 選擇音調 7
0*0*8 選擇音調 8
0*0*9 選擇音調 9
0*1*X 停用音調
3*0*1 啟用振動器
3*0*0 停用振動器
5*0*0 調整音頻級別 0
5*0*1 調整音頻級別 1
5*0*2 調整音頻級別 2
5*0*3 調整音頻級別 3
5*0*4 調整音頻級別 4
5*0*5 調整音頻級別 5
5*0*6 調整音頻級別 6
5*0*7 調整音頻級別 7
5*0*8 調整音頻級別 8
5*0*9 調整音頻級別 9
5*0*10 調整音頻級別 10
5*0*11 調整音頻級別 11
5*0*12 調整音頻級別 12
5*0*13 調整音頻級別 13
5*0*14 調整音頻級別 14
5*0*15 調整音頻級別 15
6*2*2*0*0 設置音頻的路徑. Int Mic, IntSpk, RX unmute, TX unmute
6*4*6*0*0 設置音頻的路徑. Boom Mic, Boom Spk Rx unmute, Tx unmute
10*0*3 調整 GSM 900 波段
10*0*4 調整 DCS 1800 波段
10*0*5 調整 PCS 1900 波段
10*0*6 調整 GSM 900/1800 雙重 波段
10*1*0 讀頻段(3=gsm,4=dcs,6=gsm/dcs)
18*0 主復位
18*1 主清除
55*2*001 顯示所有點
55*2*000 關閉所有點
55*2*002 圖形1
55*2*003 圖形2
55*2*004 外框
*#06# IMEI碼檢查
--------------------------------------------------------------------------------
(十七)南方高科
南方高科S320/EB232解鎖指令:不插卡開機,輸入##1001#,然後裝上卡開機輸入0000
南方高科Hi70解鎖指令:手機插卡開機,先按SOS,然後輸入4268#再長按*鍵可以顯示開鎖密碼。
南方高科777/778解鎖密訣:插卡用穩壓電源開機,等有信號後撥打112,再把卡取下,再撥打112三次,手機自動死機,等3秒鍾左右手機自動開機,解鎖成功。
南方高科S600解鎖指令:此機主板與TCL2898相同,可用*#*#5625#解鎖。
南方高科HI700/S700/S710解鎖指令:不插卡開機,輸入*#*#1705#加OK進入工程模式,然後選第9項碼片復位。
--------------------------------------------------------------------------------
(十八)NEC
恢復原廠設置:*#73738#或*73738#+OK
查看軟體版本:*#2820#
SP鎖: *#3210#+發射鍵
公司鎖: *#8140#+發射鍵
SIM卡鎖: *#4960#+發射鍵
NET LOCK: *#7320#+發射鍵
網路鎖: #7320*(八位密碼)#+發射鍵
DB2000、2100解鎖碼:一般為82764016,按MENU#可顯示手機的本機號碼,
解NEC988、NEC988D一切鎖: 19980722
NEC N8解鎖指令:輸入*#8140#再按發射鍵(增)
--------------------------------------------------------------------------------
(十九)諾基亞
初始保密碼:12345
5110鎖碼機解碼:在保密碼鎖死,輸入正確保密碼無效的情況下,可1、按C鍵不放,2、按*鍵不放,3、按*鍵不放,4、輸入04*PIN*PIN*PIN# 解除鎖碼。
3210解 SP 鎖: 1、按C鍵 2、按向下鍵 3、按C鍵直到屏幕清除 4、按住*鍵直到其閃爍 5、再按住*鍵直到其閃爍 ,輸入04*PIN碼*PIN碼*PIN
N7650恢復出廠設置:*#7370#
1,原始密碼12345
2,諾基亞系列手機用解鎖儀讀出保密碼後,輸入手機卻出現錯誤,不能解鎖。原因是
輸入錯誤次數太多。可在開機半小時後再輸入即可
諾基亞能呼入不能呼出:如果顯示屏左上角有「2」字,請按#鍵兩秒,然後按確
認即可。如果沒有顯示「2」,請按「功能鍵」+6+1+4+2再按確認即可。
諾基亞:
6110,8810,3210等
*#0000# 軟體版本
軟體發布日期
手機型號
*#92702689# 出廠日期
串號
購買日期
最後修理日期
*4720# 激活HR模式,但耗電30%
#4720# 關閉(同上)
*3370# 激活EFR模式,但耗電
#3370# 關閉(同上)
諾基亞手機省30%電密碼:*#746025625#
諾基亞手機查出廠日期:*#0000#
諾基亞能打過進不能呼出:如果顯示屏左上角有「2」字,按住#鍵兩秒,再按確認即可;如果沒有顯示「2」,則按「功能鍵」+6+1+4+2再按確認即可。
顯示手機資料密碼: 輸入*#92702689#
查詢手機是否鎖頻: 「#pw+1234567890+1#」 查詢是否鎖國家碼;「#pw+1234567890+2#」 查詢是否鎖網路碼;「#pw+1234567890+3#」 查詢是否鎖網路提供商鎖定的碼;「#pw+1234567890+4#」 查詢是否鎖SIM卡。(連續按*鍵二次即出現+;連續按*鍵三次即出現p;連續按*鍵四次即出現w)
諾基亞3210外文改中文:屏幕右上角依次調到4-2-1-9
諾基亞5110外文改中文:屏幕右上角依次調到4-2-1-8
諾基亞3310外文改中文:屏幕右上角依次調到6-2-1-3
諾基亞語言調成第三國語言快速解決方法:8250-按功能鍵+4+7+1+4
3210-按功能鍵+4+2+1
q1600-按功能鍵+6+1+1
--------------------------------------------------------------------------------
(廿)三菱
NET LOCK:*787090或*787292
IMSI LOCK:*362628或*360608
NETSUB LOCK:*476989
CP LOCK:*482896或*480896
SP LOCK:*967678
EXT LOCK:*574243
三菱M330解鎖指令:*5806(增)
--------------------------------------------------------------------------------
(廿一)三星
解話機鎖:*2767*2878#/*2767*7377#
碼片復位:*2767*3855# 也可用於解機鎖或卡鎖
調對比度:*#0523#
看軟體版本:*#9999#
三星600萬用密碼:9998
三星600碼片復位指令:舊版用*2767*2878#或*2767*3855#;新版用*2767*7377#。(無卡狀態下輸入)
三星A100-A188看版本:*#0837#
WAP復位:*2767*927# 可以解決部分機型出現「請稍候」的故障
X199手機鎖:去卡輸入*759#813580,輸入73,出現點之後,輸入02啟動。裡面的數據會全部清空
N299、A399、A539、A599手動解鎖:輸入*759#813580#進入工廠模式,按29,過兩三分鍾鎖自動解除
A188/A388解SIM卡鎖:不插卡輸入*#9998*627837793#顯示錯誤信息;再輸入*#9998*737#;按向上鍵找到PCK碼,有一個9位數的數字,去掉第一位後記下;關機將卡裝上,開機後鍵入後8位數即可解鎖。
三星A408解SIM卡鎖:不插卡輸入*#0737#,然後上下查找PCK碼,去除首位就是SIM卡鎖解密碼。
三星2400解鎖密訣: 用尾插供電,不裝卡開機,再裝卡,輸*2767*2878#,然後按住開機鍵直到顯示「請稍侯」就放開按鍵;再到保密菜單中把密碼關掉。
三星2400sim卡鎖應急方法:將手機電池取下,插入sim卡,不上電池,用尾插供電,開機,手機顯示「已上鎖,密碼」此時不要進行任何操作,靜待話機顯示出現信號條,此時將手機卡取出,不要關機,再立即反轉過來按sos,確認,然後立即將卡再插入,此時話機會出現「請稍等」幾秒後顯示搜索之後上網成功繞過話機鎖,然後進入菜單將「話機上鎖」改為「無效」(關閉)確認。此法要快,要有耐心!
三星A800的解鎖指令:手機解鎖密碼是:*2767*2878# ;不插卡輸入 *2767*637# 手機自動關機再開機,能解網路鎖。
三星S308/A408話機初始密碼和更改話機密碼:00000000
三星N628/S308/S508/V200/V208/T108/T408解鎖指令:*2767*2878#話機當前設定復位(手機解鎖);*2767*3855#話機EEPROM總復位(修復軟體故障);*2767*7377#解手機密碼的復位指令。
三星A188/A388/A408/T208/S108/S308的工程模式前綴都是*#9998*……#;三星A288/N288/N628/T108/T408/T508的工程模式前綴都是*#8999*……#。
三星S508恢復出廠設置指令:#*7728#
三星A300/A800解鎖指令:*2767*637#(增)
三星S105解SIM卡鎖指令:*2
Ⅸ orcal資料庫表被鎖了怎麼解鎖
1、在做Oracle監唯讓聽程序測試時,發迅跡現帳戶已經被鎖定。
Ⅹ mysql讀數據時怎麼加寫鎖
加鎖情況與死鎖原因分析
為方便大家復現,完整表皮源結構和數據如下:
CREATE TABLE `t3` (
`c1` int(11) NOT NULL AUTO_INCREMENT,
`c2` int(11) DEFAULT NULL,
PRIMARY KEY (`c1`),
UNIQUE KEY `c2` (`c2`)
) ENGINE=InnoDB
insert into t3 values(1,1),(15,15),(20,20);
在 session1 執行 commit 的瞬間,我們會看到 session2、session3 的其中一個報死鎖。這個死鎖是這樣產生的:
遲毀
1.session1 執行 delete 會在唯一索引 c2 的 c2 = 15 這一記錄上加 X lock(也就是在MySQL 內部觀測到的:X Lock but not gap);
2.session2 和 session3 在執行 insert 的時候,由於唯一約束檢測發生唯一沖突,會加 S Next-Key Lock,即對 (1,15] 這個區間加鎖包括間隙,並且被 seesion1 的 X Lock 阻塞,進入等待;
3.session1 在執行 commit 後,會釋放 X Lock,session2 和 session3 都獲得 S Next-Key Lock;
4.session2 和 session3 繼續執行插入操作,這個時候 INSERT INTENTION LOCK(插入意向鎖)出現了,並且由於插入意向鎖會被 gap 鎖阻塞,所以 session2 和 session3 互相等待,造成死鎖。
死鎖日誌如下:
INSERT INTENTION LOCK
在之前的死鎖分析第四點,如果不分析插入意向鎖,也是會造成死鎖的,因為插入最終還是要對記錄加 X Lock 的,session2 和 session3 還是會互相阻塞互相等待。
但是插入意向鎖是客觀存在的,我們可以在官方手冊中查到,不可忽略:
插入意向鎖其實是一種特殊的 gap lock,但是它不會阻塞其他鎖。假設存在值為 4 和 7 的索引記錄,嘗試插入值 5 和 6 的兩個事務在獲取插入行上的排它鎖之前使用插入意向鎖鎖定間隙,即在(4,7)上加 gap lock,但是這兩個事務不會互相沖突等待。
當插入一條記錄時,會去檢查當前插入位置的下一條記錄上是否存在鎖對象,如果下一條記錄上存在鎖對象,就需要判斷該鎖對象是否鎖住了燃旦態 gap。如果 gap 被鎖住了,則插入意向鎖與之沖突,進入等待狀態(插入意向鎖之間並不互斥)。總結一下這把鎖的屬性:
1. 它不會阻塞其他任何鎖;
2. 它本身僅會被 gap lock 阻塞。
在學習 MySQL 過程中,一般只有在它被阻塞的時候才能觀察到,所以這也是它常常被忽略的原因吧...
GAP LOCK
在此例中,另外一個重要的點就是 gap lock,通常情況下我們說到 gap lock 都只會聯想到 REPEATABLE-READ 隔離級別利用其解決幻讀。但實際上在 READ-COMMITTED 隔離級別,也會存在 gap lock ,只發生在:唯一約束檢查到有唯一沖突的時候,會加 S Next-key Lock,即對記錄以及與和上一條記錄之間的間隙加共享鎖。
通過下面這個例子就能驗證:
這里 session1 插入數據遇到唯一沖突,雖然報錯,但是對 (15,20] 加的 S Next-Key Lock 並不會馬上釋放,所以 session2 被阻塞。另外一種情況就是本文開始的例子,當 session2 插入遇到唯一沖突但是因為被 X Lock 阻塞,並不會立刻報錯 「Duplicate key」,但是依然要等待獲取 S Next-Key Lock 。
有個困惑很久的疑問:出現唯一沖突需要加 S Next-Key Lock 是事實,但是加鎖的意義是什麼?還是說是通過 S Next-Key Lock 來實現的唯一約束檢查,但是這樣意味著在插入沒有遇到唯一沖突的時候,這個鎖會立刻釋放,這不符合二階段鎖原則。這點希望能與大家一起討論得到好的解釋。
如果是在 REPEATABLE-READ,除以上所說的唯一約束沖突外,gap lock 的存在是這樣的:
普通索引(非唯一索引)的S/X Lock,都帶 gap 屬性,會鎖住記錄以及前1條記錄到後1條記錄的左閉右開區間,比如有[4,6,8]記錄,delete 6,則會鎖住[4,8)整個區間。
對於 gap lock,相信 DBA 們的心情是一樣一樣的,所以我的建議是:
1. 在絕大部分的業務場景下,都可以把 MySQL 的隔離界別設置為 READ-COMMITTED;
2. 在業務方便控制欄位值唯一的情況下,盡量減少表中唯一索引的數量。
鎖沖突矩陣
前面我們說的 GAP LOCK 其實是鎖的屬性,另外我們知道 InnoDB 常規鎖模式有:S 和 X,即共享鎖和排他鎖。鎖模式和鎖屬性是可以隨意組合的,組合之後的沖突矩陣如下,這對我們分析死鎖很有幫助: