orecal數據庫-解庫、解表、pdm的導入導出

一、數據庫鎖了,解庫方法(zj20160711'爲數據庫名)sql

(1)查看數據庫當前狀態:   
    select username,account_status from dba_users   where username=’zj20160711' 
 
(2)給數據庫解鎖:
    alter user zj20160711 account unlock;
 
二、表鎖了,解表方法
Oracle數據庫操做中,咱們有時會用到鎖表查詢以及解鎖和kill進程等操做
(1)鎖表查詢的代碼有如下的形式:
select count(*) from v$locked_object;
select * from v$locked_object;
(2)查看哪一個表被鎖
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)查看是哪一個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)殺掉對應進程
執行命令:alter system kill session'404,41';
其中404爲sid,41爲serial#.
 
三、doc窗口操做數據庫命令行
(1)導出
exp user/password@orcl file=D:/存放目錄
(2)導入
imp user/password@orcl file=D:/存放目錄   ignore=y  full=y
(3)刪除數據庫中的用戶
drop user XXX cascade;
XXX用戶名,直接在pl/sql中執行
 
四、PLSQL編譯存儲過程無響應前面帶紅叉,解決方法
 

解決方法以下:數據庫

(1):查V$DB_OBJECT_CACHEsession

SELECT * FROM V$DB_OBJECT_CACHE WHERE name=‘P_RWFP_AUTOAND’ LOCKS!='0';spa

注意:P_RWFP_AUTO爲存儲過程的名稱。命令行

發現locks=2,對象

(2):按對象查出sid的值進程

select /*+ rule*/  SID from V$ACCESS WHERE object=‘P_RWFP_AUTO’;it

注意:P_RWFP_AUTO爲存儲過程的名稱。io

(3):查sid,serial#編譯

SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='剛纔查到的SID';

(4):alter system kill session 'sid值,serial#值' immediate;

 

整合一下:

select /*+ rule*/  a.sid, a.serial#,        a.paddr, 'alter system kill session ''' || a.sid || ',' || a.serial# || ''';' AS kill_session,b.OBJECT FROM v$session a, v$access b WHERE a.sid = b.sid AND b.OBJECT = UPPER('m_retail_submit');
 
(5):執行完以後,存儲過程從新編輯一下
相關文章
相關標籤/搜索