社区首页 >问答首页 >Django & Oracle DB失去联系

Django & Oracle DB失去联系
EN

Stack Overflow用户
提问于 2014-10-31 07:19:09
回答 1查看 1.6K关注 0票数 1

我有一个Django项目,它使用Oracle 11数据库。我经常收到Django的例外情况:

代码语言:javascript
代码运行次数:0
复制
OperationalError: ORA-03135: connection lost contact
Process ID: 0
Session ID: 0 Serial number: 0

没有特定的Django视图会导致异常。它可以从任何角度来。

从堆栈跟踪来看,这个异常似乎是从中间件内部抛出的。没有第三方中间件可能会导致问题,这都是标准Django内置的。

在哪里可以找到调试此问题的最佳位置?关于这个错误,我在网上很少发现。Django.settings模块中的任何参数(例如数据库配置)会起作用吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-06 21:52:29

造成此错误的原因有很多:

连接池的配置

检查连接池是否有、超时值、生存期之类的参数。对于这个参数,我自己也有问题,导致了集合会话一分钟不活动后出现的错误ORA-03135。在我的例子中,解决方案是使用非池连接,但这对于大多数应用程序来说是不可行的。在您的情况下,设置更高的超时可能会有效果。

尝试在DJango和/或中间件上激活最高级别的调试,以查看它是否记录有关池中到期会话的消息。重新启动中间件并花费多长时间才能开始失败。如果时间很短(例如60秒),您可能需要更改超时,并确保池有足够的会话来加载。

网络错误/防火墙

各种网络问题,如丢包或网卡问题,都会导致连接掉线。

为了调试这个命令,使用Sqlplus连接到数据库,并运行任何给定的命令。在此之后,使会话不活动10、20、30、60和120分钟(一次尝试一次)。这将让您知道问题是否仅发生在连接池或SQLPLUS中。如果后者为真,则可能是网络问题或配置(例如防火墙超时)导致会话因不活动而中断。如果会话总是在相同的间隔之后(例如在两个小时之后)死亡,则尤其如此。在其他机器上进行同样的实验,看看超时是否还在发生。如果只发生在某些主机上,则主机连接到的开关可能会出现问题。你的网络工程师可能需要参与进来。

在这种情况下,OS Keepalive配置可能会有所帮助。下面是Windows的链接。http://blogs.technet.com/b/nettracer/archive/2010/06/03/things-that-you-may-want-to-know-about-tcp-keepalives.aspx

调试此类错误的另一种方法是在客户端和/或服务器上启用TNS跟踪。这是通过在客户机和服务器TRACE_LEVEL_CLIENT文件上分别将参数配置为TRACE_LEVEL_SERVER和sqlnet.ora来完成的。要实现这一点,还需要其他参数。查看有关该主题的Oracle文档。

Oracle服务器端断开

数据库可能会因为会话的问题、Oracle中的错误或会话被管理员杀死而断开连接。诊断此类问题的最佳方法是查看数据库alert.log,以匹配您获得日志内容错误的时间。如果会话在服务器上死亡,将有一个条目说明会话已终止,以及包含有关断开连接的其他信息的跟踪文件的路径。如果导致此问题的是Oracle错误,则必须通过Oracle支持搜索适当的修补程序。

此外,用户可能与配置了CONNECTION_TIME或IDLE_TIME的Oracle配置文件相关联。为了进行调试,如果这是问题的原因,请将用户与Oracle配置文件关联,而不受此类限制。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26678020

