• 博客访问: 1092313
  • 博文数量: 413
  • 用 户 组: 普通用户
  • 注册时间: 2007-12-07 22:17
  • 认证徽章:
个人简介

暂无介绍

文章分类

全部博文(413)

文章存档

2014年(3)

2012年(2)

2011年(26)

2010年(66)

2009年(74)

2008年(138)

2007年(87)

2006年(17)

我的朋友

分类: Linux操作系统

2007-12-11 00:00:00

本章节主要是介绍表空间数据文件日志文件的最优配置和相关I/O的性能视图表

数据库配置和I/O问题

Oracle文件类型
表空间不正确的用法
表空间分区的原因
检查点如何工作
监视和优化检查点
监视和优化日志

基本优化原则
磁盘I/O最小化
磁盘负载平衡
本地化管理表空间

通过文件分布减少磁盘竞争
数据文件和重做日志文件分离
重做日志文件访问频繁,放在比较快的磁盘上,不适于RAID5
条带化表的数据
减少与数据库无关的磁盘I/O
裸设备的使用,与文件无关,直接读写设备;无法使用操作系统和数据库进行备份;管理成本比较高
编辑裸设备配置文件
重新启动service rawdevices restart

表空间用法
System表空间仅存储系统数据字典
创建本地化管理表空间避免表空间管理成本
分离表和索引到不同的表空间,方便进行并行操作
在各个表空间内创建回滚段
在各自表空间内存储大对象
创建一个或多个临时表空间

查看I/O利用率
v$filestat,v$tempstat,v$datafile

查看数据文件物理读和物理写的状况
select phyrds,phywrts,d.name
from v$datafile d,v$filestat f
where d.file#=f.file#
order by d.name
表空间物理读和物理写的状况
select d.tablespace_name tablespace,
d.file_name,f.phyrds,f.phywrts
from v$filestat f,dba_table_files d
where f.file#=d.file_id
可以参看statpack中的tablespace和file部分的I/O情况

文件条带化
操作系统条带化RAID
人工条带化 create table or alter table command with allocate clause

评估是否需要全表扫描
配置DB_FILE_MULTIBLOCK_READ_COUNT,读取的块数,越大读取越多,影响cost-based optimizer选择
DB_BLOCK_SIZE每次读取块的大小

RAID方式提高可靠性和安全性
RAID0文件放在多个物理盘上,读写较好,不安全
RAID1无条带化
RAID5条带化和冗余度,不适合重做日志文件

手工条带化
建表时指定物理文件,可以减少竞争
create tablespace app_date
datafile 'd:test1.dbf' size 10M,
'd:test2.dbf' size 10M;
对象条带化会增加管理成本
alter table testtable
allocate extent (datafile 'd:test1.dbf' size 5M);
Oracle分区选项
create table sale_part
(
sales_date date,
name varchar2(20)
)
partition by range(sales_date)
(
)
可以查询全表扫描的操作次数
select name,value from v$sysstat
where name like '%table scan%'
重点监控长表扫描的次数>DB_FILE_MULTIBLOCK_READ_COUNT
v$session_longops可以查询监控全表扫描的表
select sid,serial#,opname,
to_char(start_time,'hh24:mi:ss') as "start",
(sofar/totalwork)*100 as percent_complete
from v$session_longops;
可以根据sid,serial#,opname,找到相应的SQL

select sql_text
from v$session_longops a,v$sqltext b
where a.sql_address=b.address;

检查点
增量检查点更新控制文件,日志切换时切换数据文件头部和控制文件
全量检查点更新控制文件和数据文件头部,或者DBWn写出所有的缓冲区
日志切换,超时
配置检查点的参数
log_checkpoint_timeout
log_checkpoint_interval
log_checkpoints_to_alert
检查点和系统故障恢复之间需要平衡

select name,value from v@sysstat where name like '%check%'
可以检查检查点的频率和次数

检查点队列
参数 与故障恢复相关
fast_start_IO_target
fast_start_mttr_target替代前两个参数

target_mttr
estimated_mttr

log file的配置
v$logfile 列出日志成员和组
v$log 每个组的成员详细信息状态
v$log_history 历史日志切换频率
监视重做日志文件
查看日志性能
select event,total_waits,time_waited
from v$system_event
where event='log file parallel write'

sar iostat 均可以显示磁盘I/O性能

v$archive_dest
v$archived_log
v$archive_processes

阅读(1341) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
评论热议
请登录后评论。

登录 注册