成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mysql進(jìn)程號(hào)怎么看 mysql查看進(jìn)程對(duì)應(yīng)的SQL

如何查mysql死鎖進(jìn)程

查詢死鎖進(jìn)程

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站制作、成都做網(wǎng)站、外貿(mào)營(yí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è)合作伙伴!

采用如下存儲(chǔ)過程來查詢數(shù)據(jù)中當(dāng)前造成死鎖的進(jìn)程。

drop procedure sp_who_lock

go

CREATE procedure sp_who_lock

as

begin

declare @spid int

declare @blk int

declare @count int

declare @index int

declare @lock tinyint

set @lock=0

create table #temp_who_lock

(

id int identity(1,1),

spid int,

blk int

)

if @@error0 return @@error

insert into #temp_who_lock(spid,blk)

select 0 ,blocked

from (select * from master..sysprocesses where blocked0)a

where not exists(select * from master..sysprocesses where a.blocked =spid and blocked0)

union select spid,blocked from master..sysprocesses where blocked0

if @@error0 return @@error

select @count=count(*),@index=1 from #temp_who_lock

if @@error0 return @@error

if @count=0

begin

select '沒有阻塞和死鎖信息'

return 0

end

while @indexA href="mailto:=@count"=@count

begin

if exists(select 1 from #temp_who_lock a where id@index and exists(select 1 from #temp_who_lock where idA href="mailto:=@index"=@index and a.blk=spid))

begin

set @lock=1

select @spid=spid,@blk=blk from #temp_who_lock where id=@index

select '引起數(shù)據(jù)庫死鎖的是: '+ CAST(@spid AS VARCHAR(10)) + '進(jìn)程號(hào),其執(zhí)行的SQL語法如下'

select @spid, @blk

dbcc inputbuffer(@spid)

dbcc inputbuffer(@blk)

end

set @index=@index+1

end

if @lock=0

begin

set @index=1

while @indexA href="mailto:=@count"=@count

begin

select @spid=spid,@blk=blk from #temp_who_lock where id=@index

if @spid=0

select '引起阻塞的是:'+cast(@blk as varchar(10))+ '進(jìn)程號(hào),其執(zhí)行的SQL語法如下'

else

select '進(jìn)程號(hào)SPID:'+ CAST(@spid AS VARCHAR(10))+ '被' + '進(jìn)程號(hào)SPID:'+ CAST(@blk AS VARCHAR(10)) +'阻塞,其當(dāng)前進(jìn)程執(zhí)行的SQL語法如下'

dbcc inputbuffer(@spid)

dbcc inputbuffer(@blk)

set @index=@index+1

end

end

drop table #temp_who_lock

return 0

end

GO

--執(zhí)行該存儲(chǔ)過程

exec sp_who_lock

補(bǔ)充:

一、產(chǎn)生死鎖的原因

在SQL Server中,阻塞更多的是產(chǎn)生于實(shí)現(xiàn)并發(fā)之間的隔離性。為了使得并發(fā)連接所做的操作之間的影響到達(dá)某一期望值而對(duì)資源人為的進(jìn)行加鎖(鎖本質(zhì)其實(shí)可以看作是一個(gè)標(biāo)志位)。當(dāng)一個(gè)連接對(duì)特定的資源進(jìn)行操作時(shí),另一個(gè)連接同時(shí)對(duì)同樣的資源進(jìn)行操作就會(huì)被阻塞,阻塞是死鎖產(chǎn)生的必要條件。

二、如何避免死鎖

1.使用事務(wù)時(shí),盡量縮短事務(wù)的邏輯處理過程,及早提交或回滾事務(wù);

2.設(shè)置死鎖超時(shí)參數(shù)為合理范圍,如:3分鐘-10分種;超過時(shí)間,自動(dòng)放棄本次操作,避免進(jìn)程懸掛;

3.優(yōu)化程序,檢查并避免死鎖現(xiàn)象出現(xiàn);

4.對(duì)所有的腳本和SP都要仔細(xì)測(cè)試,在正是版本之前;

5.所有的SP都要有錯(cuò)誤處理(通過@error);

6.一般不要修改SQL SERVER事務(wù)的默認(rèn)級(jí)別。不推薦強(qiáng)行加鎖。

三、處理死鎖

1、最簡(jiǎn)單的處理死鎖的方法就是重啟服務(wù)。

2、根據(jù)指定的死鎖進(jìn)程ID進(jìn)行處理

根據(jù)第二步查詢到的死鎖進(jìn)行,大致分析造成死鎖的原因,并通過如下語句釋放該死鎖進(jìn)程

kill pid --pid為查詢出來的死鎖進(jìn)程號(hào)

3、通過存儲(chǔ)過程殺掉某個(gè)庫下面的所有死鎖進(jìn)程和鎖

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[sp_killspid]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)

