每个oracle数据库的中枢 描述数据库和它的对象 包含只读的表和视图
存储在SYSTEM表空间中 拥有者是SYS用户 。。。
插曲小BUG:数据库OPEN之前就尝试打开数据字典视图,就会在系统中标记说该视图无法打开,之后再OPEN后受其影响依然无法打开该视图,而基表是可以看的,只要重启后就可以正常打开了,因为没有神经病会在open之前就想打开数据字典所以该BUG从7开始一直留到11g
动态性能视图:也是了解数据库的工具,动态信息,便于了解运行情况,不存,信息来自于内存和控制文件,数据库没打开之前(从nomount状态开始)可以访问 虚表
记录了当前数据库的行为
当数据库操作时,动态性能视图被不断更新 包含了来自内存和控制文件的信息 DBA使用动态性能视图监视调优数据库
动态性能视图被SYS用户拥有
使用V$开头的同义词(动态性能视图用V_$开头)
X$是动态性能表, GV$是全局动态性能视图,
在V$FIXED_TABLE中可以查到 内置数据库对象: 数据字典
基表:看不懂的 DESC USER$ --基表
视图:基表的简化总结和格式化处理,看得懂的 DESC DBA_USERS --视图
通过PUBLIC同义词访问(select_catalog_role权限,详见建库脚本catalog.sql)
数据字典提供下列信息: 逻辑和物理数据库结构 对象定义和空间分配
一致性限制
用户 角色
权限 审计 。。。
数据字典种类:
三类视图:对应的查询语句不一样(见cdsqldll.sql脚本)
DBA:包含所有对象(最高)
ALL:包含当前用户能够访问的对象 USER:当前用户拥有的对象(最低)
DICTIONARY表:字典信息(dict为同义词,还有一个类似的表叫
DICT_COLUMNS)
DESC DICTIONARY;
SELECT count(*) from DICTIONARY 查数据字典,名字都要用大写
动态性能视图 PL/SQL包
数据库事件触发器
OracleDBA+性能优化8日游笔记——第三天(四) 2009-11-26 14:10
四.控制文件与日志文件管理
控制文件管理:
做好复用,保证数据库的健壮性 做好备份,以防万一 控制文件的重要性: 很小但经常要用,
在MOUNT状态读取,操作数据库使用
一个控制文件只跟一个库相关,丢失了一定要恢复 包含数据库信息,结构信息,归档信息等 多重镜像控制文件(复用):
坏掉一个就会down,找到好的,把坏的删除,改参数(每个文件加单引号,别在引号中敲回车),关库,创建另外的控制文件,启动数据库 用RMAN备份控制文件
获得控制文件信息:V$CONTROLFILE 日志文件管理:V$log 建议:
第一, 需要足够多的日志组
万一检查点或归档没完成不能被覆盖(漏斗概念) 不够就增加
第二, 需要有足够大的组员文件
组员文件越小,切换越频繁(应该10分钟以上),I/O越频繁 删除组员文件,建新的组员文件
第三, 日志文件最好做复用,并且复用组员文件到不同的存储位置上
便于I/O分散,最大化保护日志
日志的管理都跟控制文件相关
日志的大小不能小于一定的值(和块大小有关)
增加组员文件:由于刚增加的时候为空文件,所以不能用(一个组的组员文件必须一样)
删除组(或组员文件):当前组不能删,当前组的组员文件不能删,如果有唯一用来做实例恢复的组员文件不能删(取决于留下的组员文件有没有完整日志)
注意:只删掉了控制文件中的信息,系统中的文件没有删(RM是危险的,删的时候谨慎对待)
OracleDBA+性能优化8日游笔记——第三天(五) 2009-11-26 14:16
五.空间和数据文件管理
数据存储: 操作系统块:
操作系统I/O的最小单位
数据块:
数据库I/O的最小单位(由于操作系统块往往太小所以用数据块)
数据块由一个或多个连续的操作系统块构成 段:
存储对象(表,索引,回滚段,临时段等)
区:
段的空间空间扩展单位(块太小) 区由连续的数据块组成
组成段的区不一定是连续的
数据存储(图):
线的两个含义:一对多,只属于
注意:段不能跨表空间(即如表不能跨表空间),区不能跨数据文件 组成段的所有区,必须位于段所在表空间的组成文件上
表空间:
创建表空间,维护表空间,删除表空间 系统表空间:SYSTEM 在数据库创建的时候创建 放了数据字典表 放了系统回滚段
系统表空间最好永远只放数据字典表和系统回滚段(专用) 非系统表空间:其他 分隔不同的段
对用户对象限制使用空间 大文件表空间(新特性):
最大可包含4G(2^32)个BLOCK 检查点性能提升 简化了管理 一般用不上
缺省的oracle使用小文件表空间
表空间管理:
本地管理表空间(使用bitmap,基本都用这个)和数据字典管理表空间(DMT技术已经被放弃)
系统表空间是本地的,就只能用本地管理,系统表空间是字典的,才可以选择用字典管理表空间 区分配方式:
统一方式性能好,但复杂,大表跟小表放在不同的区上 自动方式简单
建表前确定,之后不能改
表空间类型: 永久的
放永久对象
11G提供在EM中可以加密(一般不用)
可以设置默认永久表空间(避免用户使用系统表空间)
临时的
放临时数据
写在TEMPFILE上
不参与同步操作和同步校验
可以设置默认临时表空间(避免用户使用系统表空间)
说明:
初始创建临时表空间不会真正分配空间 在随后使用中开始分配 由于空间问题可能存在故障隐患
UNDO的
9i以后出现,用来放自动管理的回滚段 有几个instance就需要几个UNDO
数据库中,整个路径作为一个文件的名字,后缀是骗人的
表空间状态改变:只读,读写,offline,online,可以用命令也可以用OEM做 只读表空间:
Create table user.tab(a char(10)) tablespace t1; Alter tablespace t1 read only; SELECT * FROM user.tab --成功 INSERT INTO --失败 添加字段b --成功
由于操作的是系统表空间SYSTEM,所以不妨碍t1 删除字段b --失败
第一删字典信息
第二在块中释放空间,所以要操作t1表空间 修改字段b类型 --成功 修改a为varchar2(10) --成功 可变长
修改a回char (10) --失败 不可变长,修改了表空间
删表 --成功
删表只是删除数据字典,数据只在建表在分配空间的时候把以前的覆盖 建表 --失败
OFFLINE表空间:
Alter tablespace table offline
与onlyread区别在于,offline不能读,其他上述操作效果一样 改变表空间大小:表空间由一个或多个文件组成 自动扩展
方便但性能不太好 文件满了扩展 增加文件
10以前删除表空间文件很难
10以后可以允许单独的删除文件,但必须为空文件且不是唯一的文件 扩展文件大小
变大可以不受限制
变小不一定变到已存在的文件大小,处在数据中间的空闲空间不能被减少 手动扩展为主,辅助自动扩展
文件不易过多,也不易过大,平衡处理 存储位置的改变: mount以后可以改 表空间必须离线 目标文件必须存在
OPEN下:
ALTER TABLESPACE 表空间名 RENAME DATAFILE ‘源文件’ TO ‘目标文件’
--文件要在,而且要通过验证,先将源文件复制到目标路径再执行命令
MOUNT下:
将源文件复制到目标路径再执行命令(注意命令不同):
ALTER DATABASE 表空间名 RENAME FILE ‘源文件’ TO ‘目标文件’
--用DATABASE而不是TABLESPACE是因为后者是对字典的操
百度搜索“70edu”或“70教育网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,70教育网,提供经典综合文库OracleDBA性能优化8日游笔记(4)在线全文阅读。
相关推荐: