Oracle常用操作命令


一、DOS命令下用超管進入

sqlplus /nolog;
conn / as sysdba;

二、修改INIT.ORA文件參數

alter system set undo_tablespace=undotbs2 scope=spfile;
alter system set undo_management=auto scope=spfile;

三、啟用/關閉 歸檔日志(archive log)

  • 開啟歸檔日志
shutdown immediate;
startup mount;
alter database archivelog; -- 開啟歸檔日志
alter database open; -- 開啟數據庫
archive log list; --查看歸檔日志狀態
  • 關閉歸檔日志
shutdown immediate;
startup mount;
alter database noarchivelog; alter database open; archive log list;

四、修改最大連接數

  • 查詢數據庫最大連接數
select value from v$parameter where name = 'processes'; --數據庫允許的最大連接數
  • 修改最大連接數
alter system set processes = 1000 scope = spfile;
shutdown immediate; startup

 五、查詢oracle版本

select * from v$version;

 

六、比較命令decode 

select decode(sign(變量1 - 變量2), -1, 變量1, 變量2) from dual; --取較小值

 

七、查看表大小 

select segment_name,
       tablespace_name,
       bytes B,
       bytes / 1024 KB,
       bytes / 1024 / 1024 MB
  from user_segments
 where segment_type = 'TABLE';

八、查看死鎖與解鎖

  查詢死鎖:

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#;

  解鎖:

alter system kill session 'sid,serial#'; --結合上面查詢死鎖結果使用

九、查詢數據庫正在使用用戶信息

select a."MACHINE", a."PROGRAM", a."PREV_EXEC_START", a.terminal
  from v$session a
 where a.username = 'HRPDEV';

🔟、查看表空間名稱及大小

select t.tablespace_name, round(sum(bytes / (1024 * 1024)), 0) ts_size
  from dba_tablespaces t, dba_data_files d
 where t.tablespace_name = d.tablespace_name
 group by t.tablespace_name;
  • 查看表空間物理名稱及大小

select tablespace_name,
       file_id,
       file_name,
       round(bytes / (1024 * 1024), 0) total_space
  from dba_data_files
 order by tablespace_name;
  • 查看回滾段名稱及大小

select segment_name,
       tablespace_name,
       r.status,
       (initial_extent / 1024) initialextent,
       (next_extent / 1024) nextextent,
       max_extents,
       v.curext curextent
  from dba_rollback_segs r, v$rollstat v
 where r.segment_id = v.usn(+)
 order by segment_name;
  • 查看控制文件

select name from v$controlfile; 
  • 查看日志文件

select member from v$logfile; 
  • 查看表空間的使用情況

select sum(bytes) / (1024 * 1024) as free_space, tablespace_name
  from dba_free_space
 group by tablespace_name;

select a.tablespace_name,
       a.bytes total,
       b.bytes used,
       c.bytes free,
       (b.bytes * 100) / a.bytes "% USED ",
       (c.bytes * 100) / a.bytes "% FREE "
  from sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c
 where a.tablespace_name = b.tablespace_name
   and a.tablespace_name = c.tablespace_name;

十一、查看數據庫對象

select owner, object_type, status, count(*) count#
  from all_objects
 group by owner, object_type, status;

 十二、查看數據庫用戶以及對應的表空間

SELECT USERNAME, DEFAULT_TABLESPACE FROM DBA_USERS;
  • 刪除用戶以及其所有對象
DROP USER YXT CASCADE; 
  • 刪除表空間,同時刪除數據文件
DROP TABLESPACE YXT INCLUDING CONTENTS AND DATAFILES; -- YXT為用戶名

備注:

  1. 刪除表空間之前要確認該表空間沒有被其他用戶使用之后再做刪除;
  2. including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,則表空間刪不掉;
  3. including datafiles 刪除表空間中的數據文件;
  4. cascade constraints 同時刪除tablespace中表的外鍵參照;
  • 刪除DBLINK
DROP PUBLIC DATABASE LINK  HRP_ZK_LINK; -- HRP_ZK_LINK為DBLINK名稱

 十三、查看執行計划

explain plan for SQL;
select * from table(dbms_xplan.display);

例如:

  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM