Oracle常见ORA错误及解决办法

Oracle常见ORA错误及解决办法
问题1
1.1 错误现象:
EXP-00008: ORACLE error 1013 encountered
ORA-01013: user requested cancel of current operation
EXP-00056: ORACLE error 1403 encountered
1.2 错误原因:
客户端字符集与数据库字符集不一致。
1.3 解决办法:
更改客户端NLS_LANG设置。
1.3.1. 查看数据库服务器字符集:
SQL> select * from nls_database_parameters t where t.parameter=‘NLS_CHARACTERSET’;
PARAMETER VALUE
NLS_CHARACTERSET AL32UTF8
1.3.2. 客户端字符集设置:
Linux操作系统:
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
Windows操作系统:
set NLS_LANG=AMERICAN_AMERICA.AL32UTF8
1.3.3. 再次导出
问题2
2.1 错误现象:
ORA-01940: cannot drop a user that is currently connected
2.2 错误原因:
当前用户正在通过应用或者其他连接工具连接数据库。
2.3 解决办法:
停止当前用户的连接。
2.3.1. 停止应用和其他数据库连接以后,再次执行drop user cascade;
2.3.2. 查看此用户的会话过程:
SQL> select sid,serial# from v$session where username =‘V3XUSER’;
2.3.3. 杀掉对应用户的会话:
SQL> alter system kill session ‘sid, serial#’;
2.3.4. 再次删除用户:
SQL> drop user v3xuser cascade;

问题3.
3.1 错误现象:
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
ORA-02002: error while writing to audit trail
ORA-00604: error occurred at recursive SQL level 1
ORA-01653: unable to extend table SYS.AUD$ by 8192 in tablespace SYSTEM
3.2 错误原因:
数据库服务器磁盘无空间或system表空间已满。
3.3 解决办法:
删除磁盘无用空间或增加system表空间大小。
3.3.1. 检查数据库服务器操作系统磁盘空间使用情况
3.3.2. 检查system表空间使用情况
SQL> select tablespace_name, (bytes / 1024 / 1024) M from dba_data_files;
3.3.3. 增加操作系统磁盘空间或者system表空间
alter tablespace system add datafile ‘/u01/app/oracle/oradata/ora10g/system02.dbf’ size 10240M;
问题4.
4.1 错误现象:
ORA-01000: maximum open cursors exceeded
4.2 错误原因:
打开游标数超过了设定的游标最大值。
4.3 解决办法:
增大数据库游标最大值或查找程序游标泄露点。
4.3.1. 增大数据库游标最大值
SQL> show parameter open_cursor; --默认300
SQL> alter system set open_cursors=1000 scope=both;
问题5.
5.1 错误现象:
ORA-00942:table or view does not exist
5.2 错误原因:
表或视图不存在。
5.3 解决办法:
查询是否缺少表或所查询的表名称是否正确(Oracle 11g使用exp时容易漏导空表,可以使用expdp导出)
问题6.
6.1 错误现象:
ORA-12560: TNS:protocol adapter error
6.2 错误原因:
监听没有启动、数据库没有启动、端口被防火墙阻挡
6.3 解决办法:
在数据库服务器上检查数据库服务是否正常,检查数据库服务器上监听是否启动及正常,查是否有防火墙阻挡了1521端口通讯
问题7.
7.1 错误现象:
ORA-28001: the password has expired
7.2 错误原因:
Oracle用户密码过期。
7.3 解决办法:
更改密码或者重新设置密码有效期策略。
7.3.1 更改密码:
SQL> alter user v3xuser identified by newpassword;

7.3.2 更改密码有效期(默认180天)
SQL> select * from dba_profiles where profile=‘DEFAULT’ and resource_name=‘PASSWORD_LIFE_TIME’;
SQL> alter profile default limit password_life_time unlimited;
##更改密码有效期后,需要再更改一次用户密码
SQL> alter user v3xuser identified by newpassword;
问题8.
8.1 错误现象:
ORA-00600: internal error code, arguments: [keltnfy-ldmInit]…
8.2 错误原因:
主机hostname设置跟/etc/hosts中设置不一致。
8.3 解决办法:
8.3.1. 检查/etc/sysconfig/network中的hostname设置
8.3.2. 检查/etc/hosts中的主机名设置
8.3.3. 将/etc/hosts中主机名改成跟/etc/sysconfig/network一致
问题9.
9.1 错误现象:
ORA-00600: internal error code, arguments: [4194], [45], [44], [], [], [], [], []
9.2 错误原因:
UNDO段出现问题或UNDO于REDO不一致。
9.3 解决办法:
最好通过备份进行恢复,如果没有备份,可以通过将数据库回滚段管理改为手工管理或数据库隐含参数进行强制启动。
SQL> startup mount
SQL> show parameter undo
SQL> alter system set undo_management=‘MANUAL’ scope=spfile;
SQL> shutdown immediate;
SQL> startup
SQL> create undo tablespace UNDOTBS2 datafile ‘/oracle/oradata/idcdb/undotbs2.dbf’ size 1G autoextend on;
SQL> alter system set undo_tablespace=‘UNDOTBS2’ scope=spfile;
SQL> alter system set undo_management=‘AUTO’ scope=spfile;
SQL> shutdown immediate;
SQL> startup
问题10.
10.1 错误现象:
ORA-00600: internal error code, arguments: [ktspgfb-1]

ORA-00600: internal error code, arguments: [4194], [25027], [0], [], [], [], [], []
10.2 错误原因:
此问题是Oracle 11.2.0.2及以上版本中的一个Bug(Bug 14477795),在更新含lobs字段的表时易出现。
10.3 解决办法:
10.3.1. 通过数据泵导出再导入的方式重建表;

10.3.2. 将lob字段迁移到新的表空间:alter table wf_process_running move lob(processobject) store as (tablespace v3xspace);

10.3.3. 将出现问题的表重命名(比如wf_process_running_bak);通过 create table as wf_process_running select * from wf_process_running_bak 的方式重建表。
————————————————
版权声明:本文为CSDN博主「路飞onepiece」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_27745471/article/details/122324161

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值