Oracle数据仓库部署注意事项(OLAP)


最近Oracle数据库升级到11G之后,出现一些问题,慢慢的开始发现一些需要总结的东西,每次心里都在想:下次,我自己搭建数据仓库的时候,一定要注意这些细节,在仓库的创建初期就做好这些工作。

1、redo log的设计
1)如果可以单独放,redo和数据文件单独划组做条带化等。物理上分开。

2)redolog如果可以单独放,就不要设置得太大,最多500M一个,因为日志太大,可能会导致实例恢复的时间很长。另外在极端倒霉的情况下,如果再数据恢复过程中,实例再次down掉,比如掉电。那你就惨了。总之,那么多数据放在日志里不安全,放在datafile里放心一些。

3)如果你和我一样悲催,redo和datafile所在磁盘组都在一个,因为存储底层直接划分的一个大池子(基于成本、速度的综合考虑),那你就把日志调大一些(目前我的是2G/个),组数增加一些(目前我的20组),如果还是出现日志不够用,那就多增加组数,比如30组。另外ASM在这种大池子面前,基本无法提高IO了,因为你无法解决redo和datafile竞争IO的问题。

2.undo策略
1)undo_retention的设计

一般可以直接设置3小时,先保证系统可用。当然undo表空间要足够大。

好吧,如果你说无法定量,我给你一个参考值。

数据量3T的数据库,设置undo表空间为300G,undo_retention时间为10800,默认单位是秒,也就是3小时。

2)guarantee参数的取舍

我觉得,如果你未充分了解你的业务系统和数据库状况之前,不要轻易启用这个参数。有可能会导致异常灾难。

上述条件不成立的,可以尝试使用该参数,以防止ORA-01555的出现。

3、DB和OS级别都要记得开启异步IO
参考: 和

4、其他的,等想到了再加上来吧

5、OLTP和DSS不同数据库设计

oltp 数据库 dss 数据库
oltp = online transaction processing dss = data warehousing
联机事物处理 数据仓库
例如:飞机订票,网上交易,bbs等 例如:各种资源资料查询系统
大量的在线用户和dml操作 很少的dml操作
大量基于索引的查询 大量的全表扫描的查询
用b-tree,reverse key索引,定期索引重建 用bitmap索引
需要较多的小的回退段 需要较少的大的回退段
不要用分布式查询 用分布式查询
数据对象的存储参数pctfree 20 或者更高 数据对象的存储参数pctfree 0
共享程序代码和各种变量常量 字符变量和线索
启动多线索服务 使用大的数据块,db_file_mutiblock_read_count
使用较大的日志文件 使用较小的日志文件
listener开多个响应端口 增加sort_area_size

相关内容

    暂无相关文章