时间:2021-07-01 10:21:17 帮助过:2人阅读
在Unix上被迫终止ORACLE进程时,必须做以下事情: (1) 杀掉所有Oracle进程. ps -ef|grep $ORACLE_SID|grep -v grep|awk ‘{print $2}‘|xargs -i kill -9 {} (2) 使用ipcs -pmb 确认RAM内存段,然后使用ipcrm -m 命令从Unix中释放RAM内存. (3) 使用ipcs -sa 命令显示同步信号量,用ipcrm -s 命令为实例释放同步信号量.
有时,Unix进程很难被杀掉,即使使用kill -9也很难将其杀掉,这时可以使用下面的技巧来实现:
cat /dev/null >/dev/ttyname kill -9 $PID;
在AIX上显示Unix内核值: lsdev -C 显示CPU个数 lsdev -C|grep Process|wc -l
查看基础内核值: lsattr -E1 sys0
Unix的内存管理命令
(1)显示Unix上RAM总数 a. lsdev -C|grep mem 显示内存设备名称 b. lsattr -El mem0
(2)观察Unix上已经分配的RAM段 (其中Oracle的,代表Oracle系统全局区域SGA使用的内存) ipcs -pmb 使用sqlplus " /as sysdba" 登陆Oracle > oradebug ipc >udump 查看RAM详细信息 cat XXXX.trc
当Oracle崩溃时,必须手工清理RAM内存, ipcrm -m $PID
观察Unix中RAM交换页面调度
lsps -a 查看页面调度
影响磁盘I/O的Oracle调整因数
(1)Oracle实例的设置(init.ora) 大的db_block_size : 块尺寸越大,磁盘I/O越小 大的db_block_buffer : 数据缓存量越大,磁盘I/O越小 多重数据库写入进程(DBWR): 更有效率地编写数据文件. 大的sort_area_size: RAM中sort_area_size越大,临时表空间出现的磁盘类型越小. 大型联机重做日志: 联机日志越大,日志切换的频率越低.
(2)Oracle对象(表和索引) 低pctused: pctused的值越低,随后的SQL插入中出现的I/O越小. 低pctfree: 如果设置pctfree允许所有行无分段的扩展,那么随后的SQL选择中将发生较少的磁盘I/O. 通过索引重组表: 如果表按照最常使用的索引相同的物理顺序放置,那么磁盘I/O将显著降低.
(3)Oracle SQL 使用表索引 使用位图索引 使用hint提示
Oracle内部结构和磁盘I/O (1)db_file_mutltiblock_read_count和磁盘I/O db_file_mutltiblock_read_count: 在请求连续的长数据块时,该参数控制读数据块的速度. 这个参数和db_block_size有着重要的关系. 在Unix物理层,Oracle通常以64K作为最小块进行读取. 意味着: db_file_mutltiblock_read_count*db_block_size=64K
Oracle 9i Unix Manager
标签: