oracle里的job和schedule有什么区别

oracle里的job和schedule有什么区别,第1张

10g

中新推出的SCHEDULER可能确实会让很多初接触的朋友感觉晕头晕脑,相比之前的jobs,SCHEDULER中新增的概念太多。比如说jobs,仍

然可以理解成之前版本中的jobs,不过功能更加强大(注意10g中也仍然可以使用普通jobs,这是废话,相信看本篇文章的朋友目前应该还是这样在

用),比如说program,指的是运行的程序(把要做什么单提出来了),比如说schedule,我将其翻译为调度(job我翻译为任务),定义执行的

频率或者说周期。

3.1 创建和管理Schedule s

Schedule ,中文直译的话应该理解成调度,从名字来看,它是一个逻辑实体(逻辑,还实体,好矛盾),就是说当创建了schedule之后,数据库中就肯定存在这一对象,只不过这一对象是用来描述job的执行周期。

创建schedule可以通过DBMS_SCHEDULER.CREATE_SCHEDULE过程,该过程支持的参数如下:

SQL>

desc dbms_scheduler.create_scheduleParameter

Type Mode Default? ---------------

------------------------ ---- -------- SCHEDULE_NAME

VARCHAR2 INSTART_DATE TIMESTAMP WITH

TIME ZONE IN YREPEAT_INTERVAL VARCHAR2

INEND_DATETIMESTAMP WITH TIME ZONE IN Y

COMMENTSVARCHAR2 IN Y

各参数分别代表含意如下:

SCHEDULE_NAME :指定schedule名称,注意名称不能重复。

START_DATE :指定该调度的开始时间,可为空,当为空时表示该调度暂不起用。

REPEAT_INTERVAL :指定调度的执行频率或周期。

END_DATE :指定调度的结束时间,可为空,为空时就表示该调度将一直进行。

COMMENTS :注释信息。

 

 这其中,比较有技术含量的是REPEAT_INTERVAL参数,对于这个参数大家应该不会太陌生,因为前面介绍Jobs,也曾经提到过同名的参

数,Schedules中的REPEAT_INTERVAL参数和Jobs中的REPEAT_INTERVAL参数功能完全相同,甚至参数格式也一模一

样。

REPEAT_INTERVAL 参数的语法结构要复杂的多。其中最重要的是FREQ和INTERVAL两个关键字。

FREQ 关键字用来指定间隔的时间周期,可选参数有:YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, and SECONDLY,分别表示年、月、周、日、时、分、秒等单位。

INTERVAL 关键字用来指定间隔的频繁,可指定的值的范围从1-99。

比如说,当指定REPEAT_INTERVAL=>'FREQ=DAILYINTERVAL=1'就表示每天执行一次,如果将INTERVAL改为7就表示每7天执行一次,效果等同于FREQ=WEEKLYINTERVAL=1。

下面,创建一个schedule,指定调度为每周一次的频率,执行脚本如下:

SQL>

begin 2 DBMS_SCHEDULER.CREATE_SCHEDULE ( 3schedule_name

=>'my_first_schedule', 4start_date=>SYSDATE, 5

repeat_interval =>'FREQ=WEEKLYINTERVAL=1', 6

comments =>'Every 1 weeks') 7 END 8 /PL/SQL procedure

successfully completed.

查询当前已经创建的schedules,可以通过*_SCHEDULER_SCHEDULES视图(含DBA_,ALL_,USER_),例如,查看当前用户拥有的schedules,执行语句如下:

SQL>

select schedule_name,repeat_interval from

user_scheduler_schedulesSCHEDULE_NAME

REPEAT_INTERVAL------------------------------

------------------------------MY_FIRST_SCHEDULE

FREQ=WEEKLYINTERVAL=1

如果要修改schedule属性的话,也是使用

DBMS_SCHEDULER.SET_ATTRIBUTE过程,该过程的调用方式前面已经多次演示过,这里就不再重复举例了,仅说明一点,对于

