cim体系结构和控制系统有何特点

cim体系结构和控制系统有何特点,第1张

还不如直接问体系结构是怎么构架的,到处都是特点,给你一份我的笔记,自己参考
数据库体系结构
数据库体系结构包括了:
1数据库实例
2数据库文件
3用户进程
4服务器进程
5参数文件
6密码文件
7归档日志文件等。
其中,1数据库实例和2数据库文件是本体系结构中的核心部分,他们组合起来构成了oracle服务器,又称为DBMS——数据库管理系统。
1数据库实例(instance)
数据库实例由系统全局区SGA和若干后台进程组成。
SGA:包含数据库高速缓存database buffer cache,共享池shared pool,重做日志缓存redo log buffer cache,流池 streaming pool,以及一些可选内存区如Java池java pool、大池large pool、闪回缓存区flahsback buffer等。而数据库的内存结构则是分为SGA和PGA(PGA介绍参见4服务器进程)。
共享池由库高速缓存和数据字典高速缓存组成,库高速缓存存储最近使用的SQL和PL/SQL语句,数据字典高速缓存存储数据文件、表、索引、列、用户、权限信息等数据库对象的定义。
数据库高速缓存存储最近使用的数据块信息或用户修改过需要写回数据库的数据信息。
大池主要分配共享服务器模式下的UGA内存。
后台进程:包含系统监控进程SMON,进程监控进程PMON,数据库写进程DBWR,日志写进程LGWR,检查点进程CKPT这5个必须启动的进程以及其他的例如归档日志进程ARCH等。
2数据库文件
数据库文件分成三类:数据文件datafiles,控制文件controlfile,重做日志文件redo file。
数据文件:包含数据库中的实际数据,是数据库 *** 作中数据的最终存储位置。
控制文件:包含维护数据库和验证数据库完整性的信息,是二进制文件。
重做日志文件:包含数据库发生变化的记录,在发生故障时用于数据恢复。
数据库文件又有物理结构和逻辑结构之分。
物理结构:指基于 *** 作系统的数据库文件结构,至上而下为“datafile——OS block”,即从 *** 作系统层面来将,数据库文件是作为datafile来存储的,而datafile是以 *** 作系统的最小块来进行排列存储的。注意,数据库文件的最小块是 *** 作系统最小块的正整数倍。
逻辑结构:指oracle基于自身逻辑的抽象结构自上而下一对多关系为“数据库database——表空间tablespace——段segment——区段extent——数据库块oracle block”。
逻辑结构和物理结构的对应关系:tablespace对应了一个或多个datafile,而segment对应同一个tablespcace的一个或者多个datafile的全部或者一部分,extent是datafile的全部或者一部分,也就是说最小的datafile大小为一个区段,oracle block是OS block的正整数倍大小。
3用户进程
用户进程是运行于客户端需要与数据库进行交互的程序,但是它必须经过服务器进程的对接转换,才能实现交互的功能。
4服务器进程
服务器进程是运行在服务器端、服务于用户进程并直接与数据库进行交互的程序。用户进程与服务器进程之间产生一条数据库连接connection,服务器进程与数据库之间产生若干会话代表用户进程的若干个会话。服务器进程有一块专用的内存叫做进程全局区PGA,PGA独立于SGA,直接在 *** 作系统的内存区中分配。
用户全局区UGA表示用户的会话状态,为会话分配内存。在共享服务器模式下,UGA在SGA中分配,而在专有服务器模式下,UGA在PGA中分配。
5参数文件parameter file
参数文件以正文文本存储,定义了包含SGA中内存结构分配空间的参数,是oracle重要的文件之一。
6密码文件password file
密码文件授予用户启动和关闭数据库实例的权限,在刚安装数据库时,oracle的默认用户名和密码就存储在密码文件之中。
7归档日志文件 archive log file
归档日志文件是日志文件的脱机备份,用以故障之后进行数据恢复。

并口网络狗:进入windows的命令提示符(开始-运行-cmd-回车),进入管家婆服务器端安装路径DRV目录,执行如下命令 "dog remove" 回车,"dog install" 回车。然后重新运行管家婆程序。
USB加密狗:一定在拔出加密狗后,执行DRV目录中的setupsnt,卸载原驱动后,重新执行setupsnt,安装硬件驱动,再执行MicroDogInstdrvexe安装加密狗驱动。最后再插上加密狗。检查电脑硬件是否支持USB20设备,将usb狗插到电脑机箱背后的usb插口,有时前面的插口不支持usb20协议。

