oracle–常见问题处理
oracle是我们生产环境使用最频繁的数据库之一,因此将之前日常使用的相关操作记录下,备忘和方便使用。
本章内容主要是为了帮助快速解决相关oracle的报错问题,其实这些信息在搜索引擎中都可以找到,只不过以下这些问题经常发生,而且以下列出的解决方法是经过检验的,免去了在搜索引擎中筛选和验证解决方案的过程。
1、ORA-01031
无法使用 conn / as sysdba连接
1)ora-dba权限是否分配系统用户
我的电脑–》管理–》本地用户和组:查看用户是否存在于组的ora_dba当中,如下图:
将当前用户添加上去
2)SQLNET.AUTHENTICATION_SERVICES = (NTS)
查看oracle_home的sqlnet.ora文件
SQLNET.AUTHENTICATION_SERVICES = (NTS)这句话添加上去
2、ORA-00604
此问题是system表空间不足导致的,出现这样问题的原因有两个,一个是system的空间不足,另一个是磁盘空间不足。
其实一般情况下system除了系统相关权限、用户外,最大可能占用空间的就是审计日志,但是该表空间一般还是够用的,在实际项目中出现system表空间不足情况的原因应该是存在大量业务数据在创建表、用户的时候没有定义表空间,而使用了系统表空间。
首先应该新增对应表空间物理文件(详见第一部分表空间使用情况管理及扩展)
针对审计日志或业务数据占用系统表空间的情况,需要迁移表空间。
-- 通过以下脚本确认占用系统表空间的情况
SELECT * FROM (SELECT SEGMENT_NAME, SUM(BYTES) / 1024 / 1024 MB FROM DBA_SEGMENTS WHERE TABLESPACE_NAME = 'SYSTEM' GROUP BY SEGMENT_NAME ORDER BY 2 DESC) WHERE ROWNUM < 10;
--迁移
alter table aud$ move tablespace aud_space;
3、ORA-12541
TNS:无监听程序问题
详见附件ora-12541.docx
4、ORA-12514
TNS: 监听程序当前无法识别连接描述符中请求的服务
打开 “/network/admin/listener.ora”:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:oracleproduct10.2.0db_1)
(PROGRAM = extproc)
)
)
添加如下内容到第七行
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:oracleproduct10.2.0db_1)
(SID_NAME = ORACLE)
)
修改后的内容如下:
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = D:oracleproduct10.2.0db_1)
(PROGRAM = extproc)
)
(SID_DESC =
(GLOBAL_DBNAME = ORACLE)
(ORACLE_HOME = D:oracleproduct10.2.0db_1)
(SID_NAME = ORACLE)
)
)
重启监听器。
lsnrctl stop // 关闭
lsnrctl start // 启动
5、ora-00942
表或视图不存在。
如果看到表确实存在,但是用表名查询提示以上信息,应该是表名带着双引号。
oracle表名、字段尽量使用大写。
原文始发于微信公众号(云户):oracle–常见问题处理
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/25925.html