schedule来说,能够修改的属性包括:REPEAT_INTERVAL、COMMENTS、END_DATE、START_DATE以及

EVENT_SPEC。

至于删除schedule,再简单不过,执行DBMS_SCHEDULER.DROP_SCHEDULE过程即可,例如:

SQL>EXEC DBMS_SCHEDULER.DROP_SCHEDULE('MY_FIRST_SCHEDULE')PL/SQL procedure successfully completed.

1、 概述

在很多企业应用中有时需要在特定的时间运行一段代码,比如银行需要在晚上系统相对空闲的时间

内进行日结的对帐,那么到了规定时间系统需要触发对帐服务运行对帐程序,现在EJB定时器服务能解决这个问题,它是一个可靠的、事务性的、提供容器的服

务,允许Bean提供者注册定时反馈的企业Beans,它可以在特定时刻发生,或在某段时间之后发生,或以一定时间间隔重复发生。由于这个服务是可靠的,

容器破坏的时候定时依然有效,企业Beans的激活与失效、装载与保存周期都由定时器注册。定时器服务由EJB容器实现,定时器服务首链可以通过

EJBContext接口新增的getTimerService()方法来访问,它返回实现TimerService接口的对象:这个接口允许创建不同的

定时器来支持在不同时间、不同时间间隔、不同时间周期时发生的定时反馈。使用定时器服务的企业Beans的Bean类必须实现

javax.ejb.TimedObject接口。在EJB2.1中,只有无序腔卖的会话Beans和实体Beans可以注册为定时器服务。这个功能在以后的

规范中可能会扩展到其它类型的Bean。

定时器服务适合长时间的业务处理模型,但并不适合用于实时的事件模型。

在 WebSphere Application Server

6中,EJB 定时服务将 EJB

计时器作为新的调度程序服务任务实施。缺省情况下,内部调度程序实例用于管者圆孙理那些任务,定时任务存放在与服务器进程关联的 Cloudscape

数据库中。在集群环境中,任务必须存放在企业关系型数据库中。下面我们以DB2为例讲述怎样在集群环境中配置定时服务。

回页首

2、 创建用于定时服务的数据库

个定时服务程序都需要一个数据库,以用于存储它的持久信息。数据库及其位置应当由应用程序开发者和服务器管理员决定。

定时服务程序使用这个数据库来存储任务,然后运行这些任务。定时服务程序性能极大地依赖于数据库的性能。如果需要每秒执行更多任务,您可以在更大型的系统

中运行定时服务程序守护程序,或通过使用多个定时服务程序对任务或分区使用的会话 bean

使用集群。但是,定时服务程序数据库最终会达到饱和状态,此时您就需要一个更大型或更优异的数据库系统。

当您在每个定时服务程序配置中指定唯一的表前缀值时,多个定时服务程序可以共享一个数据库。这一共享可以降低定时服务程序数据库的管理成本。

TIPS:Oracle

XA 数据库的限制,Oracle XA 不允许在全局事务环境中执行所需的模式 *** 作。本地事务是不受支持的。如果您的调度程序使用 Oracle

XA 数据源,您可以将调度程序配置临时更改为使用一个非 XA Oracle 数据源,或者使用提供的 DDL

文件手工创建表。如果使用管理控制台为配置为使用 Oracle XA 数据源的调度程序创建或删除调度程序表,您将接收到一条

SchedulerDataStoreException 错误消息并且 *** 作将失败。

下面我们将以DB2为例讲述定时服务:

在机器hostdb上安装DB2后,打开 DB2 命令行窗口。

保您拥有数据库系统的管理员权限,验证此数据库确实支持 Unicode(UTF-8)。 否则,此数据库无法存储 Java

代码中可以处理的所有字符,当客户机使用了不兼容的代码页时,这将导致代码页转换问题。要避免死锁,请确保将 DB2

