ora-07445错误总结
Oracle数据库常见问题处理

Oracle数据库常见问题处理一、解决Oracle 版本数据库于ORA-07445宕机问题故障现象: XX网数据库宕机,查看日志发现以下内容: Wed Jun 8 20:24:17 2005 Errors in file /u02/app/oracle/admin/unicom/udump/unicom_ora_:ORA-07445: \\263\\366\\317\\326\\322\\354\\263\\243: \\272\\313\\320\\304\\327\\252\\264\\242 [00000 00101C3089C] [SIGSEGV] [Address not mappe d to object] [0x000000000] Wed Jun 8 20:24:22 2005 Errors in file /u02/app/oracle/admin/unicom/bdump/unicom_pmon_: ORA-07445: exception encountered: core dump [0000000101C399A0] [SIGSEGV] [Address no t mapped to object] [0x000000000] Wed Jun 8 20:24:23 2005 Errors in file /u02/app/oracle/admin/unicom/bdump/unicom_pmon_: ORA-07445: exception encountered: core dump [0000000101C399A0] [SIGSEGV] [Address no t mapped to object] [0x000000000] ORA-00602: internal programming exception ORA-07445: exception encountered: core dump [0000000101C399A0] [SIGSEGV] [Address no t mapped to object] [0x000000000] Wed Jun8 20:24:33 2005 CKPT: terminating instance due to error 472 Instance terminated by CKPT, pid = 11604 Wed Jun 8 21:04:47 2005 Starting ORACLE instance (normal) 解决办法:Oracle工程师建议安装Oracle补丁p3949307_9206_SOLARIS64,经过测试,安装步骤如下: 1.解压补丁文件: unzip p3949307_9206_ 解开后的目录是:4060756 。
华为公司Oracle11g常见故障处理

Oracle 11g 数据库常见故障处理TSD配套产品服务部2009年6月27日目标通过本课程的学习,您将了解以下内容:Oracle 11g数据库常见故障及处理安装和配置类问题实例管理类问题数据管理类管理数据库恢复类问题管理工具类问题ORA-00600介绍和案例分析ORA-07445介绍和案例分析目录安装配置类实例管理类数据管理类数据恢复类管理工具类ORA-00600ORA-07445目标通过本章节的学习,您将了解以下内容:ORACLE 11g常见的安装类问题这些问题的分析和解决如何在客户端启动图形界面问题用客户端连接到Unix或者Linux平台上安装数据库软件时,常常无法启动图形界面,因此无法进行安装解决以root用户执行:xhost +客户端需要安装xmanager,并且通过Xbrowser登陆到主机以oracle用户执行:export DISPLAY=客户端IP:0.0xclock (测试能否显示图形界面)如果图形界面还出不来,可以尝试export DISPLAY=客户端IP:1.0如何在服务器端启动图形界面问题如果直接在服务器上安装数据库软件时,有时也会碰到不能启动图形界面的问题解决以root用户执行:xhost +以oracle用户执行:export DISPLAY=:0.0xclock (测试能否显示图形界面)安装CRS时,无法添加节点故障现象AIX或HPUX上安装CRS的过程中,有一步是添加节点,正常情况下,应该可以添加本地节点和远程节点,但添加远程节点时失败。
解决方法如果要安装的CRS需要依赖操作系统双机管理共享文件,那么安装CRS时,必须保证操作系统双机服务启动如果不需要操作系统双机软件,而只需要ASM管理共享存储,那么必须在操作系统上删除双机软件,对于HACMP,要保证没有安装rsct.basic.hacmp包,对于HPUX,要保证没有安装Serviceguard包AIX上安装CRS时提示bos.cifs_fs.rte检查不通过故障现象在AIX5L上安装CRS时,当安装程序自动检查操作系统补丁时,提示bos.cifs_fs_rte未安装解决办法安装所需AIX程序包smitty installp重启操作系统shutdown -FrCRS安装最后阶段在第二个节点运行root.sh报错故障现象安装CRS最后阶段,在第二个节点执行root.sh时,报错:The given interface(s), "eth2" is not public.Public interfaces should be used to configure virtual IPs解决办法以root身份手工在第二个节点执行vipcacd /<CRS安装目录>/bin./vipca安装RAC时报ORA-00603,ORA-29702故障现象在安装RAC时,出现下列错误:ORA-00603:ORACLE server session terminated by fatal error或ORA-29702:error occurred in Cluster Group Service operation原因分析RAC的节点名出现在了/etc/hosts文件中的回送地址中xxxx解决方法如果机器名出现在回送地址条目中,如下所示:127.0.0.1 rac1 localhost.localdomain localhost需要灾回送地址中删除掉机器名,如下:127.0.0.1 localhost.localdomain localhost无法连接数据库ORA-12521,ORA-12505故障现象连接数据库时报错:原因分析客户端tnsnames.ora配置的连接串中,关于instance_name的设置不正确,这个错误类似ORA-12505: TNS:listener could not resolve SID given in connectdescriptor解决方法检查数据库的instance_name:select instance_name from v$instance;修改客户端tnsnames.ora文件,设置正确的instance_name或SID无法连接数据库ORA-12541故障现象连接数据库时报错:ERROR:ORA-12541: TNS:no listener原因分析可能原因一:客户端tnsnames.ora配置的连接串中,监听端口号设置不正确可能原因二:数据库服务器监听没有启动解决方法检查客户端tnsnames.ora文件,设置正确的监听端口号检查服务器上的监听是否正常启动无法连接数据库ORA-12535故障现象连接数据库时报错:ERROR:ORA-12535: TNS:operation timed out原因分析可能原因:客户端tnsnames.ora中,服务器IP地址设置错误可能原因:防火墙阻断了连接解决方法正确配置tnsnames.ora中的服务器IP地址利用Tnsping connectstring,测试配置是否正确,如果不通,检查网络。
Oracle错误代码案例总结及解决方案

常见错误:ORA-00001:违反唯一约束条件(主键错误)ORA—00028:无法连接数据库进程ORA—00900:无效sql语句ORA—00904:字段名写错或是建表时最后一个字段有逗号ORA-00907:缺少右括号ORA—00911:无效字符ORA—00917:缺少逗号ORA-00918:未明确定义列ORA-00922:丢失或无效的选项(表名等可能有空格)ORA—00923:未找到FROM关键字ORA—00926:缺少valueORA—00933: SQL命令未正确结束ORA—00936:缺少表达式ORA—00937:不是单组分组函数ORA—00942:表或视图不存在ORA-00947:没有足够的值(一般是插入语句出现的错,插入值的数量与字段不符)ORA-00979:不是group by的表达式ORA—01009:缺少法定参数(eg:sql做参数时,且sql语句为空时,报错)ORA-01098:数据库无法关闭及启动ORA—01400:无法将null值插入ORA—01401:插入的值对于列过大ORA-01476:sql中存在除数为零ORA—01579: 恢复过程中出现写错误ORA—01580: 创建控制备份文件时出错ORA-01581: 尝试使用已分配的回退段() 新区()ORA-01582:无法打开要备份的控制文件ORA—01583: 无法获得要备份的控制文件的块大小ORA-01584:无法获得要备份的控制文件的文件大小ORA-01585: 标识备份文件时出错ORA-01586: 无法打开要备份的目标文件ORA-01587: 复制控制文件的备份文件时出错ORA-01588:要打开数据库则必须使用RESETLOGS 选项ORA-01589: 要打开数据库则必须使用RESETLOGS 或NORESETLOGS 选项ORA-01590:段可用列表数()超出最大数ORA—01591:锁定已被有问题的分配事务处理挂起ORA—01592:将第7 版回退段() 转换为Oracle 8 版格式时出错ORA—01593: 回退段最佳大小(blks) 小于计算的初始大小( blks)ORA—01594: 尝试放回已释放的回退段()区()ORA-01595:释放区() 回退段()时出错ORA—01596: 无法在参数中指定系统ORA-01597:无法改变联机或脱机系统回退段ORA-01598: 回退段''未联机ORA-01599: 无法获得回退段(), 高速缓存空间已满ORA—01600: 至多只有一个””在子句""()中ORA-01601: 子句””()中的存储桶大小非法ORA-01603:子句"”()中的分组大小非法ORA—01604: 子句”"()中的编号范围非法ORA—01605: 子句”"()中缺少编号ORA—01606: gc_files_to_locks 不同于另一已安装例程的参数ORA-01608:无法将回退段’'联机,其状态为()ORA-01609:日志是线程的当前日志—无法删除成员ORA—01610: 使用BACKUP CONTROLFILE 选项的恢复必须已完成ORA-01611: 线程编号无效- 必须介于1 和之间ORA-01612: 线程已经启用ORA—01613:线程只有日志- 要求至少启用2 个日志ORA-01614:线程正忙- 无法启用ORA—01615: 线程已安装—无法禁用ORA-01616: 线程已打开—无法禁用ORA-01617: 无法安装: 不是有效的线程编号ORA-01618: 线程未启用- 无法安装ORA—01619:线程已由另一例程安装ORA-01620: 没有可用于安装的公用线程ORA-01621:数据库打开时无法重命名当前日志的成员ORA—01622: 必须指定线程编号- 没有特定默认值ORA-01623: 日志是线程的当前日志- 无法删除ORA—01624: 线程的紧急恢复需要日志ORA-01625:回退段'’不属于此例程ORA—01626:回退段号''无法处理更多事务处理ORA—01627: 回退段号''未联机ORA—01628: 已达到max # extents ()(回退段)ORA-01629: 已达到max #extents (),此时正在保存表空间的撤消ORA—01630: 表空间中的temp 段达到max #extents()ORA-01631:表。
一起探讨下ORA-600实际工作的处理思路

