1 查看表空間的名稱及大小 8
2 查看表空間物理文件的名稱及大小 8
3 查看回滾段名稱及大小 8
4 查看控制文件 8
5查看日志文件 8
6 查看表空間的使用情況 8
7 查看數據庫庫對象 9
8 查看數據庫的版本 9
9 查看數據庫的創建日期和歸檔方式 9
10 捕捉運行很久的SQL 9
11 查看數據表的參數信息 9
12 查看還沒提交的事務 9
13 查找object為哪些進程所用 10
14 回滾段查看 10
15 耗資源的進程(top session) 10
16 查看鎖(lock)情況 11
17 查看等待(wait)情況 11
18 查看sga情況 11
19 查看catched object 11
20 查看V$SQLAREA 11
21 查看object分類數量 11
22 按用戶查看object種類 11
23 有關connection的相關信息 12
1 查看有哪些用戶連接 12
2 根據v.sid查看對應連接的資源占用等情況 12
3 根據sid查看對應連接正在運行的sql 12
24 查詢表空間使用情況 13
25 查詢表空間的碎片程度 13
26 查詢有哪些數據庫實例在運行 14
27 創建數據look $ORACLE_HOME/rdbms/admin/buildall.sql 14
28 數據字典 14
29 revoke dba from user_name; 15
30控制文件 15
31備份用戶表空間 16
32備份控制文件 16
33備份控制文件,并將二進制控制文件變為了asc 的文本文件 16
34redo log 16
1加入一個日志組 17
2加入日志組的一個成員 17
3刪除日志組:當前日志組不能刪;活動的日志組不能刪;非歸檔的日志組不能刪 17
4刪除日志組中的某個成員,但每個組的最后一個成員不能被刪除 17
5清除在線日志 17
6清除非歸檔日志 17
7重命名日志文件 18
8數據庫歸檔模式到非歸檔模式的互換,要啟動到mount狀態下才能改變;startup mount;然后再打開數據庫. 18
35分析日志文件logmnr 18
1實踐: 19
2對數據表做一些操作,為恢復操作做準備 19
36 tablespace 19
1表空間和數據文件的對應關系 19
2限制用戶在某表空間的使用限額 19
3 9i以后,oracle建議使用local管理,而不使用dictionary管理,因為local采用bitmap管理表空間 ,不會產生系統表空間的自愿爭用 20
4 在創建表空間時,設置表空間內的段空間管理模式,這里用的是自動管理 20
5 undo tablespace(不能被用在字典管理模下) 20
6 設置數據庫缺省的臨時表空間 21
7系統/臨時/在線的undo表空間不能被offline 21
8重命名用戶表空間 21
9重命名系統表空間 ,但在重命名前必須將數據庫shutdown,并重啟到mount狀態 21
10resize tablespace,autoextend datafile space 21
11resize datafile 21
12給表空間擴展空間 21
13將表空間設置成OMF狀態 22
14 將表的某分區移動到另一個表空間 22
15 手工分配表空間段的分區(extend)大小 22
16 數據對象所占用的字節數 22
37 UNDO Data 22
1 忽略回滾段的錯誤提示 23
2 在自動管理模式下,不會真正建立rbs1;在手工管理模式則可以建立,且是私有回滾段 23
3 在提交了修改的數據后,9i提供了舊數據的回閃操作,將修改前的數據只讀給用戶看,但這部分數據不會又恢復在表中,而是舊數據的一個映射 23
4 回滾段的統計信息 23
5 在手工管理模式下,建立公共的回滾段 24
38 Managing Tables 24
1 手工分配分區,分配的數據文件必須是表所在表空間內的數據文件 25
2 釋放表中沒有用到的空間 25
3 將非分區表的表空間搬到新的表空間,在移動表空間后,原表中的索引對象將會不可用,必須重建 25
4 給表中不用的列做標記 26
5 drop表中不用的做了標記列 26
39 managing indexes 26
1 create index 26
1創建一般索引 26
2創建位圖索引 26
3 索引中不能用pctused 26
4 大數據量的索引最好不要做日志 26
5 創建反轉索引 27
6 創建函數索引 27
7 建表時創建約束條件 27
2 給創建bitmap index分配的內存空間參數,以加速建索引 27
3 改變索引的存儲參數 27
4 給索引手工分配一個分區 27
5 釋放索引中沒用的空間 27
6 索引重建 27
7 普通索引和反轉索引的互換 28
8 重建索引時,不鎖表 28
9 給索引整理碎片 28
10 分析索引,事實上是更新統計的過程 28
11 有關索引信息的視圖 28
40 數據完整性的管理(Maintaining data integrity) 28
1 創建外鍵約束 29
2 不效驗老數據,只約束新的數據[enable/disable:約束/不約束新數據;novalidate/validate:不對/對老數據進行驗證] 29
3 修改約束條件,延時驗證,commit時驗證 29
4 修改約束條件,立即驗證 29
5 drop一個有外鍵的主鍵表,帶cascade constraints參數級聯刪除 29
6 當truncate外鍵表時,先將外鍵設為無效,再truncate 29
7 設約束條件無效 30
1 30
2 運行創建exceptions表的腳本* 30
3 獲取約束條件信息的表或視圖 30
41 managing password security and resources 30
1 建立口令配置文件,failed_login_attempts口令輸多少次后鎖,password_lock_times指多少天后口令被自動解鎖 30
2 創建口令配置文件 30
3 建立資源配置文件 31
4 設置口令解鎖時間 31
5 password_life_time指口令文件多少時間到期,password_grace_time指在第一次成功登錄后到口令到期有多少天時間可改變口令 31
6 password_reuse_time指口令在多少天內可被重用,password_reuse_max口令可被重用的最大次數 31
7 建立了profile后,且指定給某個用戶,則必須用CASCADE才能刪除 31
42 配置資源參數 31
1 資源參數(session級) 32
2 獲取資源信息的表或視圖 32
43 Managing users 32
1 創建用戶 32
2 數據庫級設定缺省臨時表空間 33
3 制定數據庫級的缺省表空間 33
4 創建os級審核的用戶,需知道os_authent_prefix,表示oracle和os口令對應的前綴,'OPS$'為此參數的值,此值可以任意設置 33
5 修改用戶使用表空間的限額,回滾表空間和臨時表空間不允許授予限額 33
6 刪除用戶或刪除級聯用戶(用戶對象下有對象的要用CASCADE,將其下一些對象一起刪除) 33
7 每個用戶在哪些表空間下有些什么限額 33
8 改變用戶的缺省表空間 33
44 Managing Privileges 33
1 授予權限語法,public 標識所有用戶,with admin option允許能將權限授予第三者的權限 34
2 當 O7_dictionary_accessiblity參數為True時,標識select any table時,包括系統表也能select ,否則,不包含系統表;缺省為false 34
3 由于 O7_dictionary_accessiblity為靜態參數,不能動態改變,故加scope=spfile,下次啟動時才生效 34
4 授予對象中的某些字段的權限,如select 某表中的某些字段的權限 34
5 oracle不允許授予select某列的權限,但可以授insert ,update某列的權限 34
6 db/os/none 審計被記錄在 數據庫/操作系統/不審計 缺省是none 35
7 啟動對表的select動作 35
8 by session在每個session中發出command只記錄一次,by access則每個command都記錄 35
9 取消審計 35
10 查被審計信息 35
獲取審計記錄 35
45 Managing Role 35
1 建立default role,用戶登錄時,缺省激活default role 36
46 Basic SQL SELECT 36
1 使用字符函數(右邊截取,字段中包含某個字符,左邊填充某字符到固定位數,右邊填充某字符到固定位數) 37
2 使用數字函數(往右/左幾位四舍五入,取整,取余) 37
3 使用日期函數(計算兩個日期間相差幾個星期,兩個日期間相隔幾個月,在某個月份上加幾個月,某個日期的下一個日期, 某日期所在月的最后的日期,對某個日期的月分四舍五入,對某個日期的月份進行取整) 37
4 使用NULL函數(當expr1為空取expr2/當expr1為空取expr2,否則取expr3/當expr1=expr2返回空) 37
47 CREATE/ALTER TABLE 38
1 建立外鍵 39
2 刪除列,并級聯刪除此列下的約束條件 39
48 Create Views 39
1 使用別名 39
2 創建復雜視圖 40
3 當用update修改數據時,必須滿足視圖的col1>10的條件,不滿足則不能被改變. 40
4 改變視圖的值.對于簡單視圖可以用update語法修改表數據,但復雜視圖則不一定能改。如使用了函數,group by ,distinct等的列 40
5 TOP-N分析 40
6 找出某列三條最大值的記錄 40
49 Other database Object 40
1 union 操作,它將兩個集合的交集部分壓縮,并對數據排序 41
2 union all 操作,兩個集合的交集部分不壓縮,且不對數據排序 41
3 intersect 操作,求兩個集合的交集,它將對重復數據進行壓縮,且排序 41
4 minus 操作,集合減,它將壓縮兩個集合減后的重復記錄, 且對數據排序 42
5 EXTRACT 抽取時間函數. 此例是抽取當前日期中的年 42
6 EXTRACT 抽取時間函數. 此例是抽取當前日期中的月 42
7 增強的 group by 子句 42
1 其結果看起來象對col1做小計 42
2 復合rollup表達式 42
3 其結果看起來象對col1做小計后,再對col2做小計,最后算總計 43
4 復合rollup表達式 43
5 混合rollup,cube表達式 43
8 GROUPING(expr)函數,查看select語句種以何字段聚合,其取值為0或1 43
9 grouping sets操作,對group by結果集先對col1求和,再對col2求和,最后將其結果集并在一起 43
1 查看表空間的名稱及大小
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;
2 查看表空間物理文件的名稱及大小
select tablespace_name, file_id, file_name,
round(bytes/(1024*1024),0) total_space
from dba_data_files
order by tablespace_name;
3 查看回滾段名稱及大小
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;
4 查看控制文件
select name from v$controlfile;
5查看日志文件
select member from v$logfile;
6 查看表空間的使用情況
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;
7 查看數據庫庫對象
select owner, object_type, status, count(*) count# from all_objects group by owner, object_type, status;
8 查看數據庫的版本
Select version FROM Product_component_version
Where SUBSTR(PRODUCT,1,6)='Oracle';
9 查看數據庫的創建日期和歸檔方式
Select Created, Log_Mode, Log_Mode From V$Database;
10 捕捉運行很久的SQL
column username format a12
column opname format a16
column progress format a8
select username,sid,opname,
round(sofar*100 / totalwork,0) || '%' as progress,
time_remaining,sql_text
from v$session_longops , v$sql
where time_remaining <> 0
and sql_address = address
|
|