- 浏览: 4406470 次
- 性别:
- 来自: 厦门
文章分类
- 全部博客 (634)
- Oracle日常管理 (142)
- Oracle体系架构 (45)
- Oracle Tuning (52)
- Oracle故障诊断 (35)
- RAC/DG/OGG (64)
- Oracle11g New Features (48)
- DataWarehouse (15)
- SQL, PL/SQL (14)
- DB2日常管理 (9)
- Weblogic (11)
- Shell (19)
- AIX (12)
- Linux/Unix高可用性 (11)
- Linux/Unix日常管理 (66)
- Linux桌面应用 (37)
- Windows (2)
- 生活和工作 (13)
- 私人记事 (0)
- Python (9)
- CBO (15)
- Cognos (2)
- ORACLE 12c New Feature (2)
- PL/SQL (2)
- SQL (1)
- C++ (2)
- Hadoop大数据 (5)
- 机器学习 (3)
- 非技术 (1)
最新评论
-
di1984HIT:
xuexilee!!!
Oracle 11g R2 RAC高可用连接特性 – SCAN详解 -
aneyes123:
谢谢非常有用那
PL/SQL的存储过程和函数(原创) -
jcjcjc:
写的很详细
Oracle中Hint深入理解(原创) -
di1984HIT:
学习了,学习了
Linux NTP配置详解 (Network Time Protocol) -
avalonzst:
大写的赞..
AIX内存概述(原创)
ORA-2020错发生在一个分布式事务使用的dblink数超过参数open_links定义的阀值时:
oracle@ibmvs_a@/oracle $ oerr ora 2020
02020, 00000, "too many database links in use"
// *Cause: The current session has exceeded the INIT.ORA open_links maximum.
// *Action: Increase the open_links limit, or free up some open links by
// committing or rolling back the transaction and canceling open
// cursors that reference remote databases.
改报错主要是和open_links的设置有关为,将其设0时将禁用分布式事务。以下是部分官方说明:
OPEN_LINKS specifies the maximum number of concurrent open connections to remote databases in one session. These connections include database links, as well as external procedures and cartridges, each of which uses a separate process.
Oracle counts one open link for the following:
For each user that references a public or private database link
For each external procedure or cartridge connection when it is executed for the first time
Both types of connections close when the session ends. You can also close a database link connection explicitly by issuing an ALTER SESSION CLOSE DATABASE LINK statement.
You should set this parameter to allow for the external procedure and cartridge connections expected during the session plus the number of databases referred to in typical distributed transactions (that is, a single SQL statement that references multiple databases), so that all the databases can be open to execute the statement. For example, if queries alternately access databases A, B, and C, and OPEN_LINKS is set to 2, time will be lost waiting while one connection is broken and another made. Increase the value if many different databases are accessed over time.
This parameter refers only to connections used for distributed transactions. Direct connections to a remote database specified as an application connects are not counted.
If you set OPEN_LINKS to 0, then no distributed transactions are allowed.
在使用dblink的情况下,查询和DML操作都会造成分布式事务,长查询和没有及时提交或回滚事务都很容易造成ORA-02020报错。因此应特别注意使用dblink的事务需及时提交或回滚事务,避免长查询。在设置open_links时应了解应用开发商方面使用dblink的查询语句执行时间和查询密度,才能做出最有效的调整。
1、查看dblink的参数。创建多个dblink,这里我建立了6个:
从DBLINK_TEST1至DBLINK_TEST6
z@test10g>show parameter open_links
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
open_links integer 4
open_links_per_instance integer 4
2、连接6个dblink,每次连接后提交。则可以成功。
z@test10g> col DB_LINK for a20
z@test10g> select * from v$dblink;
no rows selected
z@test10g> declare
2 v_i number;
3 v_sql varchar(500);
4 begin
5 for i in 1..6
6 loop
7 v_sql:='select count(*) fromdual@DBLINK_TEST'||to_char(i);
8 execute immediate v_sql into v_i;
9 commit;
10 dbms_output.put_line(i);
11 end loop;
12 end;
13 /
PL/SQL procedure successfully completed.
z@test10g> select * from v$dblink;
DB_LINK OWNER_ID LOG HET PROTOC OPEN_CURSORS IN_ UPD COMMIT_POINT_STRENGTH
-------------------- ---------- --- --- ------ ------------ --- --- ---------------------
DBLINK_TEST1 58 YES YES UNKN 0 NO NO 1
DBLINK_TEST2 58 YES YES UNKN 0 NO NO 1
DBLINK_TEST3 58 YES YES UNKN 0 NO NO 1
DBLINK_TEST6 58 YES YES UNKN 0 NO NO 1
3、连接6个dblink,每次连接后不提交。则提示失败。
z@test10g> declare
2 v_i number;
3 v_sql varchar(500);
4 begin
5 for i in 1..6
6 loop
7 v_sql:='select count(*) fromdual@DBLINK_TEST'||to_char(i);
8 execute immediate v_sql into v_i;
9 --commit;
10 dbms_output.put_line(i);
11 end loop;
12 end;
13 /
1
2
3
4
declare
*
ERROR at line 1:
ORA-02020: too many database links in use
ORA-06512: at line 8
z@test10g> select * from v$dblink;
DB_LINK OWNER_ID LOG HET PROTOC OPEN_CURSORS IN_ UPD COMMIT_POINT_STRENGTH
-------------------- ---------- --- --- ------ ------------ --- --- ---------------------
DBLINK_TEST1 58 YES YES UNKN 0 YES NO 1
DBLINK_TEST2 58 YES YES UNKN 0 YES NO 1
DBLINK_TEST3 58 YES YES UNKN 0 YES NO 1
DBLINK_TEST4 58 YES YES UNKN 0 YES NO 1
可通过如下方法修改open_links参数
SQL> alter system set open_links=12 scope=spfile;
重启数据库
参考至:Oracle® Database Reference 11g Release 1 (11.1) B28320-01
http://space.itpub.net/23650854/viewspace-687904
本文原创,转载请注明出处、作者
如有错误,欢迎指正
邮箱:czmcj@163.com
发表评论
-
AIX平台下磁盘的PVID对ASM磁盘的破坏
2014-03-19 20:53 2734这篇文章将通过两篇MOS文章来讨论AIX平台下为磁盘分配 ... -
Bug 9020054,ORA-8103 BEING HIT DURING GATHERING OF STATISTICS ON TABLE PARTITION
2013-12-01 09:22 1875Bug 9020054 : ORA-8103 ... -
oracle数据库hanganalyze(原创)
2013-06-23 14:11 8323为什么要使用hanganalyzeOracle 数据库“真 ... -
Oracle:并行操作为什么无法执行(老白)
2013-06-23 10:30 5724在一次系统割接的时候,我们碰到一个十分奇怪的现象。由于进行 ... -
补写的2小节DBA日记
2013-06-05 21:52 13866月8日 ITL等待引发的RAC性能问题 从这几天的情况 ... -
ORA-27054故障排除
2013-03-08 17:57 12946在数据备份过程中,由于目标是使用NFS文件系统,因此在导入 ... -
长时间latch free等待——记一次系统异常的诊断过程
2013-01-09 19:17 3713今天发现一个报表数据库中SQL运行异常,简单记录一下问题的诊断 ... -
ORA-15063: ASM discovered an insufficient number of disks for diskgroup(原创)
2012-11-25 16:59 13083ORA-15063: ASM discovered an in ... -
libpthread.so.0: cannot open shared object file解决方法(原创)
2012-11-24 17:33 17741在linux 5上装10G RAC时,常常会碰到“libpth ... -
Oracle数据库CPU 100%故障诊断实例(原创)
2012-07-05 13:55 16908前言 这两天一只对外提供查询的数据库CPU使用率 ... -
DBA手记:System State转储分析之问题定位
2012-04-19 22:20 2107在 Oracle 数据库的运行过程中,可能会因为一些异常遇 ... -
ORA-02050故障诊断一例
2012-04-05 17:20 8566昨天客户反映说在下午某时间段有几个事务失败了,让我查下当时数据 ... -
ORA-00308: cannot open archived log(原创)
2012-03-23 09:36 16248笔者在为客户配置DG时发现主备库日志无法正常传输,经仔细检查后 ... -
ORA-00600: internal error code, arguments: [kcblasm_1], [103]原创
2012-03-23 09:36 3100故障报错 Mon Mar 19 11:30:03 GMT ... -
ORA-00600: internal error code, arguments: [kglhdda-bad-free](原创)
2012-03-22 09:16 2961故障报错如下 Thu Mar 15 09:51:29 G ... -
ORA-27300,ORA-27301,ORA-27302: failure occurred at: skgpalive1(原创)
2012-03-22 08:58 3336故障报错如下 Wed Mar 07 16:4 ... -
ora-07445错误相关内容
2012-03-01 17:14 1803本文档主要介绍ora-07445 错误相关内容,并给出了对这 ... -
记一次Oracle 生产库还原归档日志经历(原创)
2012-02-17 10:12 4375中午刚去吃饭,就接到同事电话说急着要恢复生产库上的归档日志。系 ... -
SMON: Parallel transaction recovery tried 引发的问题
2012-01-04 11:26 2395SMON: Parallel transaction rec ... -
ORA-00444,ORA-07446故障排查
2011-12-14 16:58 4642phenomenon startup ORA-00 ...
相关推荐
理解这些错误码及其含义对于排除故障、确保数据库的稳定运行至关重要。本文将详细介绍一系列Oracle错误码,并对每个错误码背后的原因及可能的解决方案进行深入探讨。 #### 二、错误码详解 ##### ORA-02249: 缺少或...
**ORA-17009**:I/O 异常,与文件系统或硬件故障有关。 #### ORA-17010 至 ORA-17016:ResultSet 相关错误 **ORA-17010**:ResultSet 错误,可能是因为 ResultSet 未正确初始化或已关闭。 **ORA-17011**:...
### Oracle错误代码详解 在Oracle数据库管理与维护过程中,遇到各种错误代码是在所难免的。了解这些错误代码的含义及解决方法,对于快速定位问题、解决问题有着至关重要的作用。以下是一些常见的Oracle错误代码及其...
### Oracle 错误信息详解 在使用Oracle数据库的过程中,可能会遇到各种各样的错误信息,这些错误信息对于数据库管理员(DBA)来说是非常重要的诊断工具。本文将详细介绍一系列Oracle错误代码及其含义,帮助读者更好...
### Oracle错误代码详解 在Oracle数据库管理与维护中,遇到各种错误代码是在所难免的。了解这些错误代码的含义及解决方法,对于快速定位问题、提高数据库运行效率至关重要。以下是一些常见的Oracle错误代码及其解释...
### Oracle11g常见故障处理知识点详解 #### 安装和配置类问题 **1. 图形界面启动问题** - **客户端启动图形界面** - **问题**: 使用客户端连接到Unix或者Linux平台上的数据库服务器时,无法启动图形界面进行安装...
### Oracle异常详解 #### ORA-0001:DUP_VAL_ON_INDEX - **异常说明**:当尝试向一个定义了唯一性约束的索引插入重复值时触发。 - **常见原因**: - 插入的数据违反了表中的唯一性约束条件。 - 可能是由于数据...
### Oracle数据库诊断事件详解 #### 一、Oracle数据库诊断事件简介 Oracle数据库中的**诊断事件**(Diagnosable Events)是一类特殊的机制,用于改变数据库的行为、启用收集跟踪或调试信息以及启用对数据库的额外...
- 若出现ORA-00312或ORA-00313错误提示,则说明指定的联机重做日志文件丢失或损坏。 2. **查询V$LOG视图**: - 可以通过查询V$LOG视图来获取关于联机重做日志的信息,包括日志组编号、序列号、是否已归档以及当前...
### Oracle坏块处理详解 #### 引言 在Oracle数据库管理中,遇到ORA-01578错误,即“Oracle数据块损坏”,是DBA(数据库管理员)们经常面临的一项挑战。这种错误通常伴随着ORA-01110错误,指向特定的数据文件及其...
【知识点详解】 1. Dataguard(数据守护):Dataguard是Oracle数据库的一个特性,用于创建物理或逻辑备用数据库,以提供高可用性和灾难恢复能力。它通过实时同步或异步的方式复制主数据库的数据,确保在主数据库...
《Oracle SQLNET.ORA配置详解》 在Oracle数据库系统中,SQLNET.ORA是一个至关重要的配置文件,它定义了客户端与服务器之间的网络通信参数。理解并正确配置SQLNET.ORA文件,对于确保数据库连接的稳定性和安全性至关...
### Oracle诊断案例专刊知识点概览 #### 一、Spfile案例详解 ...- **书籍价值**:这本书不仅适合初学者入门,也为高级用户提供了丰富的实践案例和技术深度分析,有助于读者全面提升Oracle数据库管理和故障诊断能力。
- 学习内容包括实例管理、空间管理、用户管理和权限控制、备份与恢复策略(RMAN, Data Pump)、性能监控(V$视图,AWR, ASH报告)以及故障诊断。 4. **常见错误信息详解**: - Oracle 10g中的错误信息有助于诊断...
### Oracle Error Message详解 #### 一、概述 在Oracle数据库管理与维护过程中,经常会遇到各种各样的错误消息。这些错误消息对于理解问题所在并采取适当的措施解决问题是至关重要的。Oracle9i Database Error ...
使用`cat /u01/app/oracle/admin/ORCL/bdump/alert_ORCL.log|grep -i ora-`或`grep -i err`等命令查找`alert_SID.log`中的错误信息,帮助诊断和解决问题。例如,`ORA-1126`通常表示在尝试切换日志时出现问题,`ORA-...
11. **故障诊断与问题解决**:学习如何使用Oracle的错误代码和文档来诊断和解决常见问题,理解ORA-错误的含义。 通过阅读《Oracle DBA必备技能详解》,读者可以系统地学习和掌握Oracle 10g数据库的管理和维护技能,...
然而,即便如此,数据库故障仍然可能发生,如在Oracle 11g环境中遇到的"ORA-00600:内部错误代码,参数:[kcratr_nab_less_than_odr]"报错。这个问题涉及到数据库内部结构的异常,通常是由数据损坏、系统崩溃或其他...
### ORACLE调优笔记知识点详解 #### 一、Oracle错误代码与解决方法 在Oracle数据库管理及优化过程中,经常会遇到一些常见的错误代码,这些错误往往能够帮助我们快速定位问题所在。 1. **ORA-01652: 无法分配临时...