zoukankan      html  css  js  c++  java
  • Oracle数据库连接故障的排查

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

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

        1.主要原因:

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

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

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

      2.排查步骤:

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

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

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

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

        我的日志目录 D:appAdministratordiag nslsnrWIN-G75CVR58P3Glistener race 

      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:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF' size 1024M autoextend on next 50m maxsize 2000m;

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

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

          alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.DBF' autoextend on;  自动管理
        alter database datafile 'D:ORACLEPRODUCT10.2.0ORADATAORCLSYSTEM01.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:ORACLEPRODUCT10.2.0ORADATAORCLTEMP02.DBF' online(offline);
     
      --增加临时文件大小(增加原文件):
      alter database tempfile 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP01.DBF' resize 100m;
     
      --通过增加新的临时文件,来扩大临时表空间:
      alter tablespace temp add tempfile 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP02.DBF' size 4000m;
     
      --删除临时文件:
      alter database tempfile 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP02.DBF' drop;
     
      --将临时文件设置为自动扩展:
      alter database tempfile 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP01.DBF' autoextend on next 5m maxsize unlimited;
     
      --关闭(启动)临时文件的自动增长:
        alter database tempfile 'D:ORACLEPRODUCT10.2.0ORADATAORCLTEMP01.DBF' autoextend off(on);
  • 相关阅读:
    LintCode "Maximum Gap"
    LintCode "Wood Cut"
    LintCode "Expression Evaluation"
    LintCode "Find Peak Element II"
    LintCode "Remove Node in Binary Search Tree"
    LintCode "Delete Digits"
    LintCode "Binary Representation"
    LeetCode "Game of Life"
    LintCode "Coins in a Line"
    LintCode "Word Break"
  • 原文地址:https://www.cnblogs.com/sdlyxyf/p/10855673.html
Copyright © 2011-2022 走看看