影响
异常等待阻塞 坏 块
1 2 3 4
什么鬼?有何影响?
有何处理方案? 结合实际案例看看? 总 结
2.1有何处理方案?
Oracle Support
BY Myself
Solution
1.描述报错时情 况 2.收集相关文件 打包(版 本,trace,dump, awr等) 3.及时跟踪SR 4.结论总结
检查 数据库
提交 S R
自己 查找
背景:某大型电力数据库,HPUX平台,10.2.0.5版本,巡检发现大量ORA00600: internal error code, arguments: [kqlnrc_1]。业务反映某个SQL无 法运行。数据库运行状态正常,没有异常等待。
3.1检查数据库
3.2 提交SR-问题描述
1.检查数据库 2.查看报错 3.600.1 43.协商决策 4.因地制宜 5.方案及实施
1.检查数据库 是否正常,先 恢复 2.MOS上搜索 first参数 3..更新BUG清单 2.根据实际情况 与同事确定最终 方案 3.准备实施文档 4.确定日期实施
2.2 Oracle Support支持
准备
1.收集Opatch lsinventory输出 2.收集相关log(trace,alert,awr,ash) 3.systedump
02
Mos(Metalink) search
A.600.1(ID 153788.1) B.o确认opatch B.确认症状信息 C.触发频率 D.风险评估
1 2 3 4
什么鬼?有何影响?
有何处理方案? 结合实际案例看看? 总 结
3.结合实际案例看看?
1.2 ORA-07445 定义:
Oracle错误一览表2

ORA-02201: 此处不允许序列(号)ORA-02202: 此群集中不允许添加其它表ORA-02203: 不允许的INITIAL 存储选项ORA-02204: 不允许ALTER, INDEX 和EXECUTE 用于视图ORA-02205: 只有SELECT 和ALTER 权限对序列有效ORA-02206: 重复的INITRANG 选项说明ORA-02207: 无效的INITRANS 选项值ORA-02208: 重复的MAXTRANS 选项说明ORA-02209: 无效的MAXTRANS 选项值ORA-02210: 未指定ALTER TABLE 的选项ORA-02211: 无效的PCTFREE 或PCTUSED 值ORA-02212: 重复的PCTFREE 选项说明ORA-02213: 重复的PCTUSED 选项说明ORA-02214: 重复的BACKUP 选项说明ORA-02215: 重复的表空间名子句ORA-02216: 需要表空间名ORA-02217: 重复的存储选项说明ORA-02218: 无效的INITIAL 存储选项值ORA-02219: 无效的NEXT 存储选项值ORA-02220: 无效的MINEXTENTS 存储选项值ORA-02221: 无效的MAXEXTENTS 存储选项值ORA-02222: 无效的PCTINCREASE 存储选项值ORA-02223: 无效的OPTIMAL 存储选项值ORA-02224: EXECUTE 权限对于表不允许ORA-02225: 只有EXECUTE 和DEBUG 权限对过程有效ORA-02226: 无效的MAXEXTENTS 值(最大允许为: )ORA-02227: 无效的群集名ORA-02228: 重复的SIZE 说明ORA-02229: 无效的SIZE 选项值ORA-02230: 无效的ALTER CLUSTER 选项ORA-02231: 缺少或无效的ALTER DA TABASE 选项ORA-02232: 无效的MOUNT 模式ORA-02233: 无效的CLOSE 模式ORA-02234: 已经记录对此表的更改ORA-02235: 此表已将更改记录在另一表中ORA-02236: 无效的文件名ORA-02237: 无效的文件大小ORA-02238: 文件名列表具有不同的文件数ORA-02239: 存在引用此序列的对象ORA-02240: 无效的OBJNO 或TABNO 值ORA-02241: 必须是EXTENTS (FILE <n> BLOCK <n> SIZE <n>,...) 格式ORA-02242: 未指定ALTER INDEX 的选项ORA-02243: ALTER INDEX 或ALTER MATERIALIZED VIEW 选项无效ORA-02244: 无效的ALTER ROLLBACK SEGMENT 选项ORA-02245: 无效的ROLLBACK SEGMENT 名ORA-02246: 缺少EVENTS 文本ORA-02247: 未指定ALTER SESSION 的选项ORA-02248: 无效的ALTER SESSION 选项ORA-02249: 缺少或无效的MAXLOGMEMBERS 值ORA-02250: 缺少或无效的约束条件名ORA-02251: 此处不允许子查询ORA-02252: 检查未正确结束的约束条件ORA-02253: 此处不允许约束条件说明ORA-02254: 此处不允许DEFAULT <表达式>ORA-02255: obsolete 7.1.5ORA-02256: 要引用的列数必须与已引用道感数匹配ORA-02257: 超出最大列数ORA-02258: 重复或冲突的NULL 和(或)NOT NULL 说明ORA-02259: 重复的UNIQUE/PRIMARY KEY 说明ORA-02260: 表只能具有一个主键ORA-02261: 表中已存在这样的唯一关键字或主键ORA-02262: 对列默认值表达式进行类型检查时, 出现ORA- ORA-02263: 需要指定此列的数据类型ORA-02264: 名称已被一现有约束条件占用ORA-02265: 无法推导引用列的数据类型ORA-02266: 表中的唯一/主键被启用的外部关键字引用ORA-02267: 列类型与引用的列类型不兼容ORA-02268: 引用的表不具有主键ORA-02269: 关键字列不能是LONG 数据类型ORA-02270: 此列列表的唯一或主键不匹配ORA-02271: 表没有这样的约束条件ORA-02272: 约束条件列不能是LONG 数据类型ORA-02273: 此唯一/主键已被某些外部关键字引用ORA-02274: 重复的引用约束条件说明ORA-02275: 此表中已经存在这样的引用约束条件ORA-02276: 默认值类型与列类型不兼容ORA-02277: 无效的序列名ORA-02278: 重复或冲突的ORDER/NOORDER 说明ORA-02279: 重复或冲突的ORDER/NOORDER 说明ORA-02280: 重复或冲突的ORDER/NOORDER 说明ORA-02281: 重复或冲突的ORDER/NOORDER 说明ORA-02282: 重复或冲突的ORDER/NOORDER 说明ORA-02283: 无法改变起始序号ORA-02284: 重复的INCREMENT BY 说明ORA-02285: 重复的START WITH 说明ORA-02286: 未指定ALTER SEQUENCE 的选项ORA-02287: 此处不允许序号ORA-02288: 无效的OPEN 模式ORA-02289: 序列(号)不存在ORA-02290: 违反检查约束条件(.)ORA-02291: 违反完整约束条件(.) - 未找到父项关键字ORA-02292: 违反完整约束条件(.) - 已找到子记录日志ORA-02293: 无法验证(.) - 违反检查约束条件ORA-02294: 无法启用(.) - 约束条件在验证过程中更改ORA-02295: 找到约束条件的多个启用/禁用子句ORA-02296: 无法启用(.) - 找到空值ORA-02297: 无法禁用约束条件(.) - 存在依赖关系ORA-02298: 无法验证(.) - 未找到父项关键字ORA-02299: 无法验证(.) - 未找到重复关键字ORA-02300: 无效的OIDGENERA TORS 值ORA-02301: OIDGENERA TORS 的最大数为255ORA-02302: 无效或缺少类型名ORA-02303: 无法使用类型或表的相关性来删除或取代一个类型ORA-02304: 无效的对象标识文字ORA-02305: 只有EXECUTE, DEBUG 和UNDER权限对类型有效ORA-02306: 无法创建已具有有效相关性的类型ORA-02307: 无法使用REPLACE 选项改变无效类型ORA-02308: 无效的对象类型列选项ORA-02309: 违反原子NULLORA-02310: 超出表中允许的最大列数ORA-02311: 无法使用COMPILE 选项改变具有类型或表相关性的有效类型ORA-02313: 对象类型包含不可查询的类型属性ORA-02315: 默认构造符的参数个数错误ORA-02320: 无法创建嵌套表列的存储表ORA-02322: 无法访问嵌套表列的访问表ORA-02324: THE 子查询的SELECT 列表中存在多列ORA-02327: 无法以数据类型的表达式创建索引ORA-02329: 数据类型的列不能是唯一关键字或主键ORA-02330: 不允许的数据类型说明ORA-02331: 无法创建数据类型为的列的约束条件ORA-02332: 无法对此列的属性创建索引ORA-02333: 无法对此列的属性创建约束条件ORA-02334: 无法推断列类型ORA-02335: 无效的群集列数据类型ORA-02336: 无法访问列属性ORA-02337: 不是对象类型列ORA-02338: 缺少或无效的列约束条件说明ORA-02339: 无效的列说明ORA-02340: 无效的列说明ORA-02342: 取代类型具有编译错误ORA-02344: 无法撤消执行具有表相关性的类型ORA-02345: 无法创建具有基于CURSOR 运算符的列的视图ORA-02347: 无法授权给对象表列ORA-02348: 无法创建具有嵌入LOB 的VARRAY 列ORA-02349: 无效的用户自定义类型- 类型不完整ORA-02351: 记录: 被拒绝- 表, 列上出错ORA-02352: 直接路径连接必须在同类间进行ORA-02353: 多字节字符错误ORA-02354: 字段中出现转换初始化错误ORA-02355: CONSTANT 字段中出现转换错误ORA-02356: 数据库空间耗尽。
ORA-07445 出现异常错误 核心转储(oracle bug)

insert into vod_cms_publish_seq_detail nologging
select PUBLISH_SEQUENCE.nextval, 812486, 1,x.id,null,x.assettype,decode(x.status, 3, 41, 40),x.folderid,x.assetid
([PublishSequenceDetailHibernateDao].java:317)
- 存取过程操作失败无法从套接字读取更多的数据
2011-06-21
10:20
52,104:
INFO [http-8180-Processor11|http-8180-Processor11]
所以说,bug到处都会有,而怎样让已知bug不会成为用户无法使用产品或者生产力无法提高的借口是非常重要滴...
废话少说,还是记下问题排查的过程,以备后查。
数据库版本:
oracle10.2.0.4
问题现象:
日志中出现如下报错:
2011-06-21
10:20
50,010:
INFO [http-8180-Processor11|http-8180-Processor11]
解决方案
接下来的解决方案就简单了,根据oracle metalink上提供的solution,在数据库级别执行以下sql,以设置隐含参数,即可避免出现此问题。
alter
system set
"_optimizer_connect_by_cost_based"
=
false
at oracle.jdbc.driver.[DatabaseError].throwSqlException([DatabaseError].java:208)
Oracle错误一览表3

ORA-09751: pw_attachPorts: 服务器调用pws_attach 失败ORA-09752: pw_attachPorts: port_allocate 失败ORA-09753: spwat: 无效的进程号ORA-09754: sppst: 传送给sppst 的进程号无效ORA-09755: osngpn: 端口配置失败ORA-09756: osnpns: 名服务器中没有端口ORA-09757: osnipn: 端口配置失败ORA-09758: osnipn: 无法检查名服务器中的端口ORA-09759: osnsbt: 收到的信息错误ORA-09760: osnpui: 无法发送中断信息ORA-09761: pw_destroyPorts: 服务器调用pws_stop_instance 失败ORA-09762: sNeXT_instanceName: 转换错误ORA-09763: osnmpx: 交换Mach 端口时出现发送/接收错误ORA-09764: osnmop: oracle 可执行(代码)访问错误ORA-09765: osnmop: 分叉失败ORA-09766: osnmop: 缓冲区分配失败ORA-09767: osnmfs: msg_send 的返回代码错误ORA-09768: osnmgetmsg: 无法读信息ORA-09769: osnmbr: 无法发送中断信息ORA-09770: pws_look_up: 转换失败ORA-09771: osnmwrtbrkmsg: msg_send 的返回代码错误ORA-09772: osnpmetbrkmsg: 来自主机的信息类型错误ORA-09773: osnmgetdatmsg: 来自主机的信息类型错误ORA-09774: osnmui: 无法发送中断信息ORA-09775: osnmrs: 重置协议错误ORA-09776: pws_look_up: (Oracle 帮助程序) 可执行(代码) 访问错误ORA-09777: osnpbr: 无法发送中断信息ORA-09778: snynfyport: 无法配置通知端口ORA-09779: snyGetPort: 无法分配端口ORA-09786: sllfop: 打开错误,无法打开文件ORA-09787: sllfop: 不可识别的处理选项,格式错误ORA-09788: sllfrb: 无法读文件ORA-09789: sllfsk: 无法读文件ORA-09790: sllfcf: 无法关闭文件ORA-09791: slembdf: 转换错误,无法转换错误文件名ORA-09792: sllfop: 无法分配读缓冲区ORA-09793: szguns: 用户名的长度大于缓冲区的长度ORA-09794: szrbuild: 角色名的长度大于缓冲区的长度ORA-09795: szrbuild: 无法malloc 角色结构ORA-09796: szrbuild: 无法malloc 角色名ORA-09797: 无法获得O/S MAC 权限ORA-09798: 标记比较失败ORA-09799: 文件标记检索失败ORA-09800: 进程阅读权限标记检索失败。
oracle最全面的错误疑难解决方案和总结文档

通过配置sqlnet。ora文件,可以修改oracle登录认证方式:
SQLNET。AUTHENTICATION_SERVICES=(NTS)是基于操作系统验证
SQLNET。AUTHENTICATION_SERVICES=(NONE)是基于Oracle验证
update;insert;delete;select
(
预定义角色:把常用的权限集中起来,形成角色(套餐)
比如dba connect resource三种角色
自定义角色:自己定义套餐
(
在一个数据库实例下:
当一个用户,创建好后,如果该用户创建了任意一个数据对象(表或触发器等),这时我们的DBMS就会创建一个对应的方案与该用户对应,并且该方案名字和用户名一致。
启动oraclehome92TNSlistener服务
2.database instance没有启动:services。msc或开始—〉程序—>管理工具—〉服务启动oralceserviceXXX,XXX就是你databaseSID如zhulin
3。注册表问题:
regedit。msc
进入HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1
(2)oradim–startup–sid数据库实例名
linux下:
(1)lsnrctl start(启动监听)
(2)sqlplus sys/chang_on_install as sysdba(以sysdba身份登录)
sqlplus /nolog
conn sys/chang_on_install as sysdba
EXP-00056遇到Oracle错误1455问题解决办法

一、EXP-00056遇到Oracle错误1455问题解决办法: 2016-5-10 17:01. 正在导出同义词. 正在导出视图. 正在导出存储过程. 正在导出运算符. 正在导出引用完整性约束条件. 正在导出触发器EXP-00056: 遇到ORACLE 错误1455ORA-01455: 转换列溢出整数数据类型EXP-00000: 导出终止失败解决方法:在exp 后加TRIGGERS=n,例如:exp file=d:\data\tj_data.dmp log=d:\log\tj_log.log TRIGGERS=n2、正在导出运算符. 正在导出引用完整性约束条件. 正在导出触发器. 正在导出索引类型. 正在导出位图, 功能性索引和可扩展索引. 正在导出后期表活动. 正在导出实体化视图. 正在导出快照日志EXP-00008: 遇到ORACLE 错误1455ORA-01455: 转换列溢出整数数据类型EXP-00000: 导出终止失败ORA-01455: 转换列溢出整数数据类型,Export 命令会将表的statistics 值转成成整形。
当这个statistics值超过2^31-1时,就会报这个错误。
最后在exp命令后加“INDEXES=n STATISTICS=none”这两个参数,exp就可以成功导出了。
下面是一个完整的脚本:可以同时导出tjris和tjpacs@echo offecho ================================================echo Windows环境下Oracle数据库的自动备份脚本echo 1.使用当前日期命名备份文件。
echo 2.自动删除7天前的备份。
echo ================================================set V_DATE=%date:~0,4%%date:~5,2%%date:~8,2%set V_HOUR=%time:~0,2%if "%time:~0,1%" == " " set V_HOUR=0%time:~1,1%set DATETIME=%V_DATE%%V_HOUR%%time:~3,2%%time:~6,2%::设置用户名、密码和要备份的数据库。
oracle遇到的问题及答案

oracle遇到的问题及答案问题⼀:Oracle 11G⽤EXP时,空表不能导出解决⽅法第⼀查询空表到底有多少张,也就是查询为分配分配segment的表有多少张SQL> select table_name from user_tables where NUM_ROWS=0;TABLE_NAME------------------------------DATA_BACKUPEQUIPMENTFEEDBACK_ACCESSORIESSPECIALPICTASK_THIRDTASK_THIRDBATCHTASK_THIRD_DATATASK_THIRD_FEEDBACKTESTDATA_THIRDTHIRD_ACCESSORIES已选择10⾏。
第⼆查询在当前⽤户下有总的有多少张表SQL> select count(*) FROM USER_TABLES;COUNT(*)----------32第三导出当前⽤户下的数据C:\Users\Administrator>exp lcpt/lcpt file=E:\0702bj\lcpt.dmp wner=lcpt log=E 702bj\lcpt.logExport: Release 11.2.0.1.0 - Production on 星期⼀ 7⽉ 2 10:42:07 2012 Copyright (c) 1982, 2009, Oracle and/or its affiliates. All rights reserved. 连接到: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Productio With the Partitioning, OLAP, Data Mining and Real Application Testing options 已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集即将导出指定的⽤户.... 正在导出 pre-schema 过程对象和操作. 正在导出⽤户 LCPT 的外部函数库名. 导出 PUBLIC 类型同义词. 正在导出专⽤类型同义词. 正在导出⽤户 LCPT 的对象类型定义即将导出 LCPT 的对象.... 正在导出数据库链接. 正在导出序号. 正在导出簇定义. 即将导出 LCPT 的表通过常规路径.... . 正在导出表 ACCESSORIES导出了 18 ⾏. . 正在导出表 AUTH导出了 240 ⾏. . 正在导出表 DATA_TEMP导出了 1 ⾏. . 正在导出表 FEEDBACK导出了 1 ⾏. . 正在导出表 FUNCTION导出了 112 ⾏. . 正在导出表 LIMIT导出了 1 ⾏. . 正在导出表MODULE导出了 37 ⾏. . 正在导出表 READ_ACCESSORIES导出了 2 ⾏. . 正在导出表 REGIONINFO导出了 19 ⾏. . 正在导出表 REPORT_EVENT导出了 8 ⾏. . 正在导出表 ROLE导出了 5 ⾏. . 正在导出表 ROLEAUTH导出了 606 ⾏. . 正在导出表STAFFLOG导出了 512 ⾏. . 正在导出表 STAFFROLE导出了 56 ⾏. . 正在导出表 STAFFS导出了 7 ⾏. . 正在导出表TASKINFO导出了 51 ⾏. . 正在导出表 TASK_FILIALE导出了 2 ⾏. . 正在导出表 TASK_FILIALE_FEEDBACK导出了 2 ⾏. . 正在导出表 TASK_SWARAJ_READ导出了 49 ⾏. . 正在导出表 TESTDATA导出了 407 ⾏. . 正在导出表 THIRDFACTURER导出了 3 ⾏. . 正在导出表 USESSION导出了 1 ⾏. 正在导出同义词. 正在导出视图. 正在导出存储过程. 正在导出运算符. 正在导出引⽤完整性约束条件. 正在导出触发器. 正在导出索引类型. 正在导出位图, 功能性索引和可扩展索引. 正在导出后期表活动. 正在导出实体化视图. 正在导出快照⽇志. 正在导出作业队列. 正在导出刷新组和⼦组. 正在导出维. 正在导出 post-schema 过程对象和操作. 正在导出统计信息成功终⽌导出, 没有出现警告。
oracle常见错误号

rman target/
rman>crosscheck archivelog all;
rman>crosscheck backup ;
7、删除重复的备份集和归档日志
rman>delete expired archivelog all;
rman>delete expired backup;
原因磁盘空间不足
解决方法:
1、查询表空间 把不要的表空间删了
2、把要备份的表空间的大小设置小一点 不要设置太大了
3.、将归档设置到其他目录,修改alter system set log_archive_dest = 其他路径
4、.转移或者删除闪回恢复区里的归档日志。
违反完整约束条件(orauser.FK_KNO_EVENTTYPE1)--已找到子记录
14,ORA-00936: missing expression 缺失表达式
15,ORA-00001: unique constraint (BUSHR.PK_T_DIC_BMFL) violated 违反唯一约束条件(主键值重复)
18,ORA-28001 口令已经失效
19,ORA-28000 帐户已被锁定
20,ORA-27072:ORA-19502: 磁盘空间不足 错误处理
RMAN-03002: failure of backup02:38:38
5,ORA-00904: "OBJECTID": invalid identifier 无效标识符
6,ORA-00904 invalid column name 列名无效
7,ORA-01406: fetched column value was truncated 读取的列值被截断
oracle错误报告

oracle错误报告ORA-00910:指定的长度太长,它的数据类型原因:数据类型为CHAR和RAW,指定的长度> 2000,否则,指定的长度> 4000。
动作:使用更短的长度,或者切换到数据类型允许更长的长度,例如一个VARCHAR2,LONG CHAR或LONG RAWORA-00911:无效字符原因:标识符可能无法启动比字母和数字以外的任何ASCII字符。
$#_的第一个字符后也是允许的。
通过的双引号包围的标识符可以包含除双引号以外的任何字符。
另一种引号(Q'#...#')不能使用空格,制表符或回车符作为分隔符。
对于其他情况,请参阅SQL语言参考手册。
操作:无ORA-00912:输入参数过长原因:你输入的字符串之一太长动作:缩短输入参数的长度ORA-00953:缺少或无效的索引名称原因:格式为[的索引名称。
] 预期,但不存在。
如果OIDINDEX子句,索引名称必须操作:输入适当的索引名称。
ORA-00956:缺少或无效审计选项原因: AUDIT或NOAUDIT语句包含无效的审计选项。
操作:使用有效的选项。
ORA-00960:在选择列表中不明确的列命名原因:列名的顺序逐个列表匹配多个选择列表列。
操作:在选择列表中删除重复的列命名。
ORA-00962:太多的分组依据/订单由表达式原因:该组按顺序或按列列表包含1000个以上的表达式。
动作:使用1000以下表达式组by或order-by列表中。
ORA-00964:表不在FROM列表名称原因:在选择列表中提到的表名没有在从列表中指定的。
操作:请确保该名称正确指定和匹配的名称之一的从列表中。
ORA-00965:不允许'*'列别名原因:该语句试图别名*表示在选择列表中这是不合法的。
操作:删除别名。
ORA-00972:标识符过长原因:指定超过30个字符的标识符。
动作:指定最多30个字符。
ORA-00976:指定虚列或操作这里不允许的。
oracle常见错误及代码

1、ORA-12541:TNS:没有监听器原因:没有启动监听器或者监听器损坏。
若是前者,使用命令net start OracleOraH ome10gTNSListener(名字可能有出入)即可;如果是后者,则使用“Net Configuration Assistant”工具向导之“监听程序配置”增加一个监听器即可(基本不用写任何信息,一路O K。
在添加之前可能需要把所有的监听器先删!)2、ORA-12500:TNS:监听程序无法启动专用服务器进程或ORA-12560:TNS:协议适配器错误原因:ORACLE的数据库服务没有启动。
使用命令net start ORACLESERVICEORA DB(ORADB为数据库名字)即可。
如果仍没有解决,请继续向下看。
3、如果数据库服务启动失败,则很有可能是其注册表项值损坏,最好的做法是以下两步:1)ORADIM -DELETE -SID oradb 删除数据库服务项2)ORADIM -NEW -SID oradb 新增数据库服务项注:这个过程中如果出错,就重启计算机!4、ORA-12154:TNS:能解析服务名原因:ORACLE的网络服务名没有正确配置。
请使用“Net8 Configuration Assistan t”工具向导之“本地网络服务名配置”配置TNS即可。
如果仍没有解决,请继续向下看。
5、ORA-1034 :TNS:ORACLE不可用原因:ORACLE的数据库服务正确启动,但是数据库没有打开!使用命令:1)svrmgrl 启动服务管理器2)connect internal 以internal身份登陆3)startup 打开数据库6、ORA-12560:TNS:协议适配器错误(顽固性的)原因:未知。
解决:必杀技--打开“Windows任务管理器”,杀死ORACLE.exe及ORADIM.exe进程,书写自己的ora_startup.bat,执行之!PS:1、ora_startup.bat:net start OracleOraHome81TNSListenernet start ORACLESERVICEORADBsvrmgrl 一般情况下不用,不过有时少不了它的,具体步骤见第5步。
ORACLE_错误列表

ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被拒绝ORA-00023: 会话引用进程私用内存;无法分离会话ORA-00024: 单一进程模式下不允许从多个进程注册ORA-00025: 无法分配ORA-00026: 丢失或无效的会话 IDORA-00027: 无法删去当前会话ORA-00028: 您的会话己被删去ORA-00029: 会话不是用户会话ORA-00030: 用户会话 ID 不存在。
ORA-00031: 标记要删去的会话ORA-00032: 无效的会话移植口令ORA-00033: 当前的会话具有空的移植口令ORA-00034: 无法在当前 PL/SQL 会话中ORA-00035: LICENSE_MAX_USERS 不能小于当前用户数ORA-00036: 超过递归 SQL () 级的最大值ORA-00037: 无法转换到属于不同服务器组的会话ORA-00038: 无法创建会话: 服务器组属于其它用户ORA-00050: 获取入队时操作系统出错ORA-00051: 等待资源超时ORA-00052: 超出最大入队资源数 ()ORA-00053: 超出最大入队数ORA-00054: 资源正忙,要求指定 NOWAITORA-00055: 超出 DML 锁的最大数ORA-00056: 对象 '.' 上的 DDL 锁以不兼容模式挂起ORA-00057: 超出临时表锁的最大数ORA-00058: DB_BLOCK_SIZE 必须为才可安装此数据库 (非 ) ORA-00059: 超出 DB_FILES 的最大值ORA-00060: 等待资源时检测到死锁ORA-00061: 另一个例程设置了不同的 DML_LOCKSORA-00062: 无法获得 DML 全表锁定;DML_LOCKS 为 0 ORA-00063: 超出 LOG_FILES 的最大数ORA-00064: 对象过大以至无法分配在此 O/S (,)ORA-00065: FIXED_DATE 的初始化失败ORA-00066: LOG_FILES 为但需要成为才可兼容ORA-00067: 值对参数无效;至少必须为ORA-00068: 值对参数无效,必须在和之间ORA-00069: 无法获得锁定 -- 禁用了表锁定ORA-00070: 命令无效ORA-00071: 进程号必须介于 1 和之间ORA-00072: 进程""不活动ORA-00073: 命令介于和个参数之间时使用ORA-00074: 未指定进程ORA-00075: 在此例程未找到进程 ""ORA-00076: 未找到转储ORA-00077: 转储无效ORA-00078: 无法按名称转储变量ORA-00079: 未找到变量ORA-00080: 层次指定的全局区域无效ORA-00081: 地址范围 [,) 不可读ORA-00082: 的内存大小不在有效集合 [1], [2], [4] 之内ORA-00083: 警告: 可能损坏映射的 SGAORA-00084: 全局区域必须为 PGA, SGA 或 UGAORA-00085: 当前调用不存在ORA-00086: 用户调用不存在ORA-00087: 命令无法在远程例程上执行ORA-00088: 共享服务器无法执行命令ORA-00089: ORADEBUG 命令中无效的例程号ORA-00090: 未能将内存分配给群集数据库 ORADEBUG 命令ORA-00091: LARGE_POOL_SIZE 至少必须为ORA-00092: LARGE_POOL_SIZE 必须大于 LARGE_POOL_MIN_ALLOCORA-00093: 必须介于和之间ORA-00094: 要求整数值ORA-00096: 值对参数无效,它必须来自之间ORA-00097: 使用 Oracle SQL 特性不在 SQL92 级中ORA-00099: 等待资源时发生超时,可能是 PDML 死锁所致ORA-00100: 未找到数据ORA-00101: 系统参数 DISPATCHERS 的说明无效ORA-00102: 调度程序无法使用网络协议ORA-00103: 无效的网络协议;供调度程序备用ORA-00104: 检测到死锁;全部公用服务器已锁定等待资源ORA-00105: 未配置网络协议的调度机制ORA-00106: 无法在连接到调度程序时启动/关闭数据库ORA-00107: 无法连接到 ORACLE 监听器进程ORA-00108: 无法设置调度程序以同步进行连接ORA-00111: 由于服务器数目限制在 , 所以没有启动所有服务器ORA-00112: 仅能创建多达 (最多指定) 个调度程序ORA-00113: 协议名过长ORA-00114: 缺少系统参数 SERVICE_NAMES 的值ORA-00115: 连接被拒绝;调度程序连接表已满ORA-00116: SERVICE_NAMES 名过长ORA-00117: 系统参数 SERVICE_NAMES 的值超出范围ORA-00118: 系统参数 DISPATCHERS 的值超出范围ORA-00119: 系统参数的说明无效ORA-00120: 未启用或安装调度机制ORA-00121: 在缺少 DISPATCHERS 的情况下指定了 SHARED_SERVERS ORA-00122: 无法初始化网络配置ORA-00123: 空闲公用服务器终止ORA-00124: 在缺少 MAX_SHARED_SERVERS 的情况下指定了 DISPATCHERS ORA-00125: 连接被拒绝;无效的演示文稿ORA-00126: 连接被拒绝;无效的重复ORA-00127: 调度进程不存在ORA-00128: 此命令需要调度进程名ORA-00129: 监听程序地址验证失败 ''ORA-00130: 监听程序地址 '' 无效ORA-00131: 网络协议不支持注册 ''ORA-00132: 语法错误或无法解析的网络名称 ''ORA-00150: 重复的事务处理 IDORA-00151: 无效的事务处理 IDORA-00152: 当前会话与请求的会话不匹配ORA-00153: XA 库中的内部错误ORA-00154: 事务处理监视器中的协议错误ORA-00155: 无法在全局事务处理之外执行工作ORA-00160: 全局事务处理长度超出了最大值 ()ORA-00161: 事务处理的分支长度非法 (允许的最大长度为 )ORA-00162: 外部 dbid 的长度超出了最大值 ()ORA-00163: 内部数据库名长度超出了最大值 ()ORA-00164: 在分布式事务处理中不允许独立的事务处理ORA-00165: 不允许对远程操作进行可移植分布式自治转换ORA-00200: 无法创建控制文件ORA-00201: 控制文件版本与 ORACLE 版本不兼容ORA-00202: 控制文件: ''ORA-00203: 使用错误的控制文件ORA-00204: 读控制文件时出错 (块,# 块 )ORA-00205: 标识控制文件出错,有关详情,请检查警告日志ORA-00206: 写控制文件时出错 (块,# 块 )ORA-00207: 控制文件不能用于同一数据库ORA-00208: 控制文件的名称数超出限制ORA-00209: 控制文件块大小不匹配,有关详情,请检查警告日志ORA-00210: 无法打开指定的控制文件ORA-00211: 控制文件与先前的控制文件不匹配ORA-00212: 块大小低于要求的最小大小 ( 字节)ORA-00213: 不能重新使用控制文件;原文件大小为,还需ORA-00214: 控制文件 '' 版本与文件 '' 版本不一致ORA-00215: 必须至少存在一个控制文件ORA-00216: 无法重新调整从 8.0.2 移植的控制文件大小ORA-00217: 从 9.0.1 进行移植无法重新调整控制文件的大小ORA-00218: 控制文件的块大小与 DB_BLOCK_SIZE () 不匹配ORA-00219: 要求的控制文件大小超出了允许的最大值ORA-00220: 第一个例程未安装控制文件,有关详情,请检查警告日志ORA-00221: 写入控制文件出错ORA-00222: 操作将重新使用当前已安装控制文件的名称ORA-00223: 转换文件无效或版本不正确ORA-00224: 控制文件重设大小尝试使用非法记录类型 ()ORA-00225: 控制文件的预期大小与实际大小不同ORA-00226: 备用控制文件打开时不允许进行操作ORA-00227: 控制文件中检测到损坏的块: (块,# 块 )ORA-00228: 备用控制文件名长度超出了最大长度ORA-00229: 操作不允许: 已挂起快照控制文件入队ORA-00230: 操作不允许: 无法使用快照控制文件入队ORA-00231: 快照控制文件未命名ORA-00232: 快照控制文件不存在, 已损坏或无法读取ORA-00233: 控制文件副本已损坏或无法读取ORA-00234: 标识或打开快照或复制控制文件时出错ORA-00235: 控制文件固定表因并发更新而不一致ORA-00236: 快照操作不允许: 挂上的控制文件为备份文件ORA-00237: 快照操作不允许: 控制文件新近创建ORA-00238: 操作将重用属于数据库一部分的文件名ORA-00250: 未启动存档器ORA-00251: LOG_ARCHIVE_DUPLEX_DEST 不能是与字符串相同的目的地ORA-00252: 日志在线程上为空,无法存档ORA-00253: 字符限制在以内,归档目的字符串超出此限制ORA-00254: 存档控制字符串 '' 时出错ORA-00255: 存档日志 (线程 , 序列 # ) 时出错ORA-00256: 无法翻译归档目的字符串ORA-00257: 存档器错误。
ora-07445错误总结

目的本文档主要介绍ora-07445错误相关内容,并给出了对这个错误的进一步诊断建议,文档主要基于unix系统编写,但原理通用。
文档适用范围主要为DBA处理系统的ora-07445错误时使用。
0ra-07445错误的定义当oracle服务器进程从操作系统收到一个致命的错误信息时会抛出ora-07445错误,这个错误可以被oracle后台进程或者用户进程激发。
当错误被抛出时,系统会首先写一个错误日志到alert.log文件中,然后会写跟踪文件到user_dump_dest或background_dump_dest 中;最后会将主存信息转储到core_dump_dest中。
操作系统有很多的非法操作设计,一个经常会碰到的情况就是,当一个进程访问一个非法地址(比如系统预留地址)时致命错误将会产生。
Ora-07445错误是一个非常普通的错误,可能在oracle的任何代码中产生,该错误代码更详细的描述需要进一步跟踪其跟踪文件。
Ora-07445的表现方式在不同的平台上,ora-07445可能出现的情况有所不同,两种比较经常出现的方式如下所示:实例1ORA-07445: exception encountered: core dump [run_some_SQL()+268] [SIGBUS] [Invalid address alignment] [] [] []实例2ORA-07445: exception encountered: core dump [10] [2122262800] [261978112] [] [] []实例1说明:●错误发生在函数run_some_sql()中●进程收到的信号是SIGBUS●一些其他相关信息。
实例2给定的信息相对较少●没有给出导致错误的函数名称●进程收到的信息是signal 10●一些在本次错误中无用的信息错误发生时需要搜集哪些信息1,alert.log文件,这个文件至少可以查出ora-07445错误发生前后的其他相关错误,确认init.ora文件信息也包含在里边。
oracleNomoredatatoreadfromsocket之ora-07445排查解决

oracleNomoredatatoreadfromsocket之ora-07445排查解决今天下午,原来⼀个部门的同事找过来,说有个即将上线的环境偶尔会出现 No more data to read from socket错误,版本是oracle11.2.0.1,如下:经查,这个问题原因⽐较多,有oracle⾃⼰的bug,有可能配置的问题,也有可能代码上的问题。
主要有如下:1、jdbc连接池⼤⼩问题,我们最⼩10、最⼤100,有校验有效性,此原因排除;2、有可能是内存不⾜的原因,经查看sar历史,排除此原因;3、有可能绑定变量偷窥问题,可设置_optim_peek_user_binds = false解决;对于此类问题,⾸要排查的就是oracle alert和trace,根据开发反馈的时间段,果然有很多的dump:逐步往上排查,⼀共有下列⼏类ORA-07445:ORA-07445: exception encountered: core dump [pfr_v3_tab_handler()+311] [SIGSEGV]确认的bug 10269022,Executing a PL/SQL block dynamically that returns a REF CURSOR fails with ORA-7445 [pfr_v3_tab_handler] –superceded,11.2.0.3修复ORA-07445: 出现异常错误: 核⼼转储 [ksuklms()+316]确认的bug 13322802,11.2.0.4修复ORA-07445: exception encountered: core dump [dbgrmqmqpk_query_pick_key()+2033]确认的bug 9390347,11.2.0.2修复ORA-07445: exception encountered: core dump [kocgpn2()+141] [SIGSEGV]这个错误号没有查到相应的bug记录。
oracle数据库中ora-报错原因及处理

ORA-00123 空闲公用服务器终止 ORA-00124 在缺少MAX_SHARED_SERVERS的情况下指定了DISPATCHERS ORA-00125 连接被拒绝;无效的演示文稿 ORA-00126 连接被拒绝;无效的重复 ORA-00127 调度进程不存在 ORA-00128 此命令需要调度进程名 ORA-00129 监听程序地址验证失败'' ORA-00130 监听程序地址''无效 ORA-00131 网络协议不支持注册'' ORA-00132 语法错误或无法解析的网络名称'' ORA-00150 重复的事务处理ID ORA-00151 无效的事务处理ID ORA-00152 当前会话与请求的会话不匹配 ORA-00153 XA库中的内部错误 ORA-00154 事务处理监视器中的协议错误 ORA-00155 无法在全局事务处理之外执行工作 ORA-00160 全局事务处理长度超出了最大值() ORA-00161 事务处理的分支长度非法(允许的最大长度为) ORA-00162 外部dbid的长度超出了最大值() ORA-00163 内部数据库名长度超出了最大值() ORA-00164 在分布式事务处理中不允许独立的事务处理 ORA-00165 不允许对远程操作进行可移植分布式自治转换 ORA-00200 无法创建控制文件 ORA-00201 控制文件版本与ORACLE版本不兼容 ORA-00202 控制文件:'' ORA-00203 使用错误的控制文件 ORA-00204 读控制文件时出错(块,#块) ORA-00205 标识控制文件出错,有关详情,请检查警告日志 ORA-00206 写控制文件时出错(块,#块) ORA-00207 控制文件不能用于同一数据库 ORA-00208 控制文件的名称数超出限制 ORA-00209 控制文件块大小不匹配,有关详情,请检查警告日志 ORA-00210 无法打开指定的控制文件 ORA-00211 控制文件与先前的控制文件不匹配 ORA-00212 块大小低于要求的最小大小(字节) ORA-00213 不能重新使用控制文件;原文件大小为,还需 ORA-00214 控制文件''版本与文件''版本不一致
ORA-07445

1.OS 和DB 版本Oracle Version:11.2.0.2Operation System:HP-UXItanium 11.312.Alert log中信息Tue Oct 16 22:27:31 2012Exception [type: SIGSEGV,Address not mapped to object] [ADDR:0xC00000000] [PC:0x400000000631B880,evaopn3()+384] [flags: 0x0, count: 1]Errors in file/oracle/app/oracle/diag/rdbms/wzpartdb/wzpartdb/trace/wzpartdb_j004_19591.trc (incident=56673):ORA-07445: exceptionencountered: core dump [evaopn3()+384] [SIGSEGV] [ADDR:0xC00000000][PC:0x400000000631B880] [Address not mapped to object] []Incident details in:/oracle/app/oracle/diag/rdbms/wzpartdb/wzpartdb/incident/incdir_56673/wzpartdb_j004_19591_i56673.trcUse ADRCI or Support Workbench to packagethe incident.See Note 411.1 at My Oracle Support forerror and packaging details.Tue Oct 16 22:27:56 2012Dumping diagnostic data indirectory=[cdmp_20121016222756], requested by (instance=1, osid=19591 (J004)),summary=[incident=56673].Tue Oct 16 22:27:58 2012Sweep [inc][56673]: completedSweep [inc2][56673]: completed3.问题定位与ORA-7445 相关的错误多与bug相关,一般我们需要关注第一个参数的类型,这里是evaopn3。
EXP-00008遇到ORACLE错误1455

EXP-00008遇到ORACLE错误1455
EXP-00008 遇到 ORACLE 错误 1455
一、在东传备份数据库时报如下错误:
EXP-00008 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型
二、错误分析
在网上查了查都是:ORA-01455: 转换列溢出整数数据类型,Export命令会将表的statistics 值转成成整形。
当这个statistics值超过2^31-1时,就会报这个错误。
三、处理办法
1.最后在exp命令后加“INDEXES=n STATISTICS=none”这
两个参数就可以成功导出了
2.如果是临时表可以直接在后台将这个表删除在导出,对数
据没有影响,如“. . 正在导出表
T_T_173********_1426416361301
EXP-00008: 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型
正在导出表 T_T_173********_1426416365419
EXP-00008: 遇到 ORACLE 错误 1455
ORA-01455: 转换列溢出整数数据类型”
可以将表T_T_173********_1426416361301、
T_T_173********_1426416365419。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目的本文档主要介绍ora-07445错误相关内容,并给出了对这个错误的进一步诊断建议,文档主要基于unix系统编写,但原理通用。
文档适用范围主要为DBA处理系统的ora-07445错误时使用。
0ra-07445错误的定义当oracle服务器进程从操作系统收到一个致命的错误信息时会抛出ora-07445错误,这个错误可以被oracle后台进程或者用户进程激发。
当错误被抛出时,系统会首先写一个错误日志到alert.log文件中,然后会写跟踪文件到user_dump_dest或background_dump_dest 中;最后会将主存信息转储到core_dump_dest中。
操作系统有很多的非法操作设计,一个经常会碰到的情况就是,当一个进程访问一个非法地址(比如系统预留地址)时致命错误将会产生。
Ora-07445错误是一个非常普通的错误,可能在oracle的任何代码中产生,该错误代码更详细的描述需要进一步跟踪其跟踪文件。
Ora-07445的表现方式在不同的平台上,ora-07445可能出现的情况有所不同,两种比较经常出现的方式如下所示:实例1ORA-07445: exception encountered: core dump[run_some_SQL()+268] [SIGBUS] [Invalid address alignment] [] [] []实例2ORA-07445: exception encountered: core dump [10] [2122262800] [261978112] [] [] []实例1说明:错误发生在函数run_some_sql()中进程收到的信号是SIGBUS一些其他相关信息。
实例2给定的信息相对较少没有给出导致错误的函数名称进程收到的信息是signal 10一些在本次错误中无用的信息错误发生时需要搜集哪些信息1,alert.log文件,这个文件至少可以查出ora-07445错误发生前后的其他相关错误,确认init.ora文件信息也包含在里边。
2,自实例上次启动以来所有的ora-07445和ora-00600错误及其跟踪文件。
Trace file文件中信息的相关说明*** 2002-05-08 23:35:18.224 <---timestamp*** SESSION ID:(194.14075) 2002-05-08 23:35:18.202Exception signal: 10 (SIGBUS), code: 1 (Invalid address alignment),addr: 0x41e7, PC: kjrfnd()+44*** 2002-05-08 23:35:19.404ksedmp: internal or fatal errorORA-07445: exception encountered: core dump [kjrfnd()+44] [SIGBUS] [Invalidaddress alignment] [16871] [] [] <----the errrorCurrent SQL statement for this session: <---the current SQL statementDELETE FROM MY_TABLE WHERE COL1 < :b1----- PL/SQL Call Stack -----object line objecthandle number namee560c680 35 anonymous blocke560c680 290 anonymous block----- Call Stack Trace ----- <----Stack trace starts herecalling call entry argument values in hexlocation type point (? means dubious value)-------------------- -------- -------------------- ----------------------------ksedmp()+168 CALL ksedst()+0 540 ? 0 ? FFBE4F98 ?FFBE4A3C ? FFBE4A20 ? 0 ?ssexhd()+380 CALL ksedmp()+0 3 ? 0 ?1 ? FFBE56B8 ? 1 ?6 ?sigacthandler()+40 PTR_CALL 00000000 A ? FFBE5F10 ? 19FE000 ?19FE000 ? 0 ? 0 ?kjrfnd()+44 PTR_CALL 00000000 A ? FFBE5F10 ? FFBE5C58 ?kjrref()+176 CALL kjrfnd()+0 4177 ? F6A7F020 ? 0 ? 41DF ?kjuocl()+732 CALL kjrref()+0 FFBE63AC ? 19FA400 ?kjusuc()+1260 CALL kjuocl()+0 FFBE6218 ? EB5FB9A8 ?EB5FB9A8 ? 5 ? 5 ? 0 ?ksipget()+832 CALL kjusuc()+019FA400 ? FFBE63AC ? 0 ?E2A2ED40 ? 19FA400 ? 8 ?ksqcmi()+3356 CALL ksipget()+0 10020 ?FFBE6648 ? EE15430C ?0 ? 0 ? 0 ?ksqgtl()+944 CALL ksqcmi()+0FFBE65A8 ? 1 ? EDEB4C90 ?EE1542D4 ? 1 ? 0 ?<... lots of stuff deleted here ...>sou2o()+20 CALL opidrv()+0 3C ?FFBEF784 ? 19F8000 ?2F6C6F67 ? 0 ? 0 ?main()+160 CALL sou2o()+0FFBEFA80 ? 3C ? 4 ?FFBEFA70 ? 1746CF4 ?1A06318 ?_start()+220 CALL main()+0 0? FFBEFC2C ? 1A1D478 ?19F8000 ? 0 ? 0 ?<----Stack trace ends here----- Argument/Register Address Dump -----重现错误如果客户可以随意的重现ora-07445错误,那么诊断并解决问题的时间将会被缩短。
重现错误的第一步当然是找出造成错误的current sql。
文档Note 154170.1中主要描述了怎么查找当前错误的执行语句。
但我们需要注意的是,当前问题可能是由于前面几个相关的其他语句执行时的上下文环境决定是否能出问题,所以有可能找到当前语句但无法重现问题。
在找到系统出错时执行的语句后我们需要确认下面的问题:是不是只有在当前参数时系统才会报错是否在每天的固定时间点出错出错跟哪些系统操作有主要关联,比如数据库的备份或者其他高消耗操作是在特定的应用程序和用户下出错还是所有的程序和用户都出错第一次报错是什么时间,当时对系统做了什么改变系统出错时有没有伴随其他的错误产生如何找出错误ora-07445发生时系统执行的语句在trace file中查找错误出现时的语句主要分两个步骤:首先找到错误发生时的执行语句,然后需要找到语句中绑定变量的值。
Step 1:Find the SQL在跟踪文件中查找字符串“Current cursor”(一般在cursor dump段的起始部分),使用current cursor后面的数字定位出错时系统的执行语句。
如果找到的这个数字为0说明没有dump出有效的执行语句。
如果找到的这个数字n不为0,接着往下查找,定位到字符串“cursor n”其中n为刚找到的数字。
从10.2版本后,你可能需要定位到字符串“cursor #n”,这里cursor name后面跟随的语句就是我们需要的sql。
另外我们也可以通过查找字符串“Current SQL statement for this session”来定位我们需要查找的sql语句,通常情况下,这个语句出现在trace file文件的开始部分。
如果定位到的sql语句中引用了变量(:a1…)那么我们需要通过下面步骤2找出绑定的变量值。
Step 2:find values of the bind variables 如果定位得到的sql语句中出现了绑定变量,那么我们将会在cursor name后面发现”bind *”之类的字符串,其中×为0到n-1的值,n为sql语句中绑定变量的个数。
对每个绑定变量都有一系列的属性说明列表,下面简单描述列表后面的属性。
Dty : databype 1 varchar2 or nvarchar22 number8 long11 rowid12 date23 raw24 long raw96 char112 clob or nclob113 blob114 bfileMxl: the maximum lenthScl: the scale(for number columns)Pre: the precision(for number columns)Value: 绑定变量的值通过解析上面的内容,你可以得到绑定变量的类型及其数据值,也有一些情况(非常少),你在bind *后面找不到values字节,那么我们就不能通过这种方式得到绑定变量的值。
ExamplesIn the following we will work through some examples of how to extract the SQL statement from trace files.IMPORTANT: Replacing bind variables with literals can result in the optimizer choosing a different query path and thus the problem may not reproduce!Example 1:You should now be able to find the datatype of the bind variable (including length, scale, and precision if applicable) and the value. The cursor dump starts with:******************** Cursor Dump ************************Current cursor: 2, pgadep: 1Cursor Dump:----------------------------------------so we are looking for cursor 2:----------------------------------------Cursor 2 (20139ad0): CURFETCH curiob: 2013bca4curflg: 7 curpar: 20139ab0curusr: 0 curses 587a250ccursor name: select text from view$ where rowid=:1child pin: 50a5b650, child lock: 50a5a628,parent lock: 50a5a844xscflg: 20141466, parent handle: 4f348490, xscfl2: 400nxt: 2.0x0000006c nxt: 1.0x000001d8Cursorframe allocation dump:frm: -------- Comment -------- Size Seg Offbhp size: 52/560bind 0: dty=11 mxl=16(16) mal=00scl=00 pre=00 oacflg=18 oacfl2=1 size=16offset=0bfp=2013e9f4 bln=16 avl=16 flg=05value=0000138C.0046.0004The current SQL is:select text from view$ where rowid=:1and the bind variable translates into::1 ~ bind 0 - ROWID (dty=11), value = 0000138C.0046.0004so we can eg. reconstruct the original SQL statement as:SQL> variable a1 varchar2(20)SQL> exec :a1 := '0000138C.0046.0004';SQL> select text from view$ where rowid=:a1;Note that we construct the statement using a SQL*Plus bind variable in order to prevent the optimizer from choosing a different plan (not that it would make any difference for this particular example).Example 2:The cursor dump starts with:******************** Cursor Dump ************************ Current cursor: 11, pgadep: 1Cursor Dump:----------------------------------------ie. we should look for cursor 11:----------------------------------------Cursor 11 (202cb9f0): CURBOUND curiob: 202f8b04curflg: dd curpar:0 curusr: 0 curses 30047c7ccursor name: SELECT LOCKID FROM DBMS_LOCK_ALLOCATED WHERE NAME =:b1 FOR UPDATEchild pin:0, child lock: 300dc9b4, parent lock: 301730b8xscflg: 1151421, parent handle: 3025b4dcbind 0: dty=1 mxl=32(00) mal=00 scl=00 pre=00 oacflg=01No bind buffers allocated----------------------------------------The current SQL statement is then:SELECT LOCKID FROM DBMS_LOCK_ALLOCATED WHERE NAME = :b1 FOR UPDATEThe bind variable :b1 is of type VARCHAR2(32) (dty=1, mxl=32), but no value has been assigned to it at the time of the dump ("No bind buffers allocated").Example 3:******************** Cursor Dump ************************ Current cursor: 2, pgadep: 0Cursor Dump:----------------------------------------...----------------------------------------Cursor 2 (20140444): CURNULL curiob: 0curflg: 44 curpar: 0 curusr: 0 curses 701dc94c----------------------------------------In this case there is no SQL being executed at the time of the dump. Example 4:******************** Cursor Dump ************************ Current cursor: 1, pgadep: 0pgactx: ccf361c0ctxcbk: 0 ctxqbc: 0 ctxrws: 0Cursor Dump:----------------------------------------Cursor 1 (400d9478): CURBOUND curiob:400e43d8curflg: 4c curpar: 0 curusr: 0 curses d5348f80cursor name: BEGINmyparser.convert('/tmp','workflow000_2.log',2);END;child pin: d14a4d70, child lock: d1589968, parent lock:d14c64a0xscflg: 100064, parent handle: d083f1c0, xscfl2: 4040408 nxt: 1.0x000000a8Cursor frame allocation dump:frm: -------- Comment -------- Size Seg Off----------------------------------------No binds included, so the SQL statement is the PL/SQL block: BEGIN myparser.convert('/tmp','workflow000_2.log',2); END;。