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

oracle如何解除鎖定,oracle解除死鎖

oracle查詢資源占用,鎖表解鎖

1. 先通過top命令查看產(chǎn)用資源較多的spid號

成都創(chuàng)新互聯(lián)公司是專業(yè)的桓臺網(wǎng)站建設(shè)公司,桓臺接單;提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè),網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行桓臺網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!

2.查詢當(dāng)前耗時的會話ID,用戶名,sqlID等:

select sid,serial#,machine,username,program,sql_hash_value,sql_id,

? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session

where paddr in (select addr from v$process where spid in ('5648612','256523'));

3. 如果上一步sql_id或者 hash_value不為空,則可用v$sqlarea查出當(dāng)前正在使用的sql

select sql_text

from v$sqltext_with_newlines

where hash_value = hash_value

order by piece;

也可直接使用:

select a.*,b.SQL_TEXT from (

select sid,serial#,machine,username,program,sql_hash_value,sql_id,

? to_char(logon_time,'yyyy/mm/dd hh24:mi:ss') as login_time from v$session

where paddr in (select addr from v$process where spid in ('23226'))

) a,v$sql b

where a.sql_id? = b.SQL_ID(+)

4.kill占用大資源的session

Alter system kill session 'SID,SERIAL#'

解鎖:

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.下面的語句用來殺死一個進(jìn)程:

alter system kill session '524,1095'; (其中24,111分別是上面查詢出的sid,serial#)

3.再一次查詢目前鎖定的對象,若發(fā)現(xiàn)以上方法不能解除鎖定的表,則用以下方法:

3.1 執(zhí)行下面的語句獲得進(jìn)程(線程)號:

select spid, osuser, s.program

from v$session s,v$process p

where s.paddr=p.addr and s.sid=524 (524是上面的sid)

Oracle數(shù)據(jù)庫,如何解除數(shù)據(jù)庫用戶賬戶的鎖定呢???如何修改口令呢???

這兩個操作都需要用sysdba身份去修改,方法如下:

1、win+R,輸入cmd,回車。

2、以sysdba身份連接oracle的sqlplus。

sqlplus?/nolog

conn?/?as?sysdba

3、解鎖語句用:

alter?user?用戶名?account?unlock;

4、修改口令語句用:

alter?user?用戶名?identified?by?密碼;

ORACLE報錯 ORA-28000: 帳戶已被鎖定 解決方法,如何解鎖?

原因:oracle輸入密碼不正確,試了10次后,會自動鎖定用戶。

解決方法:使用sqlplus命令行解鎖。

步驟:

1、打開sqlplus窗口,用sysdba角色登錄

2、請輸入用戶名: /as sysdba

3、SQLalter user GALTTEST account unlock;

? 用戶已更改。

解鎖成功啦!

oracle 帳號scott被鎖定 如何解鎖

原因:默認(rèn)Oracle10g的scott不能登陸。

解決:

(1)conn

sys/sys

as

sysdba;//以DBA的身份登錄

(2)alter

user

scott

account

unlock;//

然后解鎖

(3)conn

scott/tiger

//彈出一個修改密碼的對話框,修改一下密碼就可以了

具體操作步驟如下:

C:

sqlplus

請輸入用戶名:sys

輸入口令:sys

as

sysdba

//注意:在口令這里輸入的密碼后面必須要跟上

as

sysdba

才可以。

SQL

alter

user

scott

account

unlock;

用戶已更改.

SQL

commit;

提交完成.

SQL

conn

scott/tiger

更改scott口令

新口令:tiger

重新鍵入新口令:tiger

口令已更改

已連接。

另一種方法:你打開命令提示符,不要登錄直接輸入下面:

sqlplus

sys/tiger

as

sysdba

以dba方式進(jìn)入sys帳戶;

alter

user

scott

account

unlock;

給scott用戶解鎖;

如何解除Oracle 帳號鎖定

查詢鎖表

SELECT object_name, machine, s.sid, s.serial#

FROM gv$locked_object l, dba_objects o, gv$session s

WHERE l.object_id = o.object_id

AND l.session_id = s.sid;

2解鎖

--釋放SESSION SQL:

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

ALTER system kill session '23, 1647';

3鎖表原因分析

1.對數(shù)據(jù)庫操作update,insert,delete時候,數(shù)據(jù)庫無法更新,操作等待時長,操作結(jié)果不發(fā)生改變

2.在程序中,底層(數(shù)據(jù)訪問層)操作時候,不成功,數(shù)據(jù)庫連接超時,無法操作,或者操作等待時長等現(xiàn)象

【加鎖的原理】:比如一個操作在進(jìn)行修改一表,它沒完成,另一個操作也操作這張表時候就需要等待,前面操作結(jié)束之后才可進(jìn)行操作。

4鎖表分類以及如何避免鎖表

Oracle鎖表 行級鎖 表級鎖

---- 行被排他鎖定

----在某行的鎖被釋放之前,其他用戶不能修改此行 ----使用 commit 或 rollback 命令釋放鎖

----Oracle 通過使用 INSERT、UPDATE 和 SELECT…FOR UPDATE 語句自動獲取行級鎖

SELECT…FOR UPDATE 子句 ―在表的一行或多行上放置排他鎖 ―用于防止其他用戶更新該行

―可以執(zhí)行除更新之外的其他操作

―select * from goods where gid=1001 ―for update of gname;

―只有該用戶提交事務(wù),其他用戶才能夠更新gname

FOR UPDATE WAIT 子句 ―Oracle9i 中的新增功能 ―防止無限期地等待鎖定的行 ―等待間隔必須指定為數(shù)值文字

―等待間隔不能是表達(dá)式、賦值變量或 PL/SQL 變量

―select * from goods where gid=1001 for update of gname wait 3 ―等待用戶釋放更新鎖的時間為3秒,否則超時。 ?表級鎖

―保護(hù)表的數(shù)據(jù)

―在多個用戶同時訪問數(shù)據(jù)時確保數(shù)據(jù)的完整性 ―可以設(shè)置為三種模式:共享、共享更新和 排他

語法:lock table table_namein mode; 共享鎖 ―鎖定表

―僅允許其他用戶執(zhí)行查詢操作 ―不能插入、更新和刪除

―多個用戶可以同時在同一表中放置此鎖 ―lock table table_name ―in share mode [nowait];

― rollback 和commit 命令釋放鎖 ― nowait 關(guān)鍵字告訴其他用戶不用等待 共享更新鎖

―鎖定要被更新的行

―允許其他用戶同時查詢、插入、更新未被鎖定的行

―在 SELECT 語句中使用“FOR UPDATE”子句,可以強(qiáng)制使用共享更新鎖 ―允許多個用戶同時鎖定表的不同行

加鎖的兩種方法

lock table tab_name in share update mode; select column1,column2 from goods where goods where gid=1001

for update of column1,column2 排他鎖

―與其他兩種鎖相比,排他鎖是限制性最強(qiáng)的表鎖 ―僅允許其他用戶查詢數(shù)據(jù)

―不允許執(zhí)行插入、刪除和更新操作

―在同一時間僅允許一位用戶在表上放置排他鎖 ―共享鎖與此相反

lock table tab_name in exclusive mode; lock table 表名[ 表名]... in share mode [nowait]

lock table 表名[ 表名]... in exclusive mode [nowait] lock table 表名[ 表名]... in share update mode[nowait]

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

LOCK Name

LOCK — 在事務(wù)中明確地鎖定一個表 LOCK [ TABLE ] name

LOCK [ TABLE ] name IN [ ROW | ACCESS ] { SHARE | EXCLUSIVE } MODE

LOCK [ TABLE ] name IN SHARE ROW EXCLUSIVE MODE 輸入

name

要鎖定的現(xiàn)存的表.

ACCESS SHARE MODE

注意: 這個鎖模式對被查詢的表自動生效。

這是最小限制的鎖模式,只與 ACCESS EXCLUSIVE 模式?jīng)_突。 它用于保護(hù)被查詢的表免于被并行的 ALTER TABLE, DROP TABLE 和 VACUUM 對同一表操作的語句修改。

ROW SHARE MODE

注意: 任何 SELECT...FOR UPDATE 語句執(zhí)行時自動生效。 因為它是一個共享鎖,以后可能更新為 ROW EXCLUSIVE 鎖。

與 EXCLUSIVE 和 ACCESS EXCLUSIVE 鎖模式?jīng)_突。

ROW EXCLUSIVE MODE

注意: 任何 UPDATE, DELETE和 INSERT 語句執(zhí)行時自動生效。

與 SHARE, SHARE ROW EXCLUSIVE, EXCLUSIVE 和 ACCESS EXCLUSIVE 模式?jīng)_突。

SHARE MODE

注意: 任何 CREATE INDEX 語句執(zhí)行時自動附加。 共享鎖住整個表.

與 ROW EXCLUSIVE,SHARE ROW EXCLUSIVE,EXCLUSIVE 和 ACCESS EXCLUSIVE 模式?jīng)_突。這個模式防止一個表被并行更新。

SHARE ROW EXCLUSIVE MODE

注意: 這個模式類似 EXCLUSIVE MODE,但是允許其他事務(wù)的 SHARE ROW 鎖.

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

與 ROW EXCLUSIVE,SHARE,SHARE ROW EXCLUSIVE,EXCLUSIVE 和 ACCESS EXCLUSIVE 模式?jīng)_突。

EXCLUSIVE MODE

注意: 這個模式同樣比 SHARE ROW EXCLUSIVE 更有約束力. 它阻塞所有并行的 ROW SHARE/SELECT... FOR UPDATE 查詢。

與 ROW EXCLUSIVE,SHARE,SHARE ROW EXCLUSIVE,EXCLUSIVE 和 ACCESS EXCLUSIVE 模式?jīng)_突。

ACCESS EXCLUSIVE MODE

注意: 由語句 ALTER TABLE, DROP TABLE,VACUUM 執(zhí)行時自動生效。這是最嚴(yán)格的約束鎖,它與所有其他的鎖 模式?jīng)_突并且保護(hù)一個被鎖定的表不被任何其他并行的操作更改。

注意: 一個不合格的 LOCK TABLE 同樣要求這個鎖模式 (例如,一條沒有顯式鎖模式選項的命令)。

輸出

LOCK TABLE 成功鎖定后的返回.

ERROR name: Table does not exist. 如果name 不存在,返回此信息.

描述

LOCK TABLE 控制一次事務(wù)的生命期內(nèi)對某表的并行訪問. Postgres 在可能的情況下盡可能使用最小約束的鎖模式。 LOCK TABLE 在你需要時提供更有約束力的鎖。

RDBMS 鎖定使用下面術(shù)語:

EXCLUSIVE

排它鎖,防止其他(事務(wù))鎖的產(chǎn)生.

SHARE

允許其他(事務(wù))共享鎖.避免 EXCLUSIVE 鎖.

ACCESS

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

鎖定表結(jié)構(gòu).

ROW

鎖定獨立的行.

注意: 如果沒有聲明 EXCLUSIVE 或 SHARE,假設(shè)為 EXCLUSIVE.鎖存在于事務(wù)周期內(nèi).

例如,一個應(yīng)用在 READ COMMITED 隔離級別上運行事務(wù), 并且它需要保證在表中的數(shù)據(jù)在事務(wù)的運行過程中都存在。要實現(xiàn)這個你 可以在查詢之前對表使用 SHARE 鎖模式進(jìn)行鎖定。這樣將保護(hù)數(shù)據(jù)不被 并行修改并且為任何更進(jìn)一步的對表的讀操作提供實際狀態(tài)的數(shù)據(jù), 因為 SHARE 鎖模式與任何寫操作需要的 ROW EXCLUSIVE 模式?jīng)_突,并且你的 LOCK TABLE name IN SHARE MODE 語句將等到所有并行的寫操作提交或回卷后才執(zhí)行。

注意: 當(dāng)在 SERIALIZABLE 隔離級別運行事務(wù),而且你需要讀取真實狀態(tài)的數(shù)據(jù)時, 你必須在執(zhí)行任何 DML 語句 (這時事務(wù)定義什么樣的并行修改對它自己是可見的) 之前運行一個 LOCK TABLE 語句。

除了上面的要求外,如果一個事務(wù)準(zhǔn)備修改一個表中的數(shù)據(jù), 那么應(yīng)該使用 SHARE ROW EXCLUSIVE 鎖模式以避免死鎖情況(當(dāng)兩個 并行的事務(wù)試圖以 SHARE 模式鎖住表然后試圖更改表中的數(shù)據(jù)時, 兩個事務(wù)(隱含的)都需要 ROW EXCLUSIVE 鎖模式,而此模式與并行的 SHARE 鎖沖突)。

繼續(xù)上面的死鎖(兩個事務(wù)彼此等待)問題, 你應(yīng)該遵循兩個通用的規(guī)則以避免死鎖條件:

事務(wù)應(yīng)該以相同的順序?qū)ο嗤膶ο笳埱箧i。

