真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle數(shù)據(jù)鎖死怎么解決 oracle數(shù)據(jù)庫死鎖

oracle數(shù)據(jù)庫實(shí)例被鎖如何解決?

在pl/sql Developer工具的的菜單“tools”里面的“sessions”可以查詢現(xiàn)在存在的會(huì)話,但是我們很難找到那個(gè)會(huì)話被鎖定了,想找到所以被鎖的會(huì)話就更難了,下面這叫查詢語句可以查詢出所以被鎖的會(huì)話。如下:

貢井網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司于2013年創(chuàng)立到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。

SELECT sn.username, m.SID,sn.SERIAL#, m.TYPE,

DECODE (m.lmode,

0, 'None',

1, 'Null',

2, 'Row Share',

3, 'Row Excl.',

4, 'Share',

5, 'S/Row Excl.',

6, 'Exclusive',

lmode, LTRIM (TO_CHAR (lmode, '990'))

) lmode,

DECODE (m.request,

0, 'None',

1, 'Null',

2, 'Row Share',

3, 'Row Excl.',

4, 'Share',

5, 'S/Row Excl.',

6, 'Exclusive',

request, LTRIM (TO_CHAR (m.request, '990'))

) request,

m.id1, m.id2

FROM v$session sn, v$lock m

WHERE (sn.SID = m.SID AND m.request != 0) --存在鎖請求,即被阻塞

OR ( sn.SID = m.SID --不存在鎖請求,但是鎖定的對象被其他會(huì)話請求鎖定

AND m.request = 0

AND lmode != 4

AND (id1, id2) IN (

SELECT s.id1, s.id2

FROM v$lock s

WHERE request != 0 AND s.id1 = m.id1

AND s.id2 = m.id2)

)

ORDER BY id1, id2, m.request;

通過以上查詢知道了sid和 SERIAL#就可以開殺了

alter system kill session 'sid,SERIAL#';

希望對你有所幫助。我也是不太懂,是在網(wǎng)上了解的。努力學(xué)習(xí)ing~~~

oracle數(shù)據(jù)庫死鎖怎么解決

Oracle數(shù)據(jù)庫出現(xiàn)死鎖的時(shí)候可以按照以下處理步驟加以解決:

第一步:嘗試在sqlplus中通過sql命令進(jìn)行刪除,如果能夠刪除成功,則萬事大吉!但通常情況下,出現(xiàn)死鎖時(shí),想通過命令行或者通過Oracle的管理工具刪除有死鎖的session,oracle只會(huì)將該session標(biāo)記為killed,但無法清除掉,往往需要通過第二步在操作系統(tǒng)層級進(jìn)行刪除!

Connected?to?Oracle9i?Enterprise?Edition?Release?9.2.0.1.0?

Connected?as?quik

SQL?select?xidusn,?object_id,?session_id,?locked_mode?from?v$locked_object;?--查死鎖的對象,獲取其SESSION_ID

XIDUSN?OBJECT_ID?SESSION_ID?LOCKED_MODE

----------?----------?----------?-----------

10?30724?29?3

10?30649?29?3

SQL?select?username,sid,serial#?from?v$session?where?sid=29;?--根據(jù)上步獲取到的sid查看其serial#號(hào)

USERNAME?SID?SERIAL#

------------------------------?----------?----------

QUIK?29?57107

SQL?alter?system?kill?session?'29,57107';?--刪除進(jìn)程,如已經(jīng)刪除過,則會(huì)報(bào)ora-00031的錯(cuò)誤;否則oracle會(huì)將該session標(biāo)記為killed狀態(tài),等待一段時(shí)間看能否會(huì)自動(dòng)消失,如長時(shí)間消失不掉,則需要做后續(xù)步驟

alter?system?kill?session?'29,57107'

ORA-00031:?session?marked?for?kill

SQL?select?pro.spid?from?v$session?ses,v$process?pro?where?ses.sid=29?and?ses.paddr=pro.addr;?--查看spid號(hào),以便在操作系統(tǒng)中根據(jù)該進(jìn)程號(hào)刪除進(jìn)程

SPID

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

2273286

第二步:進(jìn)入操作系統(tǒng)進(jìn)行刪除進(jìn)程,本示例的操作系統(tǒng)是IBM aix。

login:?root?--錄入用戶名

root's?Password:?--錄入密碼

*******************************************************************************

*?*

*?*

*?Welcome?to?AIX?Version?5.3!?*

*?*

*?*

*?Please?see?the?README?file?in?/usr/lpp/bos?for?information?pertinent?to?*

*?this?release?of?the?AIX?Operating?System.?*

*?*

*?*

*******************************************************************************

Last?unsuccessful?login:?Fri?Apr?23?14:42:57?BEIDT?2010?on?/dev/pts/1?from?10.73

.52.254

Last?login:?Fri?Apr?23?15:27:50?BEIDT?2010?on?/dev/pts/2?from?10.73.52.254

#?ps?-ef|grep?2273286?--查看進(jìn)程詳情

root?2289864?2494636?0?17:07:15?pts/1?0:00?grep?2273286

oracle?2273286?1?0?14:38:24?-?0:21?oracleQUIK?(LOCAL=NO)

#?kill?-9?2273286?--刪除進(jìn)程,小心操作,別寫錯(cuò)進(jìn)程號(hào),如果oracle的關(guān)鍵進(jìn)程被刪,數(shù)據(jù)庫會(huì)崩潰的!

#?ps?-ef|grep?2273286?--再次查看

root?2289864?2494636?0?17:07:15?pts/1?0:00?grep?2273286

For?Windows,?at?the?DOS?Prompt:?orakill?sid?spid

For?UNIX?at?the?command?line?kill?–9?spid

oracle怎么徹底解決鎖的問題

1、生成Kill Session語句

select?'alter?system?kill?session?'''?||?SID?||','?||?SERIAL#?||?''';'?from

(

select?distinct?a.sid,?a.Serial#,?status,?machine,?LOCKWAIT,?logon_time

from?v$session?a,?v$locked_object?b

where?(a.status?=?'ACTIVE'?or?a.status?=?'INACTIVE')

and?a.sid?=?b.session_id

and?b.ORACLE_USERNAME='XYHISTEST'--加上用戶名是避免把其他系統(tǒng)的會(huì)話也關(guān)閉,以免傷及無辜

)

2、批量執(zhí)行第一步生成的語句

alter?system?kill?session?'sid,serial#';

--alter?system?kill?session?'6976,33967';

3、查詢oracle用戶名,機(jī)器名,鎖表對象

SELECT?l.session_id?sid,?s.serial#,?l.locked_mode,l.oracle_username,

l.os_user_name,s.machine,?s.terminal,?o.object_name,?s.logon_time

FROM?v$locked_object?l,?all_objects?o,?v$session?s

WHERE?l.object_id?=?o.object_id

AND?l.session_id?=?s.sid

ORDER?BY?sid,?s.serial#?;

/*或者

select?s.SID,?s.OSUSER,?p.spid?as?OSPID,?s.MACHINE,?s.TERMINAL,?s.PROGRAM

from?v$session?s,?v$process?p

where?s.sid?=?6??--session_id

and?s.paddr?=?p.addr;

*/

4、查詢是執(zhí)行何sql語句導(dǎo)致鎖表的

select?b.sql_text

from?v$session?a,?v$sql?b

where?a.sid?=?6?--session_id

and?a.SQL_ADDRESS?=?b.ADDRESS(+);

/*--或者

SELECT?l.session_id?sid,?s.serial#,?l.locked_mode,?l.oracle_username,?s.user#,

l.os_user_name,s.machine,?s.terminal,a.sql_text,?a.action

FROM?v$sqlarea?a,v$session?s,?v$locked_object?l

WHERE?l.session_id?=?s.sid

AND?s.prev_sql_addr?=?a.address

ORDER?BY?sid,?s.serial#;

*/

oracle數(shù)據(jù)庫表被鎖了不能操作怎么辦

首先你要知道表鎖住了是不是正常鎖?因?yàn)槿魏蜠ML語句都會(huì)對表加鎖。

你要先查一下是那個(gè)會(huì)話那個(gè)sql鎖住了表,有可能這是正常業(yè)務(wù)需求,不建議隨便KILL

session,如果這個(gè)鎖表是正常業(yè)務(wù)你把session

kill掉了會(huì)影響業(yè)務(wù)的。

建議先查原因再做決定。

(1)鎖表查詢的代碼有以下的形式:

select

count(*)

from

v$locked_object;

select

*

from

v$locked_object;

(2)查看哪個(gè)表被鎖

select

b.owner,b.object_name,a.session_id,a.locked_mode

from

v$locked_object

a,dba_objects

b

where

b.object_id

=

a.object_id;

(3)查看是哪個(gè)session引起的

select

b.username,b.sid,b.serial#,logon_time

from

v$locked_object

a,v$session

b

where

a.session_id

=

b.sid

order

by

b.logon_time;

(4)查看是哪個(gè)sql引起的

select

b.username,b.sid,b.serial#,c.*

from

v$locked_object

a,v$session

b,v$sql

c

where

a.session_id

=

b.sid

and

b.SQL_ID

=

c.sql_id

and

c.sql_id

=

''

order

by

b.logon_time;

(5)殺掉對應(yīng)進(jìn)程

執(zhí)行命令:alter

system

kill

session'1025,41';

其中1025為sid,41為serial#.

oracle數(shù)據(jù)庫被鎖了怎么辦

用戶被鎖了?

FAILED_LOGIN_ATTEMPTS參數(shù)默認(rèn)是10,即:用戶連續(xù)輸入10次錯(cuò)誤密碼,用戶會(huì)被鎖??;

可以使用其他擁有DBA權(quán)限的用戶進(jìn)行解鎖;

alter user username account unlock;

如果是數(shù)據(jù)庫內(nèi)部出現(xiàn)死鎖或阻塞會(huì)話,可以先查出阻塞的會(huì)話,

select * from dba_waiters;

在殺掉阻塞的會(huì)話

alter system kill session 'sid,serial#';

測試環(huán)境,可以直接重啟數(shù)據(jù)庫!


網(wǎng)站題目:oracle數(shù)據(jù)鎖死怎么解決 oracle數(shù)據(jù)庫死鎖
分享地址:http://weahome.cn/article/hpjhds.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部