• 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);
  • 相关阅读:
    HDU 2842 (递推+矩阵快速幂)
    HDU 2838 (DP+树状数组维护带权排序)
    HDU 2836 (离散化DP+区间优化)
    HDU 2831 (贪心)
    HDU 2818 (矢量并查集)
    HDU 2822 (BFS+优先队列)
    HDU 3090 (贪心)
    HDU 3089 (快速约瑟夫环)
    XCOJ 1103 (LCA+树链最大子段和)
    HDU 3078 (LCA+树链第K大)
  • 原文地址:https://www.cnblogs.com/sdlyxyf/p/10855673.html
Copyright © 2020-2023  润新知