drop procedure [dbo].[sp_killspid]

GO

create proc sp_killspid

@dbname varchar(200) --要關(guān)閉進(jìn)程的數(shù)據(jù)庫名

as

declare @sql nvarchar(500)

declare @spid nvarchar(20)

declare #tb cursor for

select spid=cast(spid as varchar(20)) from master..sysprocesses where dbid=db_id(@dbname)

open #tb

fetch next from #tb into @spid

while @@fetch_status=0

begin

exec('kill '+@spid)

fetch next from #tb into @spid

end

close #tb

deallocate #tb

go

--使用方法,“db_name”為處理的數(shù)據(jù)庫名稱

exec sp_killspid 'db_name'

使用strace來跟蹤mysql查詢,看看到底是卡在什么地方.先找到mysql進(jìn)程的pid

有兩種方法,一種方法使用mysql的check table和repair table 的sql語句,另一種方法是使用MySQL提供的多個(gè)myisamchk, isamchk數(shù)據(jù)檢測(cè)恢復(fù)工具。前者使用起來比較簡(jiǎn)便。推薦使用。

1. check table 和 repair table

登陸mysql 終端:

mysql -uxxxxx -p dbname

check table tabTest;

如果出現(xiàn)的結(jié)果說Status是OK,則不用修復(fù),如果有Error,可以用:

repair table tabTest;

進(jìn)行修復(fù),修復(fù)之后可以在用check table命令來進(jìn)行檢查。在新版本的phpMyAdmin里面也可以使用check/repair的功能。

2. myisamchk, isamchk

其中myisamchk適用于MYISAM類型的數(shù)據(jù)表,而isamchk適用于ISAM類型的數(shù)據(jù)表。這兩條命令的主要參數(shù)相同,一般新的系統(tǒng)都使用MYISAM作為缺省的數(shù)據(jù)表類型,這里以myisamchk為例子進(jìn)行說明。當(dāng)發(fā)現(xiàn)某個(gè)數(shù)據(jù)表出現(xiàn)問題時(shí)可以使用:

myisamchk tablename.MYI

進(jìn)行檢測(cè),如果需要修復(fù)的話,可以使用:

myisamchk -of tablename.MYI

關(guān)于myisamchk的詳細(xì)參數(shù)說明,可以參見它的使用幫助。需要注意的時(shí)在進(jìn)行修改時(shí)必須確保MySQL服務(wù)器沒有訪問這個(gè)數(shù)據(jù)表,保險(xiǎn)的情況下是最好在進(jìn)行檢測(cè)時(shí)把MySQL服務(wù)器Shutdown掉。

-----------------------------

另外可以把下面的命令放在你的rc.local里面啟動(dòng)MySQL服務(wù)器前:

