oracle uptime的bug
症状:oracle sqlplus没反应
oracle10g的有十几个机器客户端10.2.0.1.0,执行sqlplus这个命令没反映。此时cpu使用为99.9%,观察了一会,不释放。
oracle其他命令都好使。
环境变量、ping tnsname等都没问题。。且这些机器都是至少运行了200多天左右,
但一旦重启OS就好使了。。
或者不重启OS,换成9i的客户端,sqlplus命令也好使。
alert日志没有什么明显的报警信息,客户端的sqlnet.log为空。
用strace跟踪了一下客户端10的sqlplus命令,出现:
--- SIGSTOP (Stopped (signal)) @ 0 (0) ---
--- SIGSTOP (Stopped (signal)) @ 0 (0) ---
times(NULL) = -2064519321
times(NULL) = -2064519321
times(NULL) = -2064519321
……
所有客户端配置一样,系统信息:
Red Hat Enterprise Linux AS release 4 (Nahant Update 2)
2.6.9-22.ELsmp #1 SMP
客户端硬件要么联想同一型号机器,要么就是HP同以型号机器。
是不是有什么补丁没打,或者和OS什么配置有关?
系统信息类似一下:
sar -u 后%idle为0,
但sar -A 查看%idle为99.70等百分之九十多左右,
然后是%user %system %iowait之间互相变化。
solution:
因为oracle有bug,系统开机太长,系统会hang
所以要查看os命令uptime来看系统启动多长时间了,
一般重启会解决问题,通过升级也可以解决
问题基本定位为ORACLE客户端软件的BUG,
涉及的版本:ORACLE 10.2.0.1.0
现象就是UPTIME>50天,即有可能出现运行SQLPLUS后无反应的现象,主要原因是时间溢出错误
解决办法:升级ORACLE客户端到10.2.0.2.0,官网已经公布在这个版本解决了此问题
(或降级到9I,9I绝对不会出现这个问题;或降级到10.1.0.4版本,这个没有经过全面测试)
接下来就是升级试试看了。
有几种情况,基本是oracle内部定时器计算有误,还有days>24,或者days>240+的情况
以前有Oracle hang after 240+ da
相关文档:
数据库压力测试
一、用orabm测试数据库CPU
Orabm通过在用户指定的并发下运行指定数量的事务来测试系统性能.它主要测试数据库服务器的CPU性能和内存。
orabm实际上是一堆sql的集合。
orabm可以用在linux/windows/solaris下使用。
orabm不一定需要运行在数据库所在服务器上,它可以运行在任何安装了9i客户端的终端上。你 ......
sql*plus 命令
//执行脚本
@和start d:/a.txt;
//修改脚本
edit d:/a.txt;
//将内容输入到文本中
sloop d:/a.txt; //开始记录屏幕内容
sloop off; //记录结束
//链接登录数据库
connect system/919959 as sysdba/sysoper; //权限最大dba
connect sys/919959;
connect scott/ti ......
Oracle
移动数据库文件
Oracle数据库由数据文件,控制文件和联机日志文件
三种文件组成。
由于磁盘空间的变化,或者基于数据库磁盘I/O性能的调整等,我們可能会考虑移动数据库文件。(注:
恢复数据库时非常
有用,属于冷备份)
查询当前数据库中,相关文件路径
select * from v$datafile;
se ......
1、实现行列动态转换,常用于主从表关联时的特殊需求
select rwbm,psqh,
max(decode(xh1,1,yy))JKYL1,
max(decode(xh1,2,yy))JKYL2,
&n ......
1、在目的SQL Server数据库服务器上安装ORACLE Client软件或者ORACLE ODBC Driver.
通过oracle客户端,在netmanager中建立“服务(TNS server)”,并测试连接上oracle数据库正常
2、在sqlserver的DTS(导入和导出数据工具)进行
(1)选择数据源:
数据源:oracle in oracle9i
选择:用户/系统DSN:
点击新建 ......