ora-00600 [1236] & ora-00600 [16365] & ora-04031

ORA-7445 [opidsa] 10G bug多

2007年11月2号

描述:现场反馈数据库主机内存占用达到峰值,windows 2003 x64系统僵死,dump文件每个几十m,共计7G左右。

alert日志:
ORA-07445: 出现异常错误: 核心转储 [ACCESS_VIOLATION] [opidsa+1266] [PC:0x29706F6] [ADDR:0x0] [UNABLE_TO_READ] []

解决:怀疑是bug,metalink搜到418531.1 ,果然,又一个地雷 :shock:

准备打补丁解决:
p4898608_10203_GENERIC
p6430174_10203_MSWIN-x86-64

还有另外一个方法可以缓解,那就是定期刷share pool。

ora-00600 [1236] & ora-00600 [16365] & ora-04031

2007年11月2号

问题描述:

开发人员报告数据库时快时慢,下午应用报错,系统死掉,现场重启库。

分析:

alert日志:

Thu Nov 01 08:39:12 2007
Errors in file e:/oracle/admin/gbbcrm/udump/gbbcrm_s000_3688.trc:
ORA-00600: 内部错误代码,参数: [1236], [], [], [], [], [], [], []

Thu Nov 01 08:40:00 2007
Errors in file e:/oracle/admin/gbbcrm/udump/gbbcrm_s000_3688.trc:
ORA-00600: 内部错误代码,参数: [1236], [], [], [], [], [], [], []

Errors in file e:/oracle/admin/gbbcrm/udump/gbbcrm_s002_4232.trc:
ORA-00600: 内部错误代码,参数: [16365], [0x1D6F1A30], [0], [4], [], [], [], []

Fri Nov 02 13:41:29 2007
Error 600 trapped in 2PC on transaction 20.0.2. Cleaning up.
Error stack returned to user:
ORA-00600: 内部错误代码,参数: [16365], [0x1D6F1A30], [0], [4], [], [], [], []
应用报错:

ORA-04031: 无法分配 8132 字节的共享内存 (”large pool”,”unknown object”,”cursor work he”,”qesaQBInit:buffer”)

metalink中用600那个工具搜索了一下,找到两篇相关文档:

138354.1

106607.1

说的基本都是关于共享服务器连接模式下的错误,再看看应用抛的04031,问题确认基本出在应用连数据库的模式问题上了,用lsnrct service确认,果然共享连接占大比例,目前把应用修改成专用的再观察一段。

如何减少redo产生

2007年10月15号
1. 中间表用临时表代替 (9.2.0.5.0版本以下有bug,可能临时表比普通表产生的日志还要多。。。)
2. 用append提示: 非归档和归档(表nologging)模式下有效。
3. delete –> truncate 

ORACLE exp/imp by example

2007年09月29号

工具:exp,imp

功能:在ORACLE数据库(不同硬件平台,不同OS,不同ORACLE版本)间导入导出数据库对象

用途:逻辑备份,数据库升级

导出文件格式:二进制

创建脚本:$ORACLE_HOME/rdbms/admin/catexp.sql

执行脚本创建、修复exp和imp工具:
[coolcode lang="php" download="tt.sql"]

[oracle@hollycrm oracle]$ sqlplus “/ as sysdba”

SQL*Plus: Release 9.2.0.4.0 - Production on Sat Sep 29 17:59:53 2007

Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.

Connected to:
Oracle9i Enterprise Edition Release 9.2.0.4.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.4.0 - Production

SQL> @$ORACLE_HOME/rdbms/admin/catexp.sql
CREATE ROLE exp_full_database
*
ERROR at line 1:
ORA-01921: role name ‘EXP_FULL_DATABASE’ conflicts with another user or role
name

Grant succeeded.

Grant succeeded. ……

[/coolcode]

ORACLE导数据的方法有几种?

2007年09月29号

经常有同事会问及ORACLE数据库间导数据的方法,这里总结一下,根据实际情况进行选择:

  1. ORACLE的exp/imp工具(10g还有数据泵工具)
  2. ORACLE的sql loader工具,anysql的ocildr工具
  3. ORACLE的表空间传输特性
  4. 第三方工具:如toad,pl/sql developer

其中:

  • 第一种方式用途最广,可以跨平台,跨数据库版本……是ORACLE导数据的基本方式
  • 第二种用来在文本文件和数据库间导数据
  • 第三种方式可以在同平台的数据库上高效的传输数据(10g有所增强,可以跨平台)
  • 第四种方式可以作为一种可选的方式,其原理也不过是调用exp和imp或者导出成sql语句而已

效率方面第三种最高,exp和imp次之,导成sql语句的方式最灵活,效率也最低;

后面会有具体的使用例子供参考。 :razz:

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值