Oracle 10g开归档碰到ORA-00600错误,惊,险

有一个测试环境的Oracle数据库,原来工作在归档模式的,现在觉得在上面测试的应用有好几个了,也不能轻意挂掉,就打算不定期的进行RMAN备份。在线RMAN备份需要工作在归档模式下,于是早上趁大家还没开始工作时,把数据库切换到归档模式下。可在关闭Oracle数据库时,异常发生了。

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORA-00600: internal error code, arguments: [LibraryCacheNotEmptyOnClose], [], [], [], [], [], [], []

看到是LibraryCacheNotEmptyOnClose错误,感觉问题好像不是很严重,就先把归档打开,把数据库启动好再说。幸运的时,在重启到Mount,打开归档,打开数据库这个过程都没有报错。

事后,用Google搜索了一下ora-00600 librarycachenotemptyonclose,发现是一个bug [Bug 4483084 OERI[LibraryCacheNotEmptyOnClose],Metalink账号过期了,也没办法下载了,测试环境也不打算打补丁。

看了网上一个博客,说建个触发器,在关闭系统时执行“ALTER SYSTEM FLUSH SHARED_POOL”就可以了。没有亲测,再说也是不定期发生。

附触发器脚本

CREATE or replace TRIGGER flush_shared_pool
BEFORE SHUTDOWN ON DATABASE
BEGIN
execute immediate ‘ALTER SYSTEM FLUSH SHARED_POOL’;
EXCEPTION
WHEN OTHERS THEN
RAISE_APPLICATION_ERROR (num => -20000, msg => ‘Error flushing pool’);
END;

–The End–

Continue reading » · Written on: 04-20-10 · No Comments »

手动安装Zmodem协议,记录一下

在管理Linux主机时,经常需要和自己的电脑来回传文件。在各种传文件的方法中,觉得使用Zmodem协议还是比较方便的,Putty不支持,SecureCRT支持Zmodem协议。

今天有个主机,上面没有安装Zmodem协议。使用rz没法传文件上去。于是打算安装一个Zmodem协议包。安装方法很简单,插入光盘(本人CentOS系统),

rpm -ivh lrzsz-xxx

如果机器连网,使用yum安装就可以了。

yum install lrzsz

安装后,就可以使用sz,rz下载,上传文件了。

–The End–

Continue reading » · Written on: 03-11-10 · No Comments »

奇怪的UNLIMITED TABLESPACE权限

今天在授权时,研究了一下unlimited tablespace权限,发现比较奇怪。直接贴出网上别人研究的结果吧。

1、系统权限UNLIMITED TABLESPACE 不能被授予role,可以被授予用户!

2、UNLIMITED TABLESPACE 没有被包括在resource role中,但是UNLIMITED TABLESPACE 随着resource的授出而被授予用户的。

3、UNLIMITED TABLESPACE 不能伴随着resource被授予role而授予用户。

相关数据字典:DBA_SYS_PRIVS,DBA_ROLE_PRIVS

–The End–

Continue reading » · Written on: 03-04-10 · No Comments »

win7无法以管理员身份运行

刚安装了Windows7没几天,忽然发现在快捷方式上“以管理员身份运行”没反应。而在可执行文件上,却能正常工作。Google了一把,发现网上也有这类问题,但大多现象有些差别,解决方法是修改注册表。我试了一下,不行,把注册表又改回来。

后面在一个页面上,有人说安装“米人”后,就不能“以管理员身份运行了”。而我也安装了米人下载工具。卸载掉以后,再在快捷方式上“以管理员身份运行”就正常了。

-The End-

Continue reading » · Written on: 02-24-10 · No Comments »

SQL Server upate语句失败

今天同事反应,一个用于监控的统计查询,最近有时会执行30秒超时,查询条件上原来就有索引的。为了减少查询时间,重建了一个索引,使用INCLUDE字句,在索引里冗余了一个数据字段。再执行原来的查询语句,果然快多了。本以为这件事就这样解决了,后来发现往这个统计表里入数据的作业失败了。报错“

UPDATE 失败,因为下列 SET 选项的设置不正确:’ARITHABORT’。请确保 SET 选项可正确用于计算列和/或查询通知和/或 xml 数据类型方法的索引视图和/或索引。

报错显示,和ARITHABORT这个参数有关系,查看文档

 

---------------文档分隔线------------

SET ARITHABORT

在查询执行过程中发生溢出或被零除错误时终止查询。

语法

SET ARITHABORT { ON | OFF }

注释

如果 SET ARITHABORT 为 ON,则这些错误情况将导致查询或批处理终止。如果在事务内发生错误,则回滚事务。如果 SET ARITHABORT 为 OFF 并且发生了这些错误之一,则显示一条警告消息,并给算术运算的结果赋以空值。

说明  如果 SET ARITHABORT 和 SET ARITHIGNORE 都没有设置,则 Microsoft® SQL Server™ 将在执行查询后返回 NULL 和一条警告信息。

如果 SET ARITHABORT 为 OFF 并且在对表达式的求值过程中 INSERT、DELETE 或 UPDATE 语句遇到算术错误(溢出、被零除或域错误),SQL Server 将插入或更新 NULL 值。如果目标列不可为空,则插入或更新操作失败并且用户收到错误信息。

如果 SET ARITHABORT 或 SET ARITHIGNORE 为 OFF,并且 SET ANSI_WARNINGS 为 ON,则当遇到被零除或溢出错误时,SQL Server 仍返回错误信息。

SET ARITHABORT 的设置是在执行或运行时设置,而不是在分析时设置。

在计算列或索引视图上创建或操作索引时,SET ARITHABORT 必须为 ON。如果 SET ARITHABORT 为 OFF,计算列或索引视图上带索引的表上的 CREATE、UPDATE、INSERT 和 DELETE 语句将失败。有关计算列上的索引视图和索引所必需的 SET 选项设置的更多信息,请参见 SET 中的"使用 SET 语句时的注意事项"。

---------------文档分隔线------------

看了文档,也想不明白为什么索引重建了,作业就失败。Google了一把,原来这个问题会出现在计算列和索引视图上。而我INCLUDE字段的恰好是计算列,于是问题就出现了。

修改作业里的步骤,在语句前面加入一行

SET ARITHABORT ON

再执行作业,就正常了。

-The End-

Continue reading » · Written on: 02-23-10 · No Comments »

为表加字段时表被锁报错的解决方法

今天在需要在开发数据库上加个字段,结果报错,报ORA-00054: resource busy and acquire with NOWAIT specified。

看到这个错误,原因很简单,估计是哪个同事打开表被锁定了。站起来吼了一声,没有人应,只好自己去杀进程了。

查杀进程,就要查到进程。

这个语句查看被锁定的对象,找到需要加字段的表
select /*+ rule */ * from dba_objects where object_id in (
select id1 from v$lock where type = ‘TM’);

这个查锁住这个对象的sid,其实可以把上面语句改成关联查询
select * from v$lock where type = ‘TM’;

查询这个sid是哪个人的,当然更主要是看SID,SERIAL#
select * from v$session where sid=126;

杀杀杀,或冲到锁表的同事那里让TA释放锁
alter system kill session ‘126,2154’;

然后就顺利添加字段成功。

–The End–

Continue reading » · Written on: 12-10-09 · No Comments »

火车站也为微软做广告了

上周去昆山,回来时,看见火车站的大屏幕上有错误信息。仔细辨认好像是“ODBC 驱动程序不支持所需的属性”。图片如下

195727

微软免费广告真是无处不在呀!

–The End–

Continue reading » · Written on: 12-07-09 · No Comments »

为自己的博客添加了验证码(reCAPTCHA)

今天注册一个国外站点时,发现用的验证码是别人家的,下班后就研究了一下。发现原来是一个免费的服务。只要注册一下,就得到一个公钥和私钥,然后就可以使用了。发现还有人为WP博客开发个插件,于是就拿来主义了。

先看图

reCAPTCHA

对这个服务的介绍就看这里吧。

http://zh.wikipedia.org/wiki/ReCAPTCHA 或 http://baike.baidu.com/view/1944705.htm

官网:http://recaptcha.net/

Continue reading » · Written on: 11-05-09 · No Comments »