隔离级别设置为"读稳定性"。如果需要,请输入命令 :

db2set DB2_RR_TO_RS=YES

然后重新启动 DB2 实例以激活这一更改。在 DB2 命令行处理程序中输入以下命令使用示例名 timerdb 创建数据库:

db2 CREATE DATABASE scheddb USING CODESET UTF-8 TERRITORY en-us

即可创建名为 timerdb 的 DB2 数据库。

现已为定时服务创建了 DB2 数据库。

回页首

3、 创建定时服务的表空间和表

在WAS6的安装目录下,有一个名为scheduler的目录。下面包含WAS容器用来管理定时服务的各种数据库SQL定义。

对应于DB2的SQL定义文件名为createSchemaDB2.ddl和createTablespaceDB2.ddl,修改这两个文件选择你所要新建的表空间名和你所要的模式名称。这两个文件大致内容如下:

createTablespaceDB2.ddl

CREATE TABLESPACE @SCHED_TABLESPACE@ MANAGED BY SYSTEM USING

( '@location@\@SCHED_TABLESPACE@' )

可以修改表空间名称,这个文件也可不做修改。然后修改createSchemaDB2.ddl

修改后的的结果可以去掉原来的模式名称,那么新建用户表的时候将使用缺省连接数据库的用户的模式名。

CREATE TABLE "TASK" ("TASKID" BIGINT NOT NULL ,

"VERSION" VARCHAR(5) NOT NULL ,

"ROW_VERSION" INTEGER NOT NULL ,

"TASKTYPE" INTEGER NOT NULL ,

"TASKSUSPENDED" SMALLINT NOT NULL ,

"CANCELLED" SMALLINT NOT NULL ,

"NEXTFIRETIME" BIGINT NOT NULL ,

"STARTBYINTERVAL" VARCHAR(254) ,

"STARTBYTIME" BIGINT ,

"VALIDFROMTIME" BIGINT ,

"VALIDTOTIME" BIGINT ,

"REPEATINTERVAL" VARCHAR(254) ,

"MAXREPEATS" INTEGER NOT NULL ,

"REPEATSLEFT" INTEGER NOT NULL ,

"TASKINFO" BLOB(102400) LOGGED NOT COMPACT ,

"NAME" VARCHAR(254) NOT NULL ,

"AUTOPURGE" INTEGER NOT NULL ,

"FAILUREACTION" INTEGER ,

"MAXATTEMPTS" INTEGER ,

"QOS" INTEGER ,

"PARTITIONID" INTEGER ,

"OWNERTOKEN" VARCHAR(200) NOT NULL ,

"CREATETIME" BIGINT NOT NULL ) IN "@SCHED_TABLESPACE@"

这两个文件修改完成后,在命令行运行db2cmd转到db2命令窗口。

然后运行db2batch -d timerdb -f createTablespaceDB2.ddl

和db2batch -d timerdb -f createSchemaDB2.ddl生成定时服务所需要的表空间和表。

运行完成后用下列命令验证:

Db2 connect to timerdb

Db2 list tables

你将会看到有以下四个表被创建:

Table/ViewSchema Type

------------ ------------- -----

LMGRADMINT

LMPRADMINT

TASK ADMIN T

TREG ADMIN T

其中主表task存放了定时程序的相关信息。

回页首

4、 创建新的集群

分别在hosta,hostb,hostc上完成WAS6安装后,我们需要创建3个节点来组成一个新的群集。

1)在hosta上创建一个Network DeployManagement节点,启动概要表创建向导:

选择创建Deployment Manager概要表:

点下一步直至完成

2)分别在hostc和hostb两个节点上选择创建应用服务器概要表。

3)创建完成后在DeployManager概要上运行startManager.sh启动Network Manager。

4)启动完成后打开概要下的日志文件SystemOut.log查看soap端口,缺省为8879。

