Oracle数据库连接故障的排查

Oracle数据库连接常见故障及解决方法:

1、Oracle数据库报ORA-12541无监听程序是经常出现的故障:

    1.主要原因:

  • 监听服务未启动:进入系统服务,查看监听服务是否启动;

  • 监听程序配置错误:查看listener.ora、tnsnames.ora和sqlnet.ora这3个文件是关系oracle网络配置的3个主要文件,都是放在 oracle\product\11.2.0\server\network\ADMIN目录下。其中listener.ora是和数据库服务器端相关,而 tnsnames.ora和sqlnet.ora这2个文件不仅仅关系到服务器端,主要的还是和客户端关系紧密。

  • 监听程序未正常工作:一般原因是监听日志过大。

  2.排查步骤:

  1.打开CMD命令提示符输入: lsnrctl status         //查看监听状态

  停留在链接状态看似无响应。

  2.进入监听日志目录下查看日志文件 listener.log,发现大小已经操作4G,无法删除提示正在使用中。

  3.CMD 输入 services.msc 打开系统服务将 ORACLE 服务停止。删除 listener.log 文件。

    我的日志目录 D:\app\Administrator\diag\tnslsnr\WIN-G75CVR58P3G\listener\trace 

  4.lsnrctl start 启动监听正常。

  5.延申:关闭监听日志:

    CMD输入:lsnrctl 回车进入交互模式。

    set log_status off   //关闭监听日志

    stop  //停止监听

    start  //开启

    status  //查看状态

2.Oracle数据库报ORA-12514 TNS 监听程序当前无法识别连接描述符中请求服务

    链接文章:https://www.cnblogs.com/nichoc/p/6417505.html

3.Oracle数据库报ORA-28001: 口令已经失效

  Oracle11G创建用户时缺省密码过期限制是180天(即6个月), 如果超过180天用户密码未做修改则该用户无法登录。文章:https://www.cnblogs.com/luckly-hf/p/3828573.html

  • 查询密码的有效期设置,LIMIT字段是密码有效天数。SELECT * FROM dba_profiles WHERE profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'
  • 在密码将要过期或已经过期时可通过如下语句进行修改密码,密码修改后该用户可正常连接数据库。ALTER USER 用户名 IDENTIFIED BY 密码 ; 
  • 如果想去除180天的密码生存周期的限制可通过如下SQL语句将其关闭:ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED;
      如上SQL语句将口令有效期默认值180天修改成了“无限制”。但是出于数据库安全性考虑,不建议将PASSWORD_LIFE_TIME值设置成UNLIMITED
  • 修改后,还没有被提示ORA-28002警告的用户账号不会再碰到同样的提示;而已经被提示的用户账号必须再改一次密码,如下:

     $sqlplus / as sysdba

      sql>alter user 用户名 identified by <原来的密码> account unlock; ----不用换新密码
      注意:oracle11g启动参数resource_limit无论设置为false还是true,密码有效期都是生效的,所以必须通过以上方式进行修改。
 

 4.表空间不足问题:

   1.查看表空间文件:

    查看用户默认的表空间:     select username,default_tablespace from dba_users;
    查看要扩展的表空间使用的数据文件路径与名字:select * from dba_data_files where tablespace_name like 'USERS%';   

   2.为system表空间另外新增一个数据文件。

    alter tablespace system add datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF' size 1024M autoextend on next 50m maxsize 2000m;

     设置文件大小并自动增长,每次增长的大小及最大空间。

         3.更改system表空间的数据文件SYSTEM.dbf分配空间。 

      alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF' autoextend on;  自动管理
    alter database datafile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\SYSTEM01.DBF' resize 1024M;   文件大小为1024m

5.ORA-01652:无法通过128(在表空间TEMP中)扩展temp段

  https://www.cnblogs.com/myCodingSky/p/3690763.html

  与临时表空间相关的语句:

  --查询用户所使用的临时表空间:
  select username,default_tablespace,temporary_tablespace from dba_users;
 
  --查询临时表空间大小以及使用率:
  select tablespace_name, bytes, user_bytes, user_bytes/bytes,file_name from dba_temp_files;
 
  --查询临时文件是否在线:
  select name,status from v$tempfile;
 
  --修改临时文件在线(离线)状态:
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' online(offline);
 
  --增加临时文件大小(增加原文件):
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' resize 100m;
 
  --通过增加新的临时文件,来扩大临时表空间:
  alter tablespace temp add tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' size 4000m;
 
  --删除临时文件:
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP02.DBF' drop;
 
  --将临时文件设置为自动扩展:
  alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' autoextend on next 5m maxsize unlimited;
 
  --关闭(启动)临时文件的自动增长:
    alter database tempfile 'D:\ORACLE\PRODUCT\10.2.0\ORADATA\ORCL\TEMP01.DBF' autoextend off(on);

posted on 2019-05-13 11:24  sdlyxyf  阅读(664)  评论(0编辑  收藏  举报

导航