一、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為用戶名
備注:
- 刪除表空間之前要確認該表空間沒有被其他用戶使用之后再做刪除;
- including contents 刪除表空間中的內容,如果刪除表空間之前表空間中有內容,而未加此參數,則表空間刪不掉;
- including datafiles 刪除表空間中的數據文件;
- 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);
例如: