自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

ORACLE 解鎖、找回表和找回程序語(yǔ)句

數(shù)據(jù)庫(kù) Oracle
最近在工作中同事們經(jīng)常遇到鎖表、誤刪表和程序覆蓋的情況,現(xiàn)總結(jié)下遇到這三種情況的解決方案:

   最近在工作中同事們經(jīng)常遇到鎖表、誤刪表和程序覆蓋的情況,現(xiàn)總結(jié)下遇到這三種情況的解決方案:

  1.暴力刪除鎖表

  當(dāng)表被某些語(yǔ)句占用無(wú)法停止,或者出現(xiàn)事物阻塞的情況下,需要手動(dòng)刪除鎖(萬(wàn)不得已的情況下用):

  --首先查詢鎖(需要管理員權(quán)限)

  SELECT OBJECT_NAME AS 對(duì)象名稱(chēng),

  S.SID,

  S.SERIAL#,

  P.SPID AS 系統(tǒng)進(jìn)程號(hào),

  S.MACHINE

  FROM V$LOCKED_OBJECT L, DBA_OBJECTS O, V$SESSION S, V$PROCESS P

  WHERE L.OBJECT_ID = O.OBJECT_ID

  AND L.SESSION_ID = S.SID

  AND S.PADDR = P.ADDR

  AND OBJECT_NAME = 'T1';--表名要大寫(xiě)

  若出現(xiàn)結(jié)果:

  

 

  則T1表是鎖定的。

  強(qiáng)制刪除鎖的語(yǔ)句是(需要管理員權(quán)限):

  alter system kill session 'SID,SERIAL#';

  在這里也就是:alter system kill session '133,37';

  執(zhí)行完后,再運(yùn)行上述查詢sql,發(fā)現(xiàn)鎖已經(jīng)不存在了。

  2.找回誤刪表

  假如T1表被我刪了:DROP TABLE T1;

  那么找回的語(yǔ)句是:FLASHBACK TABLE t1 TO BEFORE DROP;

  因?yàn)?ldquo;drop talbe 表名” 這句話并沒(méi)有完全刪除表,通過(guò)語(yǔ)句:

  SELECT t.object_name,t.type ,t.original_name FROM user_recyclebin t;

  可以查詢到剛剛被刪的表:

  

 

  T1表是從這里被找回的。如果是這樣刪表的話:

  DROP TALBE T1 PURGE;

  那就悲劇了,上述語(yǔ)句失效!具體可以參考這篇文章:http://www.cnblogs.com/HondaHsu/archive/2012/09/28/2707487.html

  3.找回覆蓋程序

  需要管理員權(quán)限

  法一:

  根據(jù)時(shí)間點(diǎn)查詢程序信息:

  SELECT * FROM source$

  AS OF TIMESTAMP TO_TIMESTAMP('2015-7-22 09:25:32', 'YYYY-MM-DD HH24:MI:SS')

  where source like '%CREATE_ODS_INDEXES%'

  

 

  根據(jù)類(lèi)型查找出程序代碼:

  --包頭

  SELECT *

  FROM DBA_SOURCE AS OF TIMESTAMP TO_TIMESTAMP('2015-7-22 09:25:32', 'YYYY-MM-DD HH24:MI:SS')

  WHERE NAME LIKE UPPER('%CREATE_ODS_INDEXES%')

  AND OWNER = 'SCOTT'

  AND TYPE = 'PACKAGE'

  ORDER BY LINE;

  結(jié)果:

  

 

  --包體

  SELECT *

  FROM DBA_SOURCE AS OF TIMESTAMP TO_TIMESTAMP('2015-7-22 09:25:32', 'YYYY-MM-DD HH24:MI:SS')

  WHERE NAME LIKE UPPER('%CREATE_ODS_INDEXES%')

  AND OWNER = 'SCOTT'

  AND TYPE = 'PACKAGE BODY'

  ORDER BY LINE;

  結(jié)果:

  

 

  具體參考:http://blog.sina.com.cn/s/blog_6d6e54f701012mp5.html

  法二:

  根據(jù)時(shí)間點(diǎn)查詢程序信息:

  SELECT OBJ#

  FROM OBJ$ AS OF TIMESTAMP TO_TIMESTAMP('2015-7-22 09:25:32', 'YYYY-MM-DD HH24:MI:SS')

  WHERE NAME = UPPER('CREATE_ODS_INDEXES');

  結(jié)果:

  

 

  找回包頭和包體:

  --查詢出來(lái)的為包頭

  SELECT SOURCE FROM SOURCE$ AS OF TIMESTAMP TO_TIMESTAMP('2015-7-22 09:25:32', 'YYYY-MM-DD HH24:MI:SS') WHERE OBJ# = 76005;

  --查詢出來(lái)的為包體

  SELECT SOURCE FROM SOURCE$ AS OF TIMESTAMP TO_TIMESTAMP('2015-7-22 09:25:32', 'YYYY-MM-DD HH24:MI:SS') WHERE OBJ# = 76006;

  具體參考:http://blog.itpub.net/35489/viewspace-761921/

  其實(shí)這兩種方法本質(zhì)上是一樣的,具體就看個(gè)人喜好了。

責(zé)任編輯:honglu 來(lái)源: 博客園
相關(guān)推薦

2010-04-19 17:10:53

Oracle用戶密碼

2013-08-05 16:10:20

2009-01-18 09:18:00

2023-07-04 14:55:21

區(qū)塊鏈資本

2013-06-13 13:37:29

2010-03-10 09:44:51

Linux找回根密碼

2010-04-06 18:47:26

CentOS系統(tǒng)

2010-04-19 16:56:19

Oracle數(shù)據(jù)庫(kù)初始

2010-04-30 18:25:25

Unix刪除

2010-03-30 10:26:37

云安全

2010-04-30 18:32:52

Unix刪除

2019-07-17 09:20:00

Scalpel系統(tǒng)管理員Linux

2010-03-25 21:26:12

2024-01-30 00:48:46

2013-01-29 16:34:50

和力記易

2013-05-21 13:57:51

Ubuntu 13.0

2010-07-14 14:16:30

SQL Server

2009-10-10 08:47:47

2010-05-28 13:04:04

MySQL root

2018-06-04 10:53:25

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)