oracle–常见问题处理


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

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!