5)在hostb和hostc两个应用服务器节点上运行addNode.sh hosta 8879

6)运行完成后,打开ND管理控制台:http://hosta:9060/ibm/console

7)在服务器下新建一个群集timertest,创建两个成员为clus01,clus02。启动群集。

回页首

5、 创建定时服务的数据源

进入ND管理控制台,展开资源,点击JDBC 提供者,选择要新建的资源所在的服务器

点新建。按提示输入所需资料。点数据源,进入数据源页面。

新建一个名为testtimer的数据源,指定jndi名为jdbc/testtimer

测试连接通过后。做下一步设置。

回页首

6、 修改服务器设置

打开管理控制台。

单击服务器 >应用程序服务器 >服务器名 >EJB 容器设置 >EJB 定时服务设置。 出现"定时服务设置"面板。

如果您要使用内部或预配置的调度程序实例,则单击使用内部 EJB 定时服务调度程序实例单选按钮。

如果您选择不更改缺省的设置,则此实例与 Cloudscape 数据库相关联。

更改数据源选择输入您所选的数据源别名。选择前面创建的jdbc/testtimer数据源。

输入表前缀为你创建表时的用户缺省模式名称,必须注意的是,在模式名称后面必须要带上一个小数点.。具体对应的每个值的意思可以点击帮助页面查看。

回页首

7、 开发基于J2EE标准的定时服务企业bean

下面的例子是在RAD环境下开发,要实现定时服务,EJB必须要实现javax.ejb.TimedObject接口。

EJB里面需要涉及到的接口或类分别是:

要实现的TimedObject和TimerService,Timer。

EJB中的ejbContext增加了一个方法.getTimerService()用于获得TimerService类。但这个方法不能在

setEntityContext()、setSessionContext()、setMessageContext()方法中调用。

下面列出了三个接口的定义:

public interface TimedObject{

public void ejbTimeout(Timer timer)

}

public interface TimerService{

public Timer createTimer(Date expiration,Serializable info)

public Timer createTimer(long duration,Serialzable info)

public Timer createTimer(Date initalExpiration,long intervalDuration,Serializable info)

public Timer createTimer(long initalDuration,long intevalDuration,Serializable info)

public java.util.Collection getTimers()

}

public interface Timer{

public void cancel()

public java.io.Serializable getInfo()

public Date getNextTimeout()

public long getTimeRemaining()

public TimerHandle getHandle()//这是一个local对象,不能传到remote client端使用

}

对于Stateless SessionBean来说,不要在ejbCreate()和ejbRemove()中设置Timer。主要是因为ejbCreate和ejbRemove调用的时间和次数都因Container Vendor而异。可能导致错误设置Timer。

对MessageDriven Bean 而言,和Stateless SessionBean的情况基本相似。但是设置Timer应该在onMessage()里面。通过一个JMS来进行触发。

ejbTimedout是一个回调方法,执行具体的商业逻辑,那么怎样设置什么时间触发这个方法呢,我们利用javax.ejb.TimerSevice。该对象我们可以从EJBContext中获得该对象实例。

定时器创建的特定时间到达后,容器就会触发ejbTimeout(),运行ejbTimeOut方法提,Bean在终止之前通过调用定时器Cancel方

法取消定时器,它是定时器接口的一部分,如果定时器被取消,ejbTimeout()方法就不会被调用了。定时器接口的getHandle()方法返回一

个序列化的handle对象。接下来,这个持续的Handle能够"非序列化",通过调用getTimer()方法得到定时器。由于定时器是本地对

象,TimerHandle不必通过Bean的远程接口或Web Services接口来传递。

具体步骤如下:

新建一个EJB项目otherTimer,在这个EJB项目里新建一个otherTimer的会话Bean。

在Bean实体里面需要实现两个方法:

startTimer()和ejbTimeOut。

startTimer()方法里面,我们通过EJBCONTEXT取得一个TimerService然后创建一个Timer。这个timer将在

