Chinaunix首页 | 论坛 | 博客
  • 博客访问: 479506
  • 博文数量: 83
  • 博客积分: 2570
  • 博客等级: 少校
  • 技术积分: 901
  • 用 户 组: 普通用户
  • 注册时间: 2007-06-19 12:05
文章分类

全部博文(83)

文章存档

2012年(1)

2011年(1)

2010年(8)

2009年(14)

2008年(45)

2007年(14)

我的朋友

分类: Oracle

2009-01-13 16:49:08

一、oracle-11g(centos5.2)启动不了sqlplus,提示:libnnz11.so: cannot restore segment prot after reloc: Permission denied;
解决:selinux的问题
(1)使用chcon 命令
示例: chcon -t texrel_shlib_t /opt/ora11/product/11.1.0.6/lib/*.so
(2) 禁止掉SELinux
更改/etc/sysconfig/selinux 文件的内容为 SELINUX=permissive
两个任选一个
 
二、主机名引起的lsnrctl监听端口不能启动。
现象:使用netca配置监听端口的时候,特别的慢。查看cpu、内存都没有被占用。手工配置listener后用lsnrctl start启动还是特慢。启动好后,netstat查看端口1521已经启动,但是就是不能登录上,提示tns没有启动。emca -config dbcontrol db创建em的时候,查看到主机名为vip-vr20.tuk.trafficz.com
很明显不对。难道是主机名称不对?查看/etc/hosts /ets/sysconfig/network都没问题
 
解决方法:修改/etc/hosts,将主机名的解析添加上去就可以了,开始的时候只有localhost的解析。
 
三、触发器引起的不能安装statspack。
安装statspace的时候,出现错误提示:

ORA-04098: 触发器 'SYS.DBT_LOGON' 无效且未通过重新验证

google未果。

试着用perfstat登陆,结果出现上面错误。而用其他用户登陆却没有问题。

记得前几天修改过审计,于是将审计去掉。

Noaudit table;

Alter system set audit_trail=none scope=spfile;

Startup force;

问题还是依旧。

根据提示将触发器禁用

Alter trigger SYS.DBT_LOGON disable;

可以了。

使用命令

select trigger_body from dba_triggers where trigger_name='DBT_LOGON';
 查看到代码有问题,修改后正确的代码为:

 

create or replace trigger SYS.DBT_LOGON
after logon on database

BEGIN
execute immediate
'alter session set isolation_level=serializable';
--null;


--select 1+2 into i from dual;
end;

/

 

再将trigger改回,问题解决。

从上面的结果看,由于其他登录的用户都具有dba的权限。因此,该触发器不对dba用户生效。

 

 

阅读(1318) | 评论(0) | 转发(0) |
0

上一篇:fstab解释

下一篇:cron细节

给主人留下些什么吧!~~