欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

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

程序员文章站 2022-04-21 16:59:28
...

最近Oracle数据库升级到11G之后,出现一些问题,慢慢的开始发现一些需要总结的东西,每次心里都在想:下次,我自己搭建数据仓库的

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