2005,9月19日晚上8点过5分触发,触发后,EJB容器会调用ejbTimeOut()方法运行具体的商业逻辑,并且这个Timer会在80000

毫秒后再次触发。

javax.ejb.TimerService ts=this.getSessionContext().getTimerService()

System.out.println("启动一个时钟!")

Timer timer = ts.createTimer(new Date(105,9,19,20,5,0),80000,"other timer")

回页首

8、 WAS Scheduler实现

于WAS

Scheduler实现定时服务,需要配置一个scheduler,在WAS管理控制台展开资源,点scheduler,新建一个scheduler指定

名称、JNDI名、数据源JNDI名(这里可以用前面设置的jndi/testtimer)和表前缀,跟前面设置服务器EJB定时服务容器设置类似。

设置完成后就可以使用scheduler来实现定时服务了。

EJB模块中创建一个无状态会话bean,该 bean 实现了 com.ibm.websphere.scheduler.TaskHandler

远程接口中的 process() 方法。将您要创建的业务逻辑放入 process() 方法中。当运行任务时,将调用 process()

方法。Home 和 Remote 接口在部署描述符 bean 中必须设置如下:

com.ibm.websphere.scheduler.TaskHandlerHome

com.ibm.websphere.scheduler.TaskHandler

通过使用以下示例工厂方法创建 BeanTaskInfo 接口的一个实例。 使用 JSP 文件、servlet 或 EJB 组件创建实例,如以下代码示例所示。此代码必须与先前创建的 TaskHandler EJB 模块位于同一应用程序中:

Object schedulerObj = initialContext.lookup("java:comp/env/Scheduler")

BeanTaskInfo taskInfo = (BeanTaskInfo) schedulerObj.createTaskInfo(BeanTaskInfo.class)

注:

创建 BeanTaskInfo 对象并不会将任务添加到持久存储中。它将为必要的数据创建一个占位符。直到调用调度程序中的 create()

方法,才会将任务添加到持久存储中。设置 BeanTaskInfo 对象中的参数。 这些参数定义了调用哪些会话 bean

以及何时调用它们。TaskInfo 接口包含可用于控制任务执行的各种 set() 方法,其中包括运行任务的时间以及运行任务时它执行的 *** 作。

BeanTaskInfo

接口要求使用 setTaskHandler 方法设置 TaskHandler JNDI 名称或 TaskHandlerHome。如果使用

WASScheduler MBean API 来设置任务处理程序,则 JNDI 名称必须是标准的全局 JNDI 名称。

使用 TaskInfo 接口 API 方法设置参数,如以下代码示例所示:

java.util.Date startDate = new java.util.Date(System.currentTimeMillis()+30000)

Object reportGenHomeObj = initialContext.lookup("java:comp/env/ejb/ReportGenerator")

TaskHandlerHome reportGenHome = (TaskHandlerHome)PortableRemoteObject.narrow

(reportGenHomeObj,TaskHandlerHome.class)taskInfo.setTaskHandler(home)

taskInfo.setStartTime(startDate)

scheduler.create(taskInfo)

那么EJB容器将在当前时间的30000毫秒后触发process方法,在taskinfo里面可以设置一些其他schduler的属性,比如运行次数,运行间隔等。

ORACLE错误一览表,方便大家查询!

ORA-00001: 违反唯一约束条件 (.)

ORA-00017: 请求会话以设置跟踪事件

ORA-00018: 超出最大会话数

ORA-00019: 超出最大会话许可数

ORA-00020: 超出最大进程数 ()

ORA-00021: 会话附属于其它某些进程;无法转换会话

ORA-00022: 无效的会话 ID;访问被拒绝

ORA-00023: 会话引用进程私用内存;无法分离会话

ORA-00024: 单一进程模式下不允许从多个进程注册

ORA-00025: 无法分配