例如,如果一個應(yīng)用更新行 R1 然后更新行 R2(在同一的事務(wù)里), 那么第二個應(yīng)用如果稍后要更新行 R1 時不應(yīng)該更新行 R2(在 同一事務(wù)里)。相反,它應(yīng)該與第一個應(yīng)用以相同的順序更新行 R1 和 R2。

事務(wù)請求兩個互相沖突的鎖模式的前提:其中一個鎖模式是自沖突的 (也就是說,一次只能被一個事務(wù)持有)。 如果涉及多種鎖模式,那么事務(wù)應(yīng)該總是最先請求最嚴(yán)格的鎖模式。

這個規(guī)則的例子在前面的關(guān)于用 SHARE ROW EXCLUSIVE 模式取代 SHARE 模式的討論中已經(jīng)給出了。 -----------------------------------------------------------------------------------------------

注意: Postgres 的確檢測死鎖, 并將回卷至少一個等待的事務(wù)以解決死鎖。

注意

LOCK 是 Postgres 語言擴(kuò)展.

除了ACCESS SHARE/EXCLUSIVE 鎖模式外,所有其他 Postgres 鎖模式和 LOCK TABLE 語句都與那些在 Oracle 里面的兼容。

LOCK 只在事務(wù)內(nèi)部使用.

用法

演示在往一個外鍵表上插入時在有主鍵的表上使用 SHARE 的鎖:

BEGIN WORK;

LOCK TABLE films IN SHARE MODE; SELECT id FROM films

WHERE name = 'Star Wars: Episode I - The Phantom Menace';

-- 如果記錄沒有返回則回卷

INSERT INTO films_user_comments VALUES

(_id_, 'GREAT! I was waiting for it for so long!'); COMMIT WORK;

在執(zhí)行刪除操作時對一個有主鍵的表進(jìn)行 SHARE ROW EXCLUSIVE 鎖:

BEGIN WORK;

LOCK TABLE films IN SHARE ROW EXCLUSIVE MODE; DELETE FROM films_user_comments WHERE id IN (SELECT id FROM films WHERE rating 5); DELETE FROM films WHERE rating 5; COMMIT WORK; 兼容性 SQL92

在SQL92里面沒有LOCK TABLE ,可以使用 SET TRANSACTION 來聲明當(dāng)前事務(wù)的級別. 我們也支持這個,參閱 SET TRANSACTION 獲取詳細(xì)信息。

Oracle賬號被鎖定如何解鎖

今天訪問應(yīng)用的時候,發(fā)現(xiàn)賬號被鎖定,登錄oracle后,發(fā)現(xiàn)很多用戶都被鎖定了??聪绿崾拘畔?,原來是密碼過期了導(dǎo)致賬號被鎖定。這里記錄下這幾個操作的常用命令,以方便以后自己的使用。

1.查看用戶的proifle是哪個,一般是default

SELECT username,PROFILE FROM dba_users;

2.查看對應(yīng)的概要文件(如default)的密碼有效期設(shè)置

SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME';

3.將概要文件(如default)的密碼有效期由默認(rèn)的180天修改成“無限制”(修改之后不需要重啟動數(shù)據(jù)庫,會立即生效)

ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;

4.對已經(jīng)鎖定和過期的賬號進(jìn)行解鎖

(1)alter user 用戶名 identified by 原來的密碼 account unlock; ----不用換新密碼,用戶名和密碼也不用加引號,這個命令會解鎖賬號,同時取消密碼過期。

(2)alter user 用戶名 account unlock; ----這個只會解鎖賬號,而不會取消密碼過期,所以建議使用上面的口令

網(wǎng)站題目:oracle如何解除鎖定,oracle解除死鎖
文章鏈接:http://jinyejixie.com/article6/hseoig.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開發(fā)網(wǎng)站設(shè)計公司、網(wǎng)站導(dǎo)航網(wǎng)站排名、網(wǎng)站建設(shè)、品牌網(wǎng)站設(shè)計

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
利津县| 门头沟区| 楚雄市| 汝阳县| 娱乐| 赣榆县| 修水县| 新化县| 衡东县| 永泰县| 澎湖县| 岐山县| 乐安县| 枣庄市| 瑞丽市| 金寨县| 陇西县| 石阡县| 通化县| 敦煌市| 鱼台县| 邮箱| 汉川市| 江华| 曲阜市| 错那县| 乌鲁木齐县| 南郑县| 应用必备| 虹口区| 湖北省| 镇康县| 贡觉县| 大同市| 迁西县| 大城县| 乌兰察布市| 资中县| 西峡县| 东宁县| 临夏县|