优化调整Oracle 8i数据库
2007-05-06 12:05:41 来源:WEB开发网Oracle块大小应该匹配磁盘块大小或是磁盘块大小的倍数。若可能的话,在数据库文件使用文件系统前在分区上做文件系统检查;然后制作一个新的文件系统,确保它是清洁的和不破碎的。尽可能地均匀分布磁盘I/O,将数据库文件与日志文件分开。
调整CPU的使用
1.在同一优先权上保持所有Oracle用户和进程
在Oracle中,所有用户和后台进程操作在同一优先级上,修改优先权对竞争和响应时间有意想不到的影响。
例如,若LGWR(日志写进程)获得低优先权,则它不能充分地执行,LGWR将成为一个瓶颈;另一方面,若LGWR有高的优先权,用户进程可能要忍受较坏的响应时间。
2.在多处理器系统上使用处理器亲和力/捆绑
在多处理器环境中,使用处理器亲和力/捆绑(affinity/binding,若它在系统中可用)。处理器捆绑禁止某进程从一个CPU移动到另一个,允许CPU高速缓存中的信息被更好地利用,而且可以捆绑服务器进程,从而充分利用高速缓存(因为它总是活动的,允许后台进程在CPU间流动)。
3.为Export(导出)/Import(导入)和SQLLoader使用单任务链接
若要在用户和Oracle 8i之间传输大量的数据(如使用Export/Import),使用单任务结构是非常高效的,因为作为单任务链接Oracle可执行程序,允许某用户进程直接存取整个SGA。但运行单任务需要更多的内存。为了使用单任务导入、导出和SQLLoader(sqlldrst)可执行程序,我们可以调用make文件的ins_rdbms.mk(在$ORACLE_HOME/rdbms/lib目录中)。
下面是用于实现单任务导入、导出和SQLLoader(sqlldrst)的可执行程序:
% cd $ORACLE_HOME/rdbms/lib
% make -f ins_utilities.mk singletask
调整块大小和文件大小
在Solaris上,Oracle块缺省值为2KB,可以设置的实际大小为2KB的倍数,最大设置值为16KB。
最优的块大小通常是缺省值,但随着应用程序而变化。为了用不同的Oracle块大小建立数据库,在创建数据库前在initsid.ora文件中增加下面行:db_block_size=new_block_size
调整Solaris缓冲区高速缓存大小
为了充分利用原始设备的优点,我们需要调整Oracle 8i缓冲区高速缓存的大小和Solaris缓冲区高速缓存。
Solaris缓冲区高速缓存由操作系统提供。它在内存中保存数据的块(在它们被从内存传送到磁盘前,反之亦然)。
Oracle 8i缓冲区高速缓存是在内存中保存Oracle数据库缓冲区的区域。因为Oracle 8i可以使用原始设备,它不需要使用Solaris缓冲区高速缓存。
在移动原始设备时,增加Oracle 8i缓冲区高速缓存的大小。若系统中内存的数量是有限的,则相应地减少Solaris缓冲区高速缓存的大小。
Solaris命令sar可以帮助决定哪些缓冲区高速缓存应该增加或减少:
sar -b:报告Solaris缓冲区高速缓存的活动;
sar -w:报告Solaris内存交换活动;
sar -u:报告CPU利用情况;
sar -r:报告内存利用情况;
sar -p:报告Solaris内存分页活动。
通常在缓存命中率上升时,我们需要增加Oracle 8i缓冲区高速缓存的大小,而在交换/分页活动变高时,我们需要减少高速缓存的大小。
我们还可以使用Oracle 8i建立的跟踪(Trace)和警报(Alter)文件来诊断和解决运行中存在的问题。
只要我们充分利用以上命令和方法,就可以很好地优化与调整Oracle 8i数据库了。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接