英文解析:resource busy and acquire with NOWAIT specified
oracle在启动时和启动过程中经常会出现这样那样的错误,简单记录下碰到过的问题,方便备用。
1.1 异常处理概念 1.1.1 预定义的异常处理 1.1.2 非预定义的异常处理 1.1.3 用户自定义的异常处理 1.1.4 用户定义的异常处理 1.2 异常错误传播 1.2.1 在执行部分引发异常错误 1.2.2 在声明部分引发异常错误 1.3 异常错误处理编程 1.4 在 PL/SQL 中使用 SQLCODE, SQLERRM异常处理函数 即使是写得最好的PL/SQL程序也会遇到错误或未预料到的事件。一个优秀的程序都应该能够正确处理各种出错情况,并尽可能从错误中恢复。任何ORACLE错误(报告为
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
以下的文章主要介绍的是Oracle DBA面试题,我们一共列举的是23道相关的面试题,主要是以一问一答的方式,下面就是文章的具体内容的详细分析,望你浏览之后会对Oracle DBA面试题的模式有更好的理解。
同事问了个 MySQL 的问题,现象上确实诡异。大致意思是 SELECT 表的数据,WHERE 条件是 "a=0",其中 a 字段是 VARCHAR 类型,该字段存在 NULL 以及包含字符的记录,但是并无 "0" 的记录,然后执行 SQL 返回的记录恰恰就是所有包含字符的记录。
异常(EXCEPTION)处理是用来处理正常执行过程中未预料到的事件,包括程序块的异常处理、预定义的错误和自定义错误。如果PL/SQL程序块一旦产生异常,而程序并没有指出如何处理,那么程序就会自动终止运行。
最近同事报料,数据库无法执行一些关于数据字典的查询。即使是查询dba_users都会出现错误。从错误日志来看,全部是数据字典的一些错误信息,而用户数据还是ok的。Google了一下,看了看metalink,需要重建数据字典。那就执行catalog.sql吧。晕,竟然连执行这个SQL语句都报错!数据没有备份呢,汗!!! 如果你也是无法成功执行catalog.sql,接着往下看。
运维优化 本文详细讲解了如何对Oracle数据库进行运维,从各个方面来说明了如何去运维。
数据库在使用DataPump导出时碰到了ORA-39125与ORA-04063。完整的ORA-39125提示是Worker unexpected fatal error in KUPW$WORKER.UNLOAD_METADATA while calling DBMS_METADATA.FETCH_XML_CLOB [OBJECT_GRANT:"GX_ADMIN"],在使用包DBMS_METADATA.FETCH_XML_CLOB时碰到错误。下面是对这个错误的解决过程。
当一个DML语句运行的时候,如果遇到了错误,那么这条语句会进行回滚,就好像没有执行过。对于一个大的DML语句而言,如果个别数据错误而导致整个语句的回滚,那么会浪费很多的资源和运行时间。所以,从Oracle 10g开始Oracle支持记录DML语句的错误,而允许语句自动继续执行。这个功能可以使用DBMS_ERRLOG包实现。
Oracle数据库是广泛使用的关系型数据库管理系统,而SQLPlus是Oracle提供的一种交互式命令行工具,用于执行SQL语句。然而,当在SQLPlus中执行SQL语句时,如果SQL语句中包含中文字符,可能会出现乱码问题,甚至导致错误。本文将介绍如何解决在Oracle SQL*Plus中执行SQL语句时出现中文乱码和报错的问题。
u 数据库的表空间大小,是否有表空间快满了,表空间增长是否过快(系统表空间是否增长过快)。
真正的原因是: 在mybatis 中sql结尾处多了一个" ; " 去掉就可以了。
最近在使用swingbench的时候碰到了ORA-01157故障,下面是其具体描述与解决。
真正的原因是: 在mybatis 中sql结尾处多了一个” ; ” 去掉就可以了。
杨廷琨(yangtingkun) 云和恩墨 CTO 高级咨询顾问,Oracle ACE总监,ITPUB Oracle数据库管理版版主 在一个测试数据库上创建表空间出现了ORA-569错误。由于环境比较复杂,首先简单描述一下数据库环境信息。这个测试环境安装的是Oracle 11g for Solaris 10 sparc 64bit的RAC环境,使用ASM作为共享数据文件的存储机制。 在RAC环境的一个节点上还建立了一个单实例的数据库,并把这个数据库的数据文件也放到了ASM实例上。 在这个单实例数据库上
当前session处在活动状态,如果此时ORACLE的package在另外一个session中被重新编译,那么当前session再执行其中的procedure就会报包失效,异常STACK见下。
C:\Documents and Settings\noah>exp system/pd0000@orcl file=d:\data.dmp wner=dev log=d:\log.log
今天有客户向我咨询:数据库由ZHS16GBK字符集修改为AL32UTF8字符集,发现中文的数据中小部分出现乱码,客户认为AL32UTF8明明可以支持更多的文字,不应该出现这样的情况才对。 从现象看,基本可以确认故障是字符集转换导致的,Oracle也强烈不建议做这种字符集转换的操作,幸好该客户的操作只是在一个测试环境中操作的。不过,之前也一直有个误区,我们都知道AL32UTF8是可以支持多国语言的字符集,对于中文字节存储占用空间比ZHS16GBK多,然后第一反应就认为AL32UTF8应该是ZHS16GBK的
杨廷琨(yangtingkun) 云和恩墨 CTO 高级咨询顾问,Oracle ACE总监,ITPUB Oracle数据库管理版版主 这是一则生产环境的真实维护过程,由于RAC的测试环境空间不足,因此规划给ASM扩展空间,然而在给ASM添加新的磁盘空间时又出现了故障,这类问题在很多用户的生产环境中可能也会遇到。 空间扩展的操作步骤如下: 在RAC环境的节点1上启动了DBCA工具来管理ASM设备; 由于新增的裸设备在ASM图形界面下看不到; 通过root用户将裸设备的访问权限授予了操作系统上的Oracl
近来重装了计算机(双系统windows10+ubuntu16),顺带着也把software升级一下,结果安装最新的oracle12c,出现了一系列问题,我不喜欢折腾,曾经L说过我,喜欢啥折腾,浪费时间,金钱可以解决的,就让自己轻松一下,这次安装oracle12c后,登录名和口令怎么也不对,有折腾了一上午。 oracle12c 安装 使用可以看看这篇文章。 Oracle 12c Windows安装、介绍及简单使用(图文) oracle12c,感觉变化了好多,首先记得打开一下oracle服务,在计算机,
python里的函数和数学意义上的函数并没有太大差别。 调用函数 python内置了很多有用的函数,我们可以直接调用。 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。 调用函数的时候,如果传入的参数数量不对,会报TypeError的错误,并且Python会明确地告诉你:abs()有且仅有1个参数,但给出了两个。 如果传入的参数数量是对的,但参数类型不能被函数所接受,也会报TypeError的错误,并且给出错误信息:str是错误的参数类型。 而max函数max()可以接收任
要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数。
今天下午的时候得到反馈,说开发在导入一个dump的时候报了错误,他们尝试连接数据库,发现连接都有问题,让我们赶紧看看。 这是一个测试环境的库,在服务器上同时还跑着十多个数据库不同应用的数据库实例。 > sqlplus / as sysdba SQL*Plus: Release 11.2.0.3.0 Production on Mon May 25 14:28:50 2015 Copyright (c) 1982, 2011, Oracle. All rights reserved. ERROR: ORA-
Oracle 12c之前的数据库都是非CDB,从Oracle 12.1.0.2开始,不推荐使用非CDB体系结构,而是使用多租户架构。在多租户架构中,使用单个可插拔数据库(PDB)(也称为单租户或lone-PDB),可以不必支付多租户选项相关费用。 在标准版中,你不能无意中创建其他PDB;但在企业版中,你可能需要购买一些额外的许可证。 本文给出了一个例子,说明如何避免在Lone-PDB实例中创建多个用户定义的PDB。
--==========================================
本文作为概要,包括如何定位SQL问题、SQL相关的问题类别以及诊断SQL性能问题需要的相关信息。
你是否留意过数据库中有一个奇怪的函数 TBL$OR$IDX$PART$NUM ,你是否留意过很多场景下都出现过它的身影?
有多种方式可以将文本文件的数据导入到数据库中,例如,利用PLSQL Developer软件进行复制粘贴,利用外部表,利用SQL*Loader等方式。至于EXCEL中的数据可以另存为csv文件(csv文件其实是逗号分隔的文本文件),然后导入到数据库中。
某物化视图在增量刷新的时候报错ora-00920,尝试全量刷新的时候,报错ora-00904。
结果出错了。经过查找资料,发现11g新增了个参数MEMORY_TARGET,其大小等于PGA+SGA,当sga的大小大于MEMORY_TARGET就会报如上错误。
ORA-04030报错形如“ORA-04030 'out of process memory when trying to allocate %s bytes (%s,%s)'”,该错误意味着Oracle Server进程无法从操作系统分配更多内存。该内存由PGA组成,其内容取决于服务器配置。对于专用的服务器进程,内存包含堆栈以及用于保存用户会话数据、游标信息和排序区的UGA。在多线程服务器(共享服务器)中,UGA被分配在SGA中,所以在这种配置下UGA不是造成ORA-04030错误的原因。因此,ORA-04030表示进程需要更多内存(堆栈、UGA或PGA)来执行其任务。
作者介绍 崔华 网名 dbsnake Oracle ACE Director,ACOUG 核心专家 UTL_FILE包可以用来读写操作系统上的文本文件,UTL_FILE提供了在客户端(FORM等等
继昨天一个SQL语句导致的ORA-00600错误之后,我给出了背景和初步的分析结果,今天来给出我的结论,当然说明原因不是我的本意,还有反思。 首先语句类似这样的形式: MERGE INTO (SELECT * FROM TEST_SERVER_LOG WHERE BUY_TIME>=TO_DATE(:1 ,'YYYY-MM-DD HH24:MI:SS') AND BUY_TIME<to_date(:2 ,'yyyy-mm-dd="" hh2
解答:重建控制文件,用带backup control file 子句的recover命令恢复数据库。
ORA-02020 Error when Using Database Links in a Lookup (文档 ID 463403.1)
我对触发器,了解非常有限,只能试着来,乍一看判断空,即NULL,是不能用“=”,需要使用IS NULL/IS NOT NULL,改了一下,执行报错,
上周应用上线,有一个数据库脚本,包含改字段长度等操作,执行过程中,现象就是有些改字段成功了,有些执行出错,报了ORA-00054的错误。了解一下原理,就能对这个错误,有比较深入的理解了。
要了一个dmp文件想导入数据库,也不知道对端导出格式、数据库版本、导出方式,只是提供了一份导出日志和导出dmp文件,盲人摸象似的尝试一下如何导入吧,很久不用Oracle语法都是百度来的,先尝试imp,再尝试impdb,再解决N多报错,然后问题就解决了,虽不完美,但结果还算满意。
Oracle 12c中的PDB一下子让数据文件的格式复杂了一些,所以Data Guard就很有必要了,一旦出现问题,受损失的数据库是全局的。没想到在搭建Data Guard的时候还是碰到了一些小问题。 问题源自于一次PDB创建的时候,早些时候我在搭建好Data Guard后,主备库的日志应用都没有问题,过了几天,根据需求需要再添加一个PDB,导入一些数据供应用使用。按照要求创建了数据文件然后导入数据,但是查看备库的状态发现MRP异常停止了。 DG Broker检测的状态如下: DGMGRL> show co
今天有个同事问我一个问题,他说运行shell脚本的时候抛出了ORA 错误,但是对于错误的原因没有思路,想让我帮他看看。 我查看了下,脚本的结构比较清晰。 脚本是有一个shell脚本,一个sql文件组成,shell脚本作为基本的流程控制,sql文件中是pl/sql脚本。 大体明白了shell脚本的部分,没有做过多的追究,就开始了解pl/sql脚本的内容了。 首先在pl/sql中声明了大量的procedure,类似shell中的function,大概有10多个procedure 然后在最后使用一个类似main函
原因:端口号冲突 解决: (1)方法一 使用命令netstat -ano找到占据端口8005的进程号,再用命令taskkill /pid xxxx杀死对应进程xxxx。 (2)方法二 打开任务管理器,看看开发工具eclipse下是否启动了两个相同进程,直接结束进程,重启eclipse和项目。 (3)方法三 修改Tomcat配置文件server.xml中的端口号。 修改8080端口为其它端口号。
SQL*Plus: Release 11.2.0.1.0 Production on Mon Jan 5 18:49:31 2015 Copyright (c) 1982, 2009, Oracle. All rights reserved. ERROR: ORA-01034: ORACLE not available ORA-27101: shared memory realm does not exist Linux-x86_64 Error: 2: No such file or directory Process ID: 0 Session ID: 0 Serial number: 0
Oracle中的参数文件是一个包含一系列参数以及参数对应值的操作系统文件。它们是在数据库实例启动时候加载的,决定了数据库的物理 结构、内存、数据库的限制及系统大量的默认值、数据库的各种物理属性、指定数据库控制文件名和路径等信息,是进行数据库设计和性能调优的重要文件。可以分为两种类型:
JDBC的基本使用流程: 1 导入jar包: 导入ojdbc6.jar,在项目上右键 builder path–>add to builder path. 2 加载驱动 Class.forName(“oracle.jdbc.driver.OracleDriver”); 作用:初始化加载jdbc类到java虚拟机. 注意: ojdbc6.jar使用此包该句可以省略不写. 3 获取数据库连接对象 Connection conn =DriverMananger.getConnection(“url”,“username”,“password”); 参数含义: url:表示要连接的数据地址 username:数据库的用户名 password:数据库的密码 作用: 连接到指定的数据库并返回连接对象. 4 创建sql命令对象 Statement stmt=conn.createStatement(); 作用: 编译,发送SQL命令 5 创建sql命令 String sql=“insert into dept values(92,’’,’’)”; 6 执行sql命令: 新增sql命令: int i=stmt.executeUpdate(sql); 返回值: 返回值如果小于0,表示未执行成功 返回值如果大于0,表示成功修改的数据量. 7 关闭资源
从Oracle客户端连接到服务器,除了使用静态注册方式之外,9i后续的版本支持动态注册服务,同时可以将服务注册到非默认的端口。将服务注册到非默认端口可以提高数据库系统的安全性。
Oracle数据恢复顾问用于当数据发生错误或故障时,进行自动收集数据故障信息,并生成恢复脚本,用于完成数据恢复。数据恢复顾问也可以主动检查故障。 在这种模式下,它可以在数据库进程发现数据损坏并发出错误之前进行潜在的检测并分析数据故障。数据故障可能非常严重。 例如,如果您当前的日志文件丢失,则无法启动你的数据库。 一些数据故障(如数据文件中的块损坏)不是灾难性的他们不会将数据库关闭或阻止您启动Oracle实例。 数据恢复顾问处理这两种情况:当您无法启动数据库时(因为某些情况)所需的数据库文件丢失,不一致或损坏)以及文件损坏时的数据库文件在运行时发现。
领取专属 10元无门槛券
手把手带您无忧上云