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