ORA-00026: 丢失或无效的会话 ID

ORA-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: 资源正忙,要求指定 NOWAIT

ORA-00055: 超出 DML 锁的最大数

ORA-00056: 对象 ‘.’ 上的 DDL 锁以不兼容模式挂起

ORA-00057: 超出临时表锁的最大数

ORA-00058: DB_BLOCK_SIZE 必须为才可安装此数据库 (非 )

ORA-00059: 超出 DB_FILES 的最大值

ORA-00060: 等待资源时检测到死锁

ORA-00061: 另一个例程设置了不同的 DML_LOCKS

ORA-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: 警告: 可能损坏映射的 SGA

ORA-00084: 全局区域必须为 PGA, SGA 或 UGA

ORA-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_ALLOC

ORA-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: 重复的事务处理 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-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-00258: NOARCHIVELOG 模式下的人工存档必须标识日志

ORA-00259: 日志 (打开线程 ) 为当前日志,无法存档

ORA-00260: 无法找到联机日志序列 (线程 )

ORA-00261: 正在存档或修改日志 (线程 )

ORA-00262: 当前日志 (关闭线程 ) 无法切换

ORA-00263: 线程 没有需要存档的记录

ORA-00264: 不要求恢复

ORA-00265: 要求例程恢复,无法设置 ARCHIVELOG 模式

ORA-00266: 需要存档日志文件名

ORA-00267: 无需存档日志文件名

ORA-00268: 指定的日志文件不存在 ”

ORA-00269: 指定的日志文件为线程 的一部分 (非 )

ORA-00270: 创建存档日志 时出错

ORA-00271: 没有需要存档的日志

ORA-00272: 写存档日志 时出错

ORA-00273: 未记录的直接加载数据的介质恢复

ORA-00274: 非法恢复选项

ORA-00275: 已经开始介质恢复

ORA-00276: CHANGE 关键字已指定但未给出更改编号

ORA-00277: UNTIL 恢复标志 的非法选项

ORA-00278: 此恢复不再需要日志文件 ”

ORA-00279: 更改 (在 生成) 对于线程 是必需的

ORA-00280: 更改 对于线程 是按序列 # 进行的

ORA-00281: 不能使用调度进程执行介质恢复

ORA-00282: UPI 调用不被支持,请使用 ALTER DATABASE RECOVER

ORA-00283: 恢复会话因错误而取消

ORA-00284: 恢复会话仍在进行

ORA-00285: TIME 未作为字符串常数给出

ORA-00286: 无可用成员,或成员无有效数据

ORA-00287: 未找到指定的更改编号 (在线程 中)

ORA-00288: 要继续恢复,请键入 ALTER DATABASE RECOVER CONTINUE

ORA-00289: 建议:

ORA-00290: *** 作系统出现存档错误。请参阅下面的错误

ORA-00291: PARALLEL 选项要求数字值

ORA-00292: 未安装并行恢复功能

ORA-00293: 控制文件与重做日志不同步

ORA-00294: 无效的存档日志格式标识 ”

ORA-00295: 数据文件号 无效,必须介于 1 与 之间

ORA-00296: 已超出 RECOVER DATAFILE LIST 的最大文件数 ()

ORA-00297: 必须在 RECOVER DATAFILE START 之前指定 RECOVER DATAFILE LIST

ORA-00298: 丢失或无效的 TIMEOUT 间隔

ORA-00299: 必须在数据文件 上使用文件级介质恢复

ORA-00300: 指定的重做日志块大小 非法 – 超出限制

ORA-00301: 添加日志文件 ” 时出错 – 无法创建文件

ORA-00302: 日志超出限制

ORA-00303: 无法处理多次中断的重做

ORA-00304: 请求的 INSTANCE_NUMBER 在使用中

ORA-00305: 日志 (线程 ) 不一致;属于另一个数据库

ORA-00306: 此数据库中的例程限制

