oracle报错及解决办法
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
从现在开始,oracle错误全征集!
2007-1-12
01102, 00000, "cannot mount database in EXCLUSIVE mode"
// *Cause: Some other instance has the database mounted exclusive or shared.
// *Action: Shutdown other instance or mount in a compatible mode
当你启动数据库遇到1102报错时,之前的数据库的down操作一般都不是正常完成的,或由于一些异常使Oracle在操作系统中残留一些内存结构,Pmon等一几个进程依然存在等原因使Oracle误认为Instance依然在运行着,所以库就没有启动,具体说来大体原因有如下几个:
1、pmon、smon、lwgw及dbwr这些后台进程依然存在着
2、Oracle开辟的共享内存没有释放掉
3、"lk<sid>" and "sgadef<sid>.dbf"这两个用于锁内存的文件存在着。
三、解决问题
知道了原因,解决起来就简单多了,办法如下:
1、看一下"lk<sid>" and "sgadef<sid>.dbf"这两个文件是不是存在着,如果存在将其删掉。
oracle$cd $ORACLE_HOME/dbs
oracle$ls -l sgadef<sid>.dbf
如果存在删掉它
oracle$rm sgadef<sid>.dbf
oracle$ls -l lk<sid>
如果存在删掉它
oracle$rm lk<sid>
2、看是不是有后台进程存在了
oracle$ps -ef | grep ora_ | grep $ORACLE_SID
如果有pmon这些后台进程的残留,kill -9掉它
oracle$kill -9 pid
3、看一下oracle的共享内存段及信号集(semaphores)是不是还存在着
1)清共享内存段
oracle$ipcs -m --显示一下,看owner是Oracle用户的
oracle$ipcrm -m <Shared_Memory_ID>
2)清信号集
oracle$ipcs -s --显示一下,看owner是Oracle用户的
oracle$ipcrm -s <Semaphore_ID>
2007-1-23(TimesTen)
802: Data store space exhausted
6221: Temporary data partition free space insufficient to allocate 64664 bytes of memory
The command failed.
增加tempsize,在odbc配置文件
2007-1-24(TimesTen)
6003: Lock request denied because of time-out
Details: Tran 27.9 (pid 24720) wants W lock on table ETUSER.BILLINFO. But tran 17.1 (pid 24621) has it in IX (request was IX). Holder SQL (DELETE FROM ETUSER.BILLINFO WHERE InteractId = ? AND Guid = ? AND FuncId = ?;)
IX锁,用命令ttXactAdmin -xactIdRollback 27.15 -connstr "dsn=pps;uid=etuser;pwd=tttttt";无济
于事,因为又会生成新的transaction。
直接kill连接进程
2007-1-25
ORA-00257:archiver error.Conncet internal only.until freed
造成本次故障的原因由两方面同时发生所造成的:
其一是Flash_Recovery_Area空间缺省安装时比较小,只有2GB,容易用完;
其二是由于采用归档方式通过Veritas备份,由于备份软件没有运行,造成归档日志没有及时删除。
针对第一点解决办法
SQL> alter system set DB_RECOVERY_FILE_DEST_SIZE=20g;
查询:show parameter recover
2007-3-12
解决:IMP-00013 : only a DBA can import a file exported by another DBA 命令改为:imp system/passwoed@db....,至于system用户密码修改alter user system identified by password
错误一、ORA-00942: table or view does not exist
此时需要查看连接数据库接口使用的的用户名下是否存在操作的数据表,以及该用户对该数据表操作的权限。
show user
查看当前是以哪个用户登录的
conn / as sysdba 以SYS用户登录进数据库
此时可以退出以数据库连接的用户名登陆。
select owner,table_name from all_tables where table_name='BOOKS';
查看OWNER字段是谁也就是这个表的所有者
假设所有者为yuandan
则进行如下查询
select * from yuandan.books
输出这个,这是不是说不存在books表?
错误二、ORA-32104
此为OCCI接口Environment::createEnvironment(Environment::DEFAULT)错误代码:需要设置ORACLE_HOME
错误三、ORA-12541
ORA-12541: TNS: 无监听程序,listener监听服务没有开启
在服务器端机器:
1.保证listener已经启动
2.保证数据库已经启动。
如果数据库没有启动,用:
Oracle 9i:
dos>sqlplus “/ as sysdba”
sqlplus> startup
命令启动数据库
如果listener没有启动,用:
lsnrctl start [listener name] lsnrctl status [listener name] 命令启动listener。