ORA-12537:TNS:连接关闭 错误处理

179 篇文章 18 订阅
问题描述

使用 sqldeveloper 工具登录数据库时出现如下报错:
在这里插入图片描述

问题定位

1.首先怀疑可能是监听有问题或者防火墙处于开启状态,但是报错应该是ORA-28040 或ORA-12170。
为了保险起见,还是检查了监听和防火墙的状态:

$ lsnrctl status;

#  firewall-cmd --state

2.然后怀疑可能是连接数达到上限,于是查询相关参数。

SQL> show parameter processes;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     300

SQL> show parameter sessions;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
sessions                             integer     472
shared_server_sessions               integer



SQL> select count(*) from v$process ;

  COUNT(*)
----------
       299
SQL>  select count(*) from v$session;

  COUNT(*)
----------
       288

所以,基本可以定位出原因是process满了。

处理方法

修改参数值

SQL> alter system set processes=1000 scope=spfile;

System altered.

需要重启数据库后生效

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup;
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
ORACLE instance started.

Total System Global Area 4999610368 bytes
Fixed Size                  2934648 bytes
Variable Size            1258293384 bytes
Database Buffers         3724541952 bytes
Redo Buffers               13840384 bytes
Database mounted.
Database opened.

再次查看参数值发现已经更新成功

SQL>  show parameter processes;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
aq_tm_processes                      integer     1
db_writer_processes                  integer     1
gcs_server_processes                 integer     0
global_txn_processes                 integer     1
job_queue_processes                  integer     1000
log_archive_max_processes            integer     4
processes                            integer     1000

SQL>  show parameter sessions;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
java_max_sessionspace_size           integer     0
java_soft_sessionspace_limit         integer     0
license_max_sessions                 integer     0
license_sessions_warning             integer     0
sessions                             integer     1522
shared_server_sessions               integer
效果验证

再次尝试用sqldeveloper登录数据库,可成功登录。


相关文章
ORA-12170:TNS:连接超时错误处理

连接Oracle 12c R2 报错ORA-28040:No matching authentication protocal

在这里插入图片描述

图片来源于网络
PL/SQL ORA-01804错误是一个日期格式错误。这个错误通常发生在尝试使用不支持的日期格式进行日期转换或操作时。 ORA-01804错误可以在以下情况下发生: 1. 当尝试将一个无效日期字符串转换为日期数据类型时,例如使用错误的日期格式或解析错误的日期字符串。 2. 当尝试将日期进行算术运算时,在不同的日期格式之间进行计算可能导致此错误。 3. 当尝试使用不受支持的日期格式进行日期格式化时。 要解决ORA-01804错误,可以按照以下步骤进行操作: 1. 确保提供的日期字符串的格式正确且与数据库的日期格式相匹配。可以使用TO_DATE函数将字符串转换为日期,并指定相应的日期格式。 2. 避免在日期之间进行算术运算,如果需要进行计算,请确保日期的格式相同,或者使用日期函数进行计算。 3. 在进行日期格式化时,在使用TO_CHAR函数时,确保使用支持的日期格式。可以参考Oracle文档了解可用的日期格式。 另外,还可以考虑以下几点来避免发生ORA-01804错误: 1. 使用TO_DATE函数来将日期字符串转换为日期类型,可以确保日期格式正确,并避免解析错误的日期字符串。 2. 使用TO_CHAR函数将日期格式化为字符串时,使用支持的日期格式进行格式化,以确保格式化的结果是有效的。 综上所述,ORA-01804错误是由于日期格式错误引起的。通过确保日期格式正确以及避免使用不支持的日期格式进行操作,可以解决这个错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值