[ -x /tmp/mysql.sock ] /pathtochk/myisamchk -of /DATA_DIR/*/*.MYI

其中的/tmp/mysql.sock是MySQL監(jiān)聽的Sock文件位置,對(duì)于使用RPM安裝的用戶應(yīng)該是/var/lib/mysql/mysql.sock,對(duì)于使用源碼安裝則是/tmp/mysql.sock可以根據(jù)自己的實(shí)際情況進(jìn)行變更,而pathtochk則是myisamchk所在的位置,DATA_DIR是你的MySQL數(shù)據(jù)庫存放的位置。

需要注意的時(shí),如果你打算把這條命令放在你的rc.local里面,必須確認(rèn)在執(zhí)行這條指令時(shí)MySQL服務(wù)器必須沒有啟動(dòng)!檢測(cè)修復(fù)所有數(shù)據(jù)庫(表)

如何查看Linux下mysql服務(wù)的進(jìn)程是否正常運(yùn)行?

通過ps命令查看mysql進(jìn)程即可,執(zhí)行如下命令:

ps -aux|grep mysql

執(zhí)行結(jié)果中看到了mysql進(jìn)程,確定mysql正在運(yùn)行。

mysql 1634 0.0 0.1 13980 1268 ? S Aug11 0:00 [mysqld]

root 6849 0.0 0.0 4816 640 pts/1 S 09:40 0:00 grep mysql

mysql客戶端工具中,請(qǐng)問如何查詢當(dāng)前所有的鏈接進(jìn)程信息

如果要查詢服務(wù)器上正在跑哪些查詢進(jìn)程,使用show processlist;

如果要查詢當(dāng)?shù)啬男┻M(jìn)程正在和mysql交互,可以使用操作系統(tǒng)自帶的netstat等工具查看mysql所在的IP和3306端口

Linux中如何知道一個(gè)文件是被哪個(gè)程序創(chuàng)建的?

要在用rpm 安裝的軟件包才能被查詢到,如你想查詢/etc/my.cnf 文件的由什么軟件包構(gòu)成。

但是查詢不到文件的,創(chuàng)建這個(gè)文件的進(jìn)程是否允許。

你可以分開查詢:

1.用 rpm -qf /etc/my.cnf 查詢出這個(gè)文件的軟件包 是 mysql的。

2.用ps aux|grep mysql 查看mysql 的進(jìn)程號(hào)。

3.用 lsof 來查看 這個(gè)mysql的進(jìn)程號(hào) 就可得知 這個(gè)進(jìn)程調(diào)用了 哪個(gè)類庫,使用哪個(gè)文件。

如果你有什么好的辦法 也請(qǐng)你告訴我,我目前是用這種辦法來做的。

在linux中,怎樣查看Mysql服務(wù)運(yùn)行狀態(tài)?

使用命令 # service mysqld status 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示: mysqld is stopped 那就說明mysql服務(wù)是停止?fàn)顟B(tài),如果是 mysqld is running 那就說明mysql服務(wù)是啟動(dòng)狀態(tài)。

2.使用命令chkconfig --list 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示:在一下服務(wù)中找到mysqld的服務(wù)沒如果狀態(tài)為off,說明mysql服務(wù)沒有啟動(dòng)。

3.使用命令chkconfig --list mysqld 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示:在一下服務(wù)中找到mysqld的服務(wù)沒如果狀態(tài)為off,說明mysql服務(wù)沒有啟動(dòng)。

4.使用命令chkconfig --list | grep on 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示:如果mysql服務(wù)已經(jīng)啟動(dòng)那么這里就會(huì)有這個(gè)服務(wù)。

5.使用命令chkconfig --list | grep off 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示:如果mysql服務(wù)沒有啟動(dòng)那么這里就會(huì)有這個(gè)服務(wù)。

6.使用命令ps aux | grep mysqld 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示:下圖對(duì)比是啟動(dòng)與不啟動(dòng)的狀態(tài)。

7.使用命令 pidof mysqld 命令來查看mysql 的啟動(dòng)狀態(tài)如圖所示:如果顯示PID說明程序啟動(dòng),不顯示PID即為程序沒有啟動(dòng)。

擴(kuò)展資料:

linux文件類型:

普通文件(regular file):就是一般存取的文件,由ls -al顯示出來的屬性中,第一個(gè)屬性為 [-],例如 [-rwxrwxrwx]。另外,依照文件的內(nèi)容,又大致可以分為:

1、純文本文件(ASCII):這是Unix系統(tǒng)中最多的一種文件類型,之所以稱為純文本文件,是因?yàn)閮?nèi)容可以直接讀到的數(shù)據(jù),例如數(shù)字、字母等等。設(shè) 置文件幾乎都屬于這種文件類型。舉例來說,使用命令“cat ~/.bashrc”就可以看到該文件的內(nèi)容(cat是將文件內(nèi)容讀出來)。

2、二進(jìn)制文件(binary):系統(tǒng)其實(shí)僅認(rèn)識(shí)且可以執(zhí)行二進(jìn)制文件(binary file)。Linux中的可執(zhí)行文件(腳本,文本方式的批處理文件不算)就是這種格式的。舉例來說,命令cat就是一個(gè)二進(jìn)制文件。

3、數(shù)據(jù)格式的文件(data):有些程序在運(yùn)行過程中,會(huì)讀取某些特定格式的文件,那些特定格式的文件可以稱為數(shù)據(jù)文件(data file)。舉例來說,Linux在用戶登入時(shí),都會(huì)將登錄數(shù)據(jù)記錄在 /var/log/wtmp文件內(nèi),該文件是一個(gè)數(shù)據(jù)文件,它能通過last命令讀出來。但使用cat時(shí),會(huì)讀出亂碼。因?yàn)樗菍儆谝环N特殊格式的文件。

目錄文件(directory):就是目錄,第一個(gè)屬性為 [d],例如 [drwxrwxrwx]。

連接文件(link):類似Windows下面的快捷方式。第一個(gè)屬性為 [l],例如 [lrwxrwxrwx]。

設(shè)備與設(shè)備文件(device):與系統(tǒng)外設(shè)及存儲(chǔ)等相關(guān)的一些文件,通常都集中在 /dev目錄。通常又分為兩種:

塊設(shè)備文件:就是存儲(chǔ)數(shù)據(jù)以供系統(tǒng)存取的接口設(shè)備,簡(jiǎn)單而言就是硬盤。例如一號(hào)硬盤的代碼是 /dev/hda1等文件。第一個(gè)屬性為 [b]。

字符設(shè)備文件:即串行端口的接口設(shè)備,例如鍵盤、鼠標(biāo)等等。第一個(gè)屬性為 [c]。

套接字(sockets):這類文件通常用在網(wǎng)絡(luò)數(shù)據(jù)連接。可以啟動(dòng)一個(gè)程序來監(jiān)聽客戶端的要求,客戶端就可以通過套接字來進(jìn)行數(shù)據(jù)通信。第一個(gè)屬性為 [s],最常在 /var/run目錄中看到這種文件類型。

管道(FIFO,pipe):FIFO也是一種特殊的文件類型,它主要的目的是,解決多個(gè)程序同時(shí)存取一個(gè)文件所造成的錯(cuò)誤。FIFO是first-in-first-out(先進(jìn)先出)的縮寫。第一個(gè)屬性為 [p]。

參考資料:php中文網(wǎng)-linux如何查看mysql是否啟動(dòng)?

分享文章:mysql進(jìn)程號(hào)怎么看 mysql查看進(jìn)程對(duì)應(yīng)的SQL
瀏覽路徑:http://jinyejixie.com/article18/dochjgp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)、手機(jī)網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、App開發(fā)、電子商務(wù)、自適應(yīng)網(wǎng)站

廣告

聲明:本網(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í)需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
黄平县| 新乡市| 增城市| 乌兰县| 尉氏县| 南宫市| 正蓝旗| 永康市| 元谋县| 华容县| 淮北市| 平山县| 沾益县| 芜湖市| 库尔勒市| 噶尔县| 茌平县| 喀喇| 驻马店市| 杂多县| 宣恩县| 高陵县| 安徽省| 静乐县| 文昌市| 梁河县| 宣武区| 准格尔旗| 忻城县| 麻江县| 称多县| 兰州市| 台北市| 锡林浩特市| 清新县| 澄城县| 三原县| 麻江县| 东阳市| 平乡县| 华池县|