复制
相关文章
Oracle|创建 DB Link
dblink主要用于不同服务器数据库之间的关联操作。比如:想在A服务器之间从B服务器某表中取得数据,更新到A服务器某表中。
Java小技巧
2022/05/23
1.2K0
Oracle|创建 DB Link
Oracle DB Time 解读
Oracle DB Time是Oracle数据库在时间维度上剖析性能的一个重要指标,通过逐级分解该指标,定位到浪费资源或者资源争用的首要事件上,从而通过减少等待以及最小化每个请求的使用资源来达到优化的目的。本文主要讲述Oracle DB Time,以及给出示例演示Oracle DB Time。
Leshami
2018/09/20
1.3K0
Oracle DB Time 解读
Oracle:创建db_link
global_name也就是数据库的全局数据库名,可已使用select * from global_name;查询:
williamwong
2018/07/24
5320
Oracle:创建db_link
oracle:db-link使用
二个oracle instance,如果需要在一个instance上,直接查询另一个instance上的数据,就要用到db-link 创建: create public database link 链接名 connect to 用户名 identified by 密码 using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 服务器IP)(PORT = 1521)) (CONNECT_DATA = (S
菩提树下的杨过
2018/01/19
5310
通过Oracle DB了解MySQL
Oracle数据库是业界的翘楚,各行各业拥有大量的Oracle DB的DBA,本文尝试通过将Oracle与MySQL数据库的架构、安全、模式对象、数据类型及数据存储进行对比,以方便熟悉Oracle数据库的人可以快速了解MySQL。
MySQLSE
2020/09/28
1.9K0
通过Oracle DB了解MySQL
Django sql log出力:logging:django.db.backends
③ python manage.py shell_plus --print-sql
刀枪不入de王二花
2022/08/12
4220
Django sql log出力:logging:django.db.backends
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
AiDBA宝典
2020/08/27
2.6K0
【DB笔试面试863】在Oracle中,如何让Oracle DB、监听和oem开机启动?
【DB宝49】Oracle如何设置DB、监听和EM开机启动
Oracle提供了随操作系统启动而启动的功能,在Windows和Linux中,分别有不同的设置方法。
AiDBA宝典
2021/04/25
8090
Oracle参数解析(db_block_checking)
前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取
bsbforever
2020/08/18
4850
Oracle参数解析(db_block_checking)
from django.db import models_django项目部署
APIView中的dispatch是整个请求生命过程的核心方法,包含了请求模块,权限验证,异常模块和响应模块,我们先来介绍请求模块
全栈程序员站长
2022/09/20
2900
from django.db import models_django项目部署
浅谈Oracle RAC(9)- RAC DB 简介
本文作者系肖遥(花名),原甲骨文技术支持工程师 ,专注于Oracle RAC领域。个人主页:
SQLplusDB
2022/08/19
9860
【DB宝49】Oracle如何设置DB、监听和EM开机启动
Oracle提供了随操作系统启动而启动的功能,在Windows和Linux中,分别有不同的设置方法。
AiDBA宝典
2021/04/30
1.6K0
【DB笔试面试519】在Oracle中,什么是Oracle Directory?
Oracle Directory(目录)可以让用户在Oracle数据库中灵活地对文件进行读写操作,极大地提高了Oracle的易用性和可扩展性。其语法如下所示:
AiDBA宝典
2019/09/29
8720
【DB笔试面试587】在Oracle中,常规游标共享和自适应游标共享的联系和区别有哪些?
从严格意义上来说,常规游标共享和自适应游标共享是各自独立的,两者之间没有必然的联系。
AiDBA宝典
2019/09/29
5890
【DB笔试面试520】在Oracle中,Oracle的DBLINK是什么?
当用户要跨本地数据库访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的DBLINK,通过DBLINK可以像访问本地数据库一样访问远程数据库表中的数据。其实,DBLINK和数据库中的VIEW差不多,创建DBLINK的时候需要知道待读取数据库的IP地址、ORACLE_SID以及数据库用户名和密码。
AiDBA宝典
2019/09/29
1.8K0
Oracle参数解析(db_flashback_retention_target)
前面介绍了Oracle的基本参数,从这节开始讲其他的参数,参数从v$parameter中提取
bsbforever
2020/08/18
1.3K0
Oracle参数解析(db_flashback_retention_target)
Oracle基本参数(DB_DOMAIN)
第一期就从基本的初始化参数讲起,一篇一个参数,会尽可能的具体. 如无特殊说明数据库版本为11g
bsbforever
2020/08/19
6950
使用KVM克隆用于Oracle DB的主机
首先,通过现有的vm1「在上篇文章 使用KVM创建OEL虚拟机 已创建」克隆出一个vm,名字叫做db1,然后修改一些配置,使其更适用于Oracle DB的主机。
Alfred Zhao
2023/01/08
7370
【DB笔试面试576】在Oracle中,简述Oracle中的游标。
在介绍游标之前先介绍一下Oracle数据库中库缓存(Library Cache)的作用及其组成结构。库缓存是SGA中共享池(Shared Pool)中的一块内存区域,主要作用就是缓存执行过的SQL语句和PL/SQL语句(例如存储过程、函数、包、触发器)及其所对应的解析树(Parse Tree)和执行计划等信息。当同样的SQL语句和PL/SQL语句再次被执行的时候就可以直接利用已经缓存在库缓存中的那些相关对象而无须再次从头开始解析,这样就提高了这些SQL语句和PL/SQL语句在重复执行时的执行效率。库缓存(Library Cache)在SGA中的位置如下图所示:
AiDBA宝典
2019/09/29
1.3K0
【DB笔试面试576】在Oracle中,简述Oracle中的游标。
Oracle基本参数(DB_NAME)
第一期就从基本的初始化参数讲起,一篇一个参数,会尽可能的具体. 如无特殊说明数据库版本为11g
bsbforever
2020/08/19
4200

相似问题

失去联系

12

ORA-03135连接在试图使用python和cx_Oracle模块连接到DB时失去了联系。

12

ORA-12547: TNS:失去联系

14

与资源失去联系-为什么

30

芹菜+红葡萄酒失去联系

11
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文