ORA-00307: 请求的 INSTANCE_NUMBER 超出限制,最大为

ORA-00308: 无法打开存档日志 ”

ORA-00309: 日志属于错误的数据库

ORA-00310: 存档日志包含序列 ;要求序列

ORA-00311: 无法从存档日志读取标题

ORA-00312: 联机日志 线程 : ”

ORA-00313: 无法打开日志组 (线程 ) 的成员

ORA-00314: 日志 (线程 ),预计序号 与 不匹配

ORA-00315: 日志 (线程 ),标题中的线程 # 错误

ORA-00316: 日志 (线程 ),标题中的类型 不是日志文件

ORA-00317: 标题中的文件类型 不是日志文件

ORA-00318: 日志 (线程 ),预计文件大小 与 不匹配

ORA-00319: 日志 (线程 ) 具有错误的日志重置状态

ORA-00320: 无法从日志 (线程 ) 读取文件标题

ORA-00321: 日志 (线程 ),无法更新日志文件标题

ORA-00322: 日志 (线程 ) 不是当前副本

ORA-00323: 线程 的当前日志不可用而所有其它日志均需要存档

ORA-00324: 日志文件 ” 的翻译名 ” 太长, 字符超出 限制

ORA-00325: 已归档线程 的日志,标题中的线程 # 错误

ORA-00326: 日志在更改 开始,需要更早的更改

ORA-00327: 日志 (线程 ),实际大小 小于需要的

ORA-00328: 归档日志在更改 结束,需要稍后的更改

ORA-00329: 归档日志在更改 开始,需要更改

ORA-00330: 归档日志在更改 结束,需要更改

ORA-00331: 日志版本 与 ORACLE 版本 不兼容

ORA-00332: 归档日志过小 – 可能未完全归档

ORA-00333: 重做日志读取块 计数 出错

ORA-00334: 归档日志: ”

ORA-00335: 联机日志 : 没有此编号的日志,日志不存在

ORA-00336: 大小为 的日志文件块数小于最小 块数

ORA-00337: 日志文件 ” 不存在且未指定大小

ORA-00338: 日志 (线程 ) 比控制文件更新

ORA-00339: 归档日志未包含任何重做

ORA-00340: 处理联机日志 (线程 ) 时出现 I/O 错误

ORA-00341: 日志 (线程 ),标题中的日志 # 错误

ORA-00342: 归档日志在上一个 RESETLOGS 之前创建程序包

ORA-00343: 错误过多,已关闭日志成员

ORA-00344: 无法重新创建联机日志 ”

ORA-00345: 重做日志写入块 计数 出错

ORA-00346: 日志成员标记为 STALE

ORA-00347: 日志 (线程 ),预计块大小 与 不匹配

ORA-00348: 单一进程重做失败;必须中止例程

ORA-00349: 无法获得 ” 的块大小

ORA-00350: 日志 (线程 ) 中需要归档

ORA-00351: recover-to 时间无效

ORA-00352: 线程 的所有日志均需要归档 – 无法启用

ORA-00353: 日志损坏接近块 更改 时间

ORA-00354: 损坏重做日志块标题

ORA-00355: 更改编号无次序

ORA-00356: 更改说明中的长度不一致

ORA-00357: 日志文件指定了过多成员,最大为

ORA-00358: 指定了过多文件成员,最大为

ORA-00359: 日志文件组 不存在

ORA-00360: 非日志文件成员:

ORA-00361: 无法删除最后一个日志成员 (组 )

ORA-00362: 组成组 中的有效日志文件要求输入成员

ORA-00363: 日志不是归档版本

ORA-00364: 无法将标题写入新日志成员

ORA-00365: 指定日志不是正确的下一个日志

ORA-00366: 日志 (线程 ),文件标题中的校验和错误

ORA-00367: 日志文件标题中的校验和错误

ORA-00368: 重做日志块中的校验和错误


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12371985.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存