SQL语句执行过程详解
一条sql,plsql的执行到底是怎样执行的呢?
一、SQL语句执行原理:
第一步:客户端把语句发给服务器端执行当我们在客户端执行 select 语句时,客户端会把这条 SQL 语句发送给服务器端,让服务器端的
进程来处理这语句。也就是说,Oracle 客户端是不会做任何的 *** 作,他的主要任务就是把客户端产生
的一些 SQL 语句发送给服务器端。虽然在客户端也有一个数据库进程,但是,这个进程的作用跟服务器
上的进程作用事不相同的。服务器上的数据库进程才会对SQL 语句进行相关的处理。不过,有个问题需
要说明,就是客户端的进程跟服务器的进程是一一对应的。也就是说,在客户端连接上服务器后,在客户
端与服务器端都会形成一个进程,客户端上的我们叫做客户端进程;而服务器上的我们叫做服务器进程。
第二步:语句解析
当客户端把 SQL 语句传送到服务器后,服务器进程会对该语句进行解析。同理,这个解析的工作,
也是在服务器端所进行的。虽然这只是一个解析的动作,但是,其会做很多“小动作”。
1 查询高速缓存(library cache)。服务器进程在接到客户端传送过来的 SQL 语句时,不
会直接去数据库查询。而是会先在数据库的高速缓存中去查找,是否存在相同语句的执行计划。如果在
数据高速缓存中,则服务器进程就会直接执行这个 SQL 语句,省去后续的工作。所以,采用高速数据缓
存的话,可以提高 SQL 语句的查询效率。一方面是从内存中读取数据要比从硬盘中的数据文件中读取
数据效率要高,另一方面,也是因为这个语句解析的原因。
不过这里要注意一点,这个数据缓存跟有些客户端软件的数据缓存是两码事。有些客户端软件为了
提高查询效率,会在应用软件的客户端设置数据缓存。由于这些数据缓存的存在,可以提高客户端应用软
件的查询效率。但是,若其他人在服务器进行了相关的修改,由于应用软件数据缓存的存在,导致修改的
数据不能及时反映到客户端上。从这也可以看出,应用软件的数据缓存跟数据库服务器的高速数据缓存
不是一码事。
2 语句合法性检查(data dict cache)。当在高速缓存中找不到对应的 SQL 语句时,则服
务器进程就会开始检查这条语句的合法性。这里主要是对 SQL 语句的语法进行检查,看看其是否合乎
语法规则。如果服务器进程认为这条 SQL 语句不符合语法规则的时候,就会把这个错误信息,反馈给客
户端。在这个语法检查的过程中,不会对 SQL 语句中所包含的表名、列名等等进行 SQL 他只是语法
上的检查。
3 语言含义检查(data dict cache)。若 SQL 语句符合语法上的定义的话,则服务器进程
接下去会对语句中的字段、表等内容进行检查。看看这些字段、表是否在数据库中。如果表名与列名不
准确的话,则数据库会就会反馈错误信息给客户端。所以,有时候我们写 select 语句的时候,若语法
与表名或者列名同时写错的话,则系统是先提示说语法错误,等到语法完全正确后,再提示说列名或表名
错误。
4 获得对象解析锁(control structer)。当语法、语义都正确后,系统就会对我们需要查询
的对象加锁。这主要是为了保障数据的一致性,防止我们在查询的过程中,其他用户对这个对象的结构发
生改变。
5 数据访问权限的核对(data dict cache)。当语法、语义通过检查之后,客户端还不一定
能够取得数据。服务器进程还会检查,你所连接的用户是否有这个数据访问的权限。若你连接上服务器
的用户不具有数据访问权限的话,则客户端就不能够取得这些数据。有时候我们查询数据的时候,辛辛苦
苦地把 SQL 语句写好、编译通过,但是,最后系统返回个 “没有权限访问数据”的错误信息,让我们气
半死。这在前端应用软件开发调试的过程中,可能会碰到。所以,要注意这个问题,数据库服务器进程先
检查语法与语义,然后才会检查访问权限。
6 确定最佳执行计划 。当语句与语法都没有问题,权限也匹配的话,服务器进程还是不会直接对
数据库文件进行查询。服务器进程会根据一定的规则,对这条语句进行优化。不过要注意,这个优化是有
限的。一般在应用软件开发的过程中,需要对数据库的 sql 语言进行优化,这个优化的作用要大大地大
于服务器进程的自我优化。所以,一般在应用软件开发的时候,数据库的优化是少不了的。当服务器进程
的优化器确定这条查询语句的最佳执行计划后,就会将这条 SQL 语句与执行计划保存到数据高速缓存
(library cache)。如此的话,等以后还有这个查询时,就会省略以上的语法、语义与权限检查的步骤,
而直接执行 SQL 语句,提高 SQL 语句处理效率。
第三步:语句执行
语句解析只是对 SQL 语句的语法进行解析,以确保服务器能够知道这条语句到底表达的是什么意
思。等到语句解析完成之后,数据库服务器进程才会真正的执行这条 SQL 语句。这个语句执行也分两
种情况。
一是若被选择行所在的数据块已经被读取到数据缓冲区的话,则服务器进程会直接把这个数据传递
给客户端,而不是从数据库文件中去查询数据。
若数据不在缓冲区中,则服务器进程将从数据库文件中查询相关数据,并把这些数据放入到数据缓冲
区中(buffer cache)。
第四步:提取数据
当语句执行完成之后,查询到的数据还是在服务器进程中,还没有被传送到客户端的用户进程。所以,
在服务器端的进程中,有一个专门负责数据提取的一段代码。他的作用就是把查询到的数据结果返回给
用户端进程,从而完成整个查询动作。从这整个查询处理过程中,我们在数据库开发或者应用软件开发过
程中,需要注意以下几点:
一是要了解数据库缓存跟应用软件缓存是两码事情。数据库缓存只有在数据库服务器端才存在,在
客户端是不存在的。只有如此,才能够保证数据库缓存中的内容跟数据库文件的内容一致。才能够根据
相关的规则,防止数据脏读、错读的发生。而应用软件所涉及的数据缓存,由于跟数据库缓存不是一码事
情,所以,应用软件的数据缓存虽然可以提高数据的查询效率,但是,却打破了数据一致性的要求,有时候
会发生脏读、错读等情况的发生。所以,有时候,在应用软件上有专门一个功能,用来在必要的时候清除
数据缓存。不过,这个数据缓存的清除,也只是清除本机上的数据缓存,或者说,只是清除这个应用程序
的数据缓存,而不会清除数据库的数据缓存。
二是绝大部分 SQL 语句都是按照这个处理过程处理的。我们 DBA 或者基于 Oracle 数据库的
开发人员了解这些语句的处理过程,对于我们进行涉及到 SQL 语句的开发与调试,是非常有帮助的。有
时候,掌握这些处理原则,可以减少我们排错的时间。特别要注意,数据库是把数据查询权限的审查放在
语法语义的后面进行检查的。所以,有时会若光用数据库的权限控制原则,可能还不能满足应用软件权限
控制的需要。此时,就需要应用软件的前台设置,实现权限管理的要求。而且,有时应用数据库的权限管
理,也有点显得繁琐,会增加服务器处理的工作量。因此,对于记录、字段等的查询权限控制,大部分程
序涉及人员喜欢在应用程序中实现,而不是在数据库上实现。
DBCC DROPCLEANBUFFERS
从缓冲池中删除所有清除缓冲区。
DBCC FREEPROCCACHE
从过程缓存中删除所有元素。
DBCC FREESYSTEMCACHE
从所有缓存中释放所有未使用的缓存条目
SQL语句中的函数、关键字、排序等执行顺序:
1 FROM 子句返回初始结果集。
2 WHERE 子句排除不满足搜索条件的行。
3 GROUP BY 子句将选定的行收集到 GROUP BY 子句中各个唯一值的组中。
4 选择列表中指定的聚合函数可以计算各组的汇总值。
5 此外,HAVING 子句排除不满足搜索条件的行。
6 计算所有的表达式;
7 使用 order by 对结果集进行排序。
8 查找你要搜索的字段。
二、SQL语句执行完整过程:
1用户进程提交一个 sql 语句:
update temp set a=a2,给服务器进程。
2服务器进程从用户进程把信息接收到后,在 PGA 中就要此进程分配所需内存,存储相关的信息,如在会
话内存存储相关的登录信息等。
3服务器进程把这个 sql 语句的字符转化为 ASCII 等效数字码,接着这个 ASCII 码被传递给一个
HASH 函数,并返回一个 hash 值,然后服务器进程将到shared pool 中的 library cache 中去查找是否存在相
同的 hash 值,如果存在,服务器进程将使用这条语句已高速缓存在 SHARED POOL 的library cache 中的已
分析过的版本来执行。
4如果不存在,服务器进程将在 CGA 中,配合 UGA 内容对 sql,进行语法分析,首先检查语法的正确性,接
着对语句中涉及的表,索引,视图等对象进行解析,并对照数据字典检查这些对象的名称以及相关结构,并根据
ORACLE 选用的优化模式以及数据字典中是否存在相应对象的统计数据和是否使用了存储大纲来生成一个
执行计划或从存储大纲中选用一个执行计划,然后再用数据字典核对此用户对相应对象的执行权限,最后生成
一个编译代码。
5ORACLE 将这条 sql 语句的本身实际文本、HASH 值、编译代码、与此语名相关联的任何统计数据
和该语句的执行计划缓存在 SHARED POOL 的 library cache中。服务器进程通过 SHARED POOL 锁存
器(shared pool latch)来申请可以向哪些共享 PL/SQL 区中缓存这此内容,也就是说被SHARED POOL 锁存
器锁定的 PL/SQL 区中的块不可被覆盖,因为这些块可能被其它进程所使用。
6在 SQL 分析阶段将用到 LIBRARY
CACHE,从数据字典中核对表、视图等结构的时候,需要将数据
字典从磁盘读入 LIBRARY
CACHE,因此,在读入之前也要使用LIBRARY
CACHE 锁存器(library cache
pin,library cache lock)来申请用于缓存数据字典。 到现在为止,这个 sql 语句已经被编译成可执行的代码了,
但还不知道要 *** 作哪些数据,所以服务器进程还要为这个 sql 准备预处理数据。
7首先服务器进程要判断所需数据是否在 db buffer 存在,如果存在且可用,则直接获取该数据,同时根据
LRU 算法增加其访问计数;如果 buffer 不存在所需数据,则要从数据文件上读取首先服务器进程将在表头部
请求 TM 锁(保证此事务执行过程其他用户不能修改表的结构),如果成功加 TM 锁,再请求一些行级锁(TX
锁),如果 TM、TX 锁都成功加锁,那么才开始从数据文件读数据,在读数据之前,要先为读取的文件准备好
buffer 空间。服务器进程需要扫面 LRU list 寻找 free db buffer,扫描的过程中,服务器进程会把发现的所有
已经被修改过的 db buffer 注册到 dirty list 中, 这些 dirty buffer 会通过 dbwr 的触发条件,随后会被写出到
数据文件,找到了足够的空闲 buffer,就可以把请求的数据行所在的数据块放入到 db buffer 的空闲区域或者
覆盖已经被挤出 LRU list 的非脏数据块缓冲区,并排列在 LRU list 的头部,也就是在数据块放入 DB
BUFFER 之前也是要先申请 db buffer 中的锁存器,成功加锁后,才能读数据到 db buffer。
8记日志 现在数据已经被读入到 db buffer 了,现在服务器进程将该语句所影响的并被读
入 db buffer 中的这些行数据的 rowid 及要更新的原值和新值及 scn 等信息从 PGA 逐条的写入 redo log
buffer 中。在写入 redo log buffer 之前也要事先请求 redo log buffer 的锁存器,成功加锁后才开始写入,当
写入达到 redo log buffer 大小的三分之一或写入量达到 1M 或超过三秒后或发生检查点时或者 dbwr 之前
发生,都会触发 lgwr 进程把 redo log buffer 的数据写入磁盘上的 redo file 文件中(这个时候会产生log file
sync 等待事件)
已经被写入 redofile 的 redo log buffer 所持有的锁存器会被释放,并可被后来的写入信息覆盖,
redo log buffer是循环使用的。Redo file 也是循环使用的,当一个 redo file 写满后,lgwr 进程会自动切换到
下一 redo file(这个时候可能出现 log fileswitch(checkpoint complete)等待事件)。如果是归档模式,归档进
程还要将前一个写满的 redo file 文件的内容写到归档日志文件中(这个时候可能出现 log file
switch(archiving needed)。
9为事务建立回滚段 在完成本事务所有相关的 redo log buffer 之后,服务器进程开始改写这个 db buffer
的块头部事务列表并写入 scn,然后 copy 包含这个块的头部事务列表及 scn 信息的数据副本放入回滚段中,将
这时回滚段中的信息称为数据块的“前映像“,这个”前映像“用于以后的回滚、恢复和一致性读。(回滚段可以
存储在专门的回滚表空间中,这个表空间由一个或多个物理文件组成,并专用于回滚表空间,回滚段也可在其它
表空间中的数据文件中开辟。
10本事务修改数据块 准备工作都已经做好了,现在可以改写 db buffer 块的数据内容了,并在块的头部写
入回滚段的地址。
11放入 dirty list 如果一个行数据多次 update 而未 commit,则在回滚段中将会有多个“前映像“,除了第
一个”前映像“含有 scn 信息外,其他每个“前映像“的头部都有 scn 信息和“前前映像”回滚段地址。一个
update 只对应一个 scn,然后服务器进程将在 dirty list 中建立一
条指向此 db buffer 块的指针(方便 dbwr 进程可以找到 dirty list 的 db buffer 数据块并写入数据文件中)。
接着服务器进程会从数据文件中继续读入第二个数据块,重复前一数据块的动作,数据块的读入、记日志、建
立回滚段、修改数据块、放入 dirty list。当 dirty queue 的长度达到阀值(一般是 25%),服务器进程将通知
dbwr 把脏数据写出,就是释放 db buffer 上的锁存器,腾出更多的 free db buffer。前面一直都是在说明
oracle 一次读一个数据块,其实 oracle 可以一次读入多个数据块(db_file_multiblock_read_count 来设置一
次读入块的个数)
说明:
在预处理的数据已经缓存在 db buffer 或刚刚被从数据文件读入到 db buffer 中,就要根据 sql 语句
的类型来决定接下来如何 *** 作。
1>如果是 select 语句,则要查看 db buffer 块的头部是否有事务,如果有事务,则从回滚段中读取数据;如
果没有事务,则比较 select 的 scn 和 db buffer 块头部的 scn,如果前者小于后者,仍然要从回滚段中读取数据;
如果前者大于后者,说明这是一非脏缓存,可以直接读取这个 db buffer 块的中内容。
2>如果是 DML *** 作,则即使在 db buffer 中找到一个没有事务,而且 SCN 比自己小的非脏
缓存数据块,服务器进程仍然要到表的头部对这条记录申请加锁,加锁成功才能进行后续动作,如果不成功,则要
等待前面的进程解锁后才能进行动作(这个时候阻塞是 tx 锁阻塞)。
用户 commit 或 rollback 到现在为止,数据已经在 db buffer 或数据文件中修改完
成,但是否要永久写到数文件中,要由用户来决定 commit(保存更改到数据文件) rollback 撤销数据的更改)。
1用户执行 commit 命令
只有当 sql 语句所影响的所有行所在的最后一个块被读入 db buffer 并且重做信息被写入 redo log
buffer(仅指日志缓冲区,而不包括日志文件)之后,用户才可以发去 commit 命令,commit 触发 lgwr 进程,但不
强制立即 dbwr来释放所有相应 db buffer 块的锁(也就是no-force-at-commit,即提交不强制写),也就是说有
可能虽然已经 commit 了,但在随后的一段时间内 dbwr 还在写这条 sql 语句所涉及的数据块。表头部的行锁
并不在 commit 之后立即释放,而是要等 dbwr 进程完成之后才释放,这就可能会出现一个用户请求另一用户
已经 commit 的资源不成功的现象。
A 从 Commit 和 dbwr 进程结束之间的时间很短,如果恰巧在 commit 之后,dbwr 未结束之前断电,因为
commit 之后的数据已经属于数据文件的内容,但这部分文件没有完全写入到数据文件中。所以需要前滚。由
于 commit 已经触发 lgwr,这些所有未来得及写入数据文件的更改会在实例重启后,由 smon 进程根据重做日
志文件来前滚,完成之前 commit 未完成的工作(即把更改写入数据文件)。
B如果未 commit 就断电了,因为数据已经在 db buffer 更改了,没有 commit,说明这部分数据不属于数
据文件,由于 dbwr 之前触发 lgwr 也就是只要数据更改,(肯定要先有 log) 所有 DBWR,在数据文件上的修改
都会被先一步记入重做日志文件,实例重启后,SMON 进程再根据重做日志文件来回滚。
其实 smon 的前滚回滚是根据检查点来完成的,当一个全部检查点发生的时候,首先让 LGWR 进程将
redo log buffer 中的所有缓冲(包含未提交的重做信息)写入重做日志文件,然后让 dbwr 进程将 db buffer 已
提交的缓冲写入数据文件(不强制写未提交的)。然后更新控制文件和数据文件头部的 SCN,表明当前数据库
是一致的,在相邻的两个检查点之间有很多事务,有提交和未提交的。
像前面的前滚回滚比较完整的说法是如下的说明:
A发生检查点之前断电,并且当时有一个未提交的改变正在进行,实例重启之后,SMON 进程将从上一个
检查点开始核对这个检查点之后记录在重做日志文件中已提交的和未提交改变,因为
dbwr 之前会触发 lgwr,所以 dbwr 对数据文件的修改一定会被先记录在重做日志文件中。因此,断电前被
DBWN 写进数据文件的改变将通过重做日志文件中的记录进行还原,叫做回滚,
B 如果断电时有一个已提交,但 dbwr 动作还没有完全完成的改变存在,因为已经提交,提交会触发 lgwr
进程,所以不管 dbwr 动作是否已完成,该语句将要影响的行及其产生的结果一定已经记录在重做日志文件中
了,则实例重启后,SMON 进程根据重做日志文件进行前滚
实例失败后用于恢复的时间由两个检查点之间的间隔大小来决定,可以通个四个参数设置检查点执行的频
率:
Log_checkpoint_interval:
决定两个检查点之间写入重做日志文件的系统物理块(redo blocks)
的大小,默认值是 0,无限制。
log_checkpoint_timeout:
两 个 检 查 点 之 间 的 时 间 长 度(秒)默 认 值 1800s。
fast_start_io_target:
决定了用于恢复时需要处理的块的多少,默认值是 0,无限制。
fast_start_mttr_target:
直接决定了用于恢复的时间的长短,默认值是 0,无限制(SMON 进程执行的前滚
和回滚与用户的回滚是不同的,SMON 是根据重做日志文件进行前滚或回滚,而用户的回滚一定是根据回滚段
的内容进行回滚的。
在这里要说一下回滚段存储的数据,假如是 delete *** 作,则回滚段将会记录整个行的数据,假如是 update,
则回滚段只记录被修改了的字段的变化前的数据(前映像),也就是没有被修改的字段是不会被记录的,假如是
insert,则回滚段只记录插入记录的 rowid。 这样假如事务提交,那回滚段中简单标记该事务已经提交;假如是
回退,则如果 *** 作是 delete,回退的时候把回滚段中数据重新写回数据块, *** 作如果是 update,则把变化前数据
修改回去, *** 作如果是 insert,则根据记录的 rowid 把该记录删除。
2如果用户 rollback。
则服务器进程会根据数据文件块和 DB BUFFER 中块的头部的事务列表和 SCN 以及回滚段地址找到
回滚段中相应的修改前的副本,并且用这些原值来还原当前数据文件中已修改但未提交的改变。如果有多个
“前映像”,服务器进程会在一个“前映像”的头部找到“前前映像”的回滚段地址,一直找到同一事务下的最早的
一个“前映像”为止。一旦发出了 COMMIT,用户就不能rollback,这使得 COMMIT 后 DBWR 进程还没有
全部完成的后续动作得到了保障。到现在为例一个事务已经结束了。
说明:
TM 锁:
符合 lock 机制的,用于保护对象的定义不被修改。 TX 锁:
这个锁代表一个事务,是行
级锁,用数据块头、数据记录头的一些字段表示,也是符合 lock 机制,有 resource structure、lock
structure、enqueue 算法。

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: 无法重新调整从 802 移植的控制文件大小
ORA-00217: 从 901 进行移植无法重新调整控制文件的大小
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://outofmemory.cn/zz/13472032.html

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

发表评论

登录后才能评论

评论列表(0条)

保存