博客统计信息

51cto推荐博客
用户名:d185740815
文章数:53
评论数:24
访问量:47903
无忧币:478
博客积分:1080
博客等级:5
注册日期:2008-11-27

我最近发表的评论

我的Oracle 9i学.. 回复
日志文件组中的每个成员文件是一样..
我的Oracle 9i学.. 回复
是的,正在写实验文档。希望继续关..
vmware 环境的win.. 回复
强!!! ~~~~~~~~~~~~~~~~~~~~~~~
vmware 环境的win.. 回复
强!!! 学习了
vmware 环境的win.. 回复
qiang!!!

我的技术圈(2)

更多>>
2011-04-12 09:32:32
A buffer is something that has yet to be "written" to disk. A cache is something that has been "read" from the disk and stored for later use.
hacmp:http://www.ibm.com/developerworks/cn/aix/redbooks/HACMP-1/
            http://www.ibm.com/developerworks/cn/aix/redbooks/HACMP-2/
 
p5 HA:http://www.ibm.com/developerworks/cn/education/aix/hacmpinst/section3.html
websphere:http://www.ibm.com/developerworks/cn/websphere/newto/
 
mysql配置文件:http://www.blogjava.net/baoyaer/articles/209466.html
说明:文章是用windows live writer自动上载的,有些特殊符号显示不正确,如“>”显示为“>”。须修改之处太多,无暇修改。阅读不便之处,请见谅!
特点:


ASM能代替外部LVM或FS的功能,不依赖外部数据存储结构。


ASM内含多种存储冗余功能如镜像,不依赖外部数据冗余功能。


能够自动将数据均衡分布在磁盘组内所有磁盘中,从而提高系统性能。


跨平台使用,配置和管理界面统一,简化了用户管理。


1、在linux下须安装相应补丁..
2011-01-27 12:06:10
oracle 10g dataguard 笔记:http://hi.baidu.com/ryokocha/blog/item/a47bf9398e1055f83a87cea0.html
Oracle10g EM乱码之快速解决:http://www.eygle.com/archives/2006/03/oracle10g_em_font_change.html
oracle登录em报:java.lang.Exception: Exception in sending Request :: null:http://ttf177.javaeye.com/blog/789594


Oracle中job的使用详解:http://blog.csdn.net/dogwoods/archive/2008/01/02/2010571.aspx
 http://bkeep.blog.163.com/blog/static/12341429020105223954239/
我今天也遇到上述连接网页里所说的情况。但按照网页里的方法没有解决。找遍了alert文件也没找出个所以然来。考虑可能是由于归档日志文件损坏。
解决方法:
数据库版本为10.0.2:
1.正常关闭数据库:
shutdown immediate;
2.删除online redo log文件;
3.启动数据库到mount:
startup mount;
4.不完全恢复数据库:
recover database until cancel;
5.启动数据库:
alter database open resetlogs;
2011-01-04 10:41:52
撰写中。。。
2011-01-04 10:40:41
 撰写中。。。
2011-01-04 10:40:14
 撰写中。。。
2011-01-04 10:39:37
 撰写中。。。
2011-01-04 10:39:00
准备中。。。
1、Data_buffer_cache
用来保存频繁访问的数据的内存缓冲区域,以便于oracle用户进程需访问的某块数据可以首先到data_buffer_cache中来寻找能命中(cache hit),从而大大减少从磁盘读取数据所需要的IO时间。
两个不同的列表:

待写列表(write list):包含已被修改的,但尚未写入磁盘的脏缓存块的指示列表。
最近最少使用(Least recently used/LRU list):包含空闲缓存块、命中缓存块,及还未移入待写列表的脏缓存块的指示列表。

四个不同缓冲池:

Default pool
Keep pool
Recycle pool
DB..

1.实例与数据库
实例(Instance):

数据库启动后在内存中的映像,管理数据库正常运行;
在OS中以ORACLE_SID标识,在DB中以Instance_name标识;
组成:(System Global Area + Background Process);
查看实例名:
$ set | grep -i oracle_sid
SQL> show parameter instance_name
数据库(Database):

实例所存取的一个数据库文件的集合;
在DB中以db_name标识;
组成:(初始化参数文件,控制文件,数据文件,日志文件等)
查看数据库名:
SQL> show parameter db_name;
 
2.SGA(System Global Area)
SGA是一组包含着一个Oracle实例的数据库和控制信息的共享内存结构。

是为oracle系统分配的共享内存;
是实例的主要组成部分;
是影响数据库性能的重要因素;
随实例的启动/关闭而被分配/回收;
SGA自动对所包含的各种缓冲自动进行动态管理;
SGA主要包含6类缓存:

db_buffer_cache
shared_pool
large_pool
java_pool
redo_log_buffer
streams_pool
查看SGA:
SQL> show sga;
SQL> select * from v$sga;
SGA相关参数:
pre_page_sga:启动时是否将全部SGA都绑定到物理内存,而不使用交换分区。
lock_sga:运行过程中是否也将全部SGA都绑定到物理内存,而不使用交换分区。
sga_max_size:SGA总大小上限值。
sga_target:启用自动共享内存管理ASMM(Automatic Shared Memory Management),指定分配给db_buffer_cache、shared_pool、java_pool、large_pool这四项内存大小之和。
注意:sga_max_size可以改大,改小则受sga_target的限制。另外,sga_target应尽量接近sga_max_size。当sga_target小于sga_max_size时,上述指定的四项动态缓存合计值以sga_target为实际上限。如果sga_target被修改为大于sga_max_size的值或sga_max_size小于sga_target时,则数据库在下次启动时sga_max_size值会自动调整为与sga_target值相等。
调整sga_target前,应先查看四项缓存默认值是否都0,若为0表示可由ASSM在0到sga_target值所规定的区间内自动调整各缓存区大小。
查看:
SQL> show parameter db_cache_size;
SQL> show parameter shared_pool_size;
SQL> show parameter large_pool_size;
SQL> show parameter java_pool_size;
更改:
SQL> alter system set db_cache_size=0 scope=both/memory/spfile;
若某项缓存区大小默认设置不为0,而为某一具体值,代表ASMM在动态调整各缓存区时,该缓冲区不能分配低于该指定值的大小。
SGA内存按照颗粒度大小granule_size分配内存,若手工分配内存大小非整数倍于granule_size,则自动凑为granule_size的整数倍大小,常见granule_size如下:
若SGA<1G,granule_size=4M;若SGA>1G,granule_size=8M(for WIN)或16M(for Other);redo_log_buffer以512K为粒度分配内存。
查看SGA粒度大小:
SQL> select bytes from v$sgainfo where name='Granule Size';
相关操作:
SQL> show sga
Total System Global Area  201326592 bytes
Fixed Size                  1218532 bytes    
Variable Size              83888156 bytes 
Database Buffers          113246208 bytes
Redo Buffers                2973696 bytes

Fixed Size:固定值,包括一些开销等其他空间大小。是shared pool内dictionary cache的一部分与其他部分附加内存信息(如数据库和实例的状态信息)会被实例的后台进程所访问,在实例启动后即被固定在SGA中,是SGA中固定组件(在编译oracle数据库本身时就固定在其中),大小不变,故该部分缓存又称为固定SGA(Fixed SGA)。
Variable Size:可用大小。为sga_max_size-log_buffer-db_buffer_cache-fixed_size,剩下的包含Library cache、Java pool、Large pool、cursor area、control file content等缓存区大小。 
Database Buffers:db_buffer_cache实际大小。
Redo Buffers:redo_buffer实际大小。
SQL> select current_size from v$buffer_pool;    #查看data_buffer_cache实际大小(单位M)。
SQL> select pool,sum(bytes) from v$sgastat group by pool;    #查看java pool, streams pool,shared pool,large pool实际大小。
SQL> alter system set sga_target=120M scope=both;   #修改sga_target自动管理缓冲区合计值,在sga_max_size范围内调整可动态生效。各缓存区大小也将自动调整以适应修改后的sga_target总值。
SQL> show parameter sga_targe;   
SQL> select current_size from v$buffer_pool;
SQL> select pool,sum(bytes) from v$sgastat group by pool;    #查看修改,可见已跟随sga_target而变化,注意sga的值是granule的整数倍。
SQL> alter system set sga_target=400M scope=both;
alter system set sga_target=400M scope=both
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-00823: Specified value of sga_target greater than sga_max_size
#若修改sga_target值大于sga_max_size,则sga_target只能作为静态参数修改:SQL> alter system set sga_target=400M scope=spfile;
SQL> alter system set sga_max_size=200M scope=spfile;         #修改sga_max_size值,静态参数,重启生效。
SQL> alter system set large_pool_size=10M scope=memory;    #修改制定缓冲区最小值。若想在ASMM管理下,为某缓存区规定一个最小分配下限值(指示ASMM该区的分配不能低于该指定值),则可通过设定默认值来达到目的。
SQL> select pool,sum(bytes) from v$sgastat group by pool;  #查看,可见修改已生效。
未完,待续。。。[/img]..
从今天起,开始写oracle10g学习笔记。
写作提纲:
1.oracle内存结构
2.oracle物理结构
3.oracle逻辑结构
4.数据库对象
5.备份与恢复
6.用户管理和安全审计
7.oracle存储管理
8.oracle性能调优
9.RAC
内容虽和以前的博文有重复,但这次更新的内容基于oracle10g版本,并且注重实战。
2010-06-08 21:22:08
 
用户管理的备份
准备:
查询视图获取数据库文件信息
V$DATAFILE
V$CONTROLFILE
V$LOGFILE
DBA_DATA_FILES
 
SQL> select name ,status from v$datafile;
 
NAME                                          STATUS
--------------------------------------------- -------
/u01/or..
Datafiles aren't written during backup mode During an Oracle tablespace hot backup, a script that you write puts a tablespace into backup mode, then copies the datafiles to disk or tape, then takes the tablespace out of backup mode. Although these steps are widely understood, the idea that datafiles aren't  written during backup mode is probably the most alarming and widely held misconception about Oracle. So many people think this is true, that it is actually asserted as fact in the bac..
2010-05-22 17:14:17
 
常用备份方式
 

Restore与recovery
 

RMAN组件
 

 
元数据:RMAN 资料档案库:RMAN 在执行备份、还原和恢复操作时使用的数据称为RMAN 元数据。这些元数据存储在目标数据库的控制文件和可选的恢复目录数据库中。
RMAN 资料档案库:RMAN 在RMAN 资料档案库中存储有关目标数据库及其备份和恢复操作的信息。目标数据库控制文件可用作专门存储该信息的位置。存储的信息量会根据备份频率、生成的归档重做日志文件的数量以及RMAN 记录的保留时间而增长。
设置CONTROL_FILE_RECORD_KEEP_TIME:CONTROL_FILE_RECORD_KEEP_TIME 参数指定RMAN 信息至少要在控制文件中存储多少天后才会被覆盖。该值越小,信息就会越频繁地被覆盖,从而尽可能减少控制文件的增长。如果使用恢复目录,则应选择较小的数值。缺省值为7 天。如果控制文件太小,不能存储由CONTROL_FILE_RECORD_KEEP_TIME 指定的时间段内的所有信息,那么控制文件将会增长。在控制文件增长之前,将执行以下的特定步骤:
1. 使用控制文件中的空闲空间。
2. 覆盖早于CONTROL_FILE_RECORD_KEEP_TIME 的条目。
3. 如果没有更多空间可用,控制文件将按需增长,直到达到操作文件大小的系统限制。
通道分配(Channel Allocation):
 
2010-05-17 21:26:58
 
设置数据库归档模式:

SQL> startup mount
ORACLE instance started.
 
Total System Global Area 236000356 bytes
Fixed Size                   451684 bytes
Variable Size             201326592 bytes
Database Buffers           33554432 bytes
Redo Buffers                 667648 bytes
Database mounted.
SQL> archive log list
Database log mode              No Archive Mode
Automatic archival             Disabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     8
Current log sequence           10
SQL> alter database archivelog;
 
Database altered.
 
SQL> alter database open;
 
Database altered.
 
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Disabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     8
Next log sequence to archive   10
Current log sequence           10
 
•自动归档:LOG_ARCHIVE_START=TRUE
•手动归档:LOG_ARCHIVE_START=FALSE
•在决定归档模式(自动或手动)之前,必须将数据库设置为ARCHIVELOG 模式。
•如果未切换到ARCHIVELOG 模式,将导致ARCn 无法复制重做日志文件。
•启用归档进程之前,应彻底关闭数据库(使用正常、立即或事务处理选项)。
注:如果由于某种原因导致归档进程(ARCn) 失败,一旦事务处理活动填满了所有重做日志,Oracle 服务器就会停止。将数据库设置为ARCHIVELOG 模式将通知Oracle 服务器不要覆盖联机重做日志,除非这些日志已经归档。因此,联机重做日志的归档必须与系统中的事务处理活动(生成重做日志)保持同步。
使用LOG_ARCHIVE_MAX_PROCESSES 参数最多可指定十个ARCn 进程。
将LOG_ARCHIVE_START 设置为TRUE 后,Oracle 例程将按照LOG_ARCHIVE_MAX_PROCESSES 定义的数量启动多个归档进程。可以衍生更多归档进程,只要不超过由LOG_ARCHIVE_MAX_PROCESSES 设置的值,也可随时终止归档进程.
SQL> show parameter archive
 
……
 
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_archive_duplex_dest              string
log_archive_format                   string      %t_%s.dbf
log_archive_max_processes            integer     2
log_archive_min_succeed_dest         integer     1
log_archive_start                    boolean     TRUE
log_archive_trace                    integer     0
remote_archive_enable                string      true
standby_archive_dest                 string      ?/dbs/arch
SQL> !ps -ef | grep arch
……
oracle    4457     1 0 11:04 ?        00:00:00 ora_arc0_lll
oracle    4459     1 0 11:04 ?        00:00:00 ora_arc1_lll
 
SQL> alter system set log_archive_max_processes=4 scope=memory;
 
System altered.
 
SQL> !ps -ef | grep oracle
……
oracle    4457     1 0 11:04 ?        00:00:00 ora_arc0_lll
oracle    4459     1 0 11:04 ?        00:00:00 ora_arc1_lll
oracle    4463 3379 0 11:04 ?        00:00:00 oraclelll (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    4473     1 0 11:05 ?        00:00:00 ora_arc2_lll
oracle    4475     1 0 11:05 ?        00:00:00 ora_arc3_lll
……
 
SQL>
手动启动archive log mode
SQL> show parameter log_archive_start   
NAME                                 TYPE        VALUE
------------------------------------ ----------- --------------------
log_archive_start                    boolean     FALSE
 
SQL> alter system archive log start to '/u01/oradata/lll/aa/';
#如果不指定目标目录则缺省归档到Archive destination(archive log list命令中所指示的)目录,若该目录不存在则归档到/ORACLE_HOME/dbs下。
System altered.
 
SQL> !ps -ef | grep oracle
。。。 。。。
oracle    8615     1 0 07:06 ?        00:00:00 ora_arc0_lll
oracle    8617     1 0 07:06 ?        00:00:00 ora_arc1_lll
 
SQL> archive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     8
Next log sequence to archive   10
Current log sequence           10
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> alter system switch logfile;
 
System altered.
 
SQL> alter system switch logfile;
 
System altered.
 
$ ll /u01/oradata/lll/aa
total 21656
-rw-r----- 1 oracle oinstall 22109696 May 9 11:11 1_12.dbf
-rw-r----- 1 oracle oinstall    31744 May 9 11:11 1_13.dbf
-rw-r----- 1 oracle oinstall     3072 May 9 11:12 1_14.dbf
 
ALTER SYSTEM ARCHIVE LOG
 手动归档是由server process来执行归档操作.

SQL> alter system archive log stop;
 
System altered.
 
SQL> archive log list;
Database log mode              Archive Mode
Automatic archival             Disabled
Archive destination            /u01/oracle/dbs/arch
Oldest online log sequence     13
Next log sequence to archive   15
Current log sequence           15
SQL> alter system archive log current to '/u01/oradata/lll/aa/';
#不指定目标则用缺省路径
System altered.
 
SQL> !
[oracle@localhost ~]$ ls /u01/oradata/lll/aa
1_15.dbf
 
Tips:如果archive log文件没有足够的存储空间了存储新数据的时候,oracle将无法工作。所以在做数据导入导出之类的工作前最好先确认这个空间是否足够。
注意:在执行alter system archive log current时会发生switch logfile。
SQL> select group#,status from v$log;
 
    GROUP# STATUS
---------- ----------------
         1 CURRENT
         2 INACTIVE
         3 ACTIVE
 
SQL> alter system archive log current;
 
System altered.
 
SQL> select group#,status from v$log; 
 
    GROUP# STATUS
---------- ----------------
         1 ACTIVE
         2 CURRENT
         3 INACTIVE
归档目录参数
•使用LOG_ARCHIVE_DEST_n 最多可指定十个归档目标。在企业版中才有效,在Oracle8i 中,您最多可定义5 个目标。LOG_ARCHIVE_DEST 和LOG_ARCHIVE_DUPLEX_DEST(备份目录)参数是另一种指定目录方法,不推荐使用。
 log_archive_dest_1 = "LOCATION=/archive1":使用并且只能是本地磁盘。
 log_archive_dest_2 = "SERVICE=standby_db1":使用远程备用数据库,service的值为tnsnames.ora中定义的服务名。只能为每个远程数据库指定一个归档目标。必须为至少一个目标指定LOCATION 参数。
 log_archive_dest_1="LOCATION=/archive/ MANDATORY REOPEN"
 log_archive_dest_2="SERVICE=standby_db1 MANDATORY REOPEN=600"
 log_archive_dest_3="LOCATION=/archive2/ OPTIONAL"
• MANDATORY 表示必须成功完成归档到该目标的操作才可以覆盖联机重做日志文件。
• OPTIONAL 表示即使联机重做日志文件尚未成功地归档到该目标,也可以重新使用。这是缺省设置。
• REOPEN 属性定义发生故障时是否必须重新尝试归档到目标。如果为关键字REOPEN指定了值,如REOPEN=600,则若发生故障,在经过指定时间(以秒计)后,归档程序将尝试写入该目标。缺省值为300 秒。归档到目标的尝试次数没有限制。归档中的所有错误将在主站点的alert文件中报告。
•如果未指定REOPEN,则可选目标(指定了optional参数)上的错误将被记录并忽略。不再将重做日志发送到这些目标。在归档成功之前,强制目标上的错误将导致无法重新使用联机重做日志。只要归档不成功,归档目标的状态就设置为ERROR。
•可以使用联机重做日志文件之前需要成功归档的目标数量是根据以下设置决定的:
 定义为MANDATORY 的目标的数量
  LOG_ARCHIVE_MIN_SUCCEED_DEST 参数的值。该参数用于为需要归档的本地目标数指定一个下限值。如果该值小于强制本地目标的数量,则它对归档行为没有影响。如果该值大于强制本地目标的数量,则本地归档目标的数量必须至少等于该值,才可以重新使用联机重做日志文件。
例:假定LOG_ARCHIVE_MIN_SUCCEED_DEST 设置为2 。如果强制本地目标的数量为3,则必须归档这3 个位置,才可以重新使用联机重做日志文件。相反,如果强制本地归档目标的数量为1,则必须至少归档1 个可选本地归档目标,才可以重新使用联机重做日志文件。也就是说,LOG_ARCHIVE_MIN_SUCCEED_DEST 可以用于归档到一个或多个可选强制目标,但反过来不行。
LOG_ARCHIVE_DEST_STATE_n 参数:
例:
LOG_ARCHIVE_DEST_STATE_2 = DEFER
LOG_ARCHIVE_DEST_STATE_2 = ENABLE
ALTER SYSTEM SET log_archive_dest_state_3 = ENABLE;
ALTER SYSTEM SET log_archive_dest_state_3 = DEFER;
•归档目标的状态可以动态地进行更改。缺省情况下,归档目标是ENABLE 状态,表明Oracle 服务器可以使用该目标。
•归档目标的状态可以通过设置相应的LOG_ARCHIVE_DEST_STATE_n 参数来进行修改。例如,要在发生错误时暂时停止归档到强制位置,可以将该目标的状态设置为DEFER。在参数文件中可能定义了一个目标,但它设置为DEFER。当另一目标出现错误或需要维护时,可以启用该目标。
注:如果一个目标的状态设置为DEFER,则不会执行归档到该目标的操作。如果该目标的状态更改为ENABLE,则必须手动将所有缺失的日志归档到该目标。
•使用LOG_ARCHIVE_FORMAT 可在文件名中包括日志序列号和线程号。
文件名选项
• %s 或%S:包括日志序列号,作为文件名的一部分。
• %t 或%T:包括线程号,作为文件名的一部分。
•使用%S 可通过在值的左侧用0 来填补空位使该值长度保持固定。
相关视图
V$ARCHIVED_LOG
V$LOG_HISTORY
V$DATABASE
V$ARCHIVE_PROCESSES
V$ARCHIVE_DEST[/img]..
ORA-29807: specified operator does not exist


这是Oracle 的bug , 可以忽略掉,安装完成后,在$ORACLE_HOME/rdbms/admin 目录下运
行utlrp.sql ,用于修补ORA-29807 错误。
解释:
ORA-29807: specified operator does not exist
This is a known issue (bug 2925665). You can click on the "Ignore" button to continue.
Once DBCA has completed database creation, remember to run the 'prvtxml.plb' script
from $ORACLE_HOME/rdbms/admin independently, as the user SYS. It is also advised
to run the 'utlrp.sql..
2010-05-15 10:27:37
 
Instance恢复
概览

相关动态视图:
Oracle 服务器提供许多标准视图以获取有关数据库和例程的信息。这些视图包括:
• V$SGA:查询有关例程的以下各项的大小:共享池、日志缓冲区、数据缓冲区高速缓存以及固定内存大小(取决于操作系统)
• V$INSTANCE:查询例程的状态,如例程模式、例程名、启动时间和主机名
• V$PROCESS:查询为例程创建的后台进程和服务器进程
• V$BGPROCESS:查询为例程创建的后台进程
• V$DATABASE:列出数据库的状态和恢复信息。其中包括有关数据库名、数据库唯一标识符、创建日期、控制文件创建的日期和时间、最后一个数据库检查点的信息,以及其它信息。
• V$DATAFILE:列出数据库中包含的数据文件的位置和名称。其中包括文件编号和名称、创建日期、状态(联机/脱机)、启用状态(只读、读写)、最后一个数据文件检查点及文件大小等相关信息。
 
崩溃恢复阶段
1. 数据文件未同步。
2. 在高速缓存恢复期间或前滚阶段,重做日志文件中自上一个检查点之后记录的所有更改都将重新应用于这些数据文件。此阶段还重新生成还原或回退数据。
3. 数据文件中包含了已提交的更改,还可能包含未提交的更改。此时数据库处于open状态。
4.在事务处理恢复期间或回退阶段,尚未实际提交的任何更改都将被回退。
5.数据文件中只包含已提交的对数据库所做的更改。
 

优化例程恢复的持续时间
可以使用这三个初始化参数来影响Oracle 执行检查点的频率。
快速启动检查点可持续进行,只要写入块,检查点时间即会前移。完成恢复前滚阶段的目标(限定)时间可通过参数FAST_START_MTTR_TARGET 来指定,Oracle 将按照该目标时间要求自动调整检查点的写入频率。
建议您只使用FAST_START_MTTR_TARGET 参数,而不要再象在先前版本中那样组合使用FAST_START_IO_TARGET、LOG_CHECKPOINT_INTERVAL 和LOG_CHECKPOINT_TIMEOUT。FAST_START_MTTR_TARGET 可以最精确地控制恢复持
续时间,而且不需要手动为LOG_CHECKPOINT_INTERVAL 和LOG_CHECKPOINT_TIMEOUT 设置值。
动态视图V$INSTANCE_RECOVERY 提供了当前的恢复参数设置。
优化前滚阶段
RECOVERY_PARALLELISM 初始化参数用来指定例程或崩溃恢复操作中并发进程的数量。使用多个进程实际上相当于提供并行块恢复。在前滚阶段,不同的进程分配给不同的块。RECOVERY_PARALLELISM 初始化参数仅指定例程或崩溃恢复中并发恢复进程的数量。介质恢复不受此参数影响。
优化回退阶段
快速启动按需回退是一种自动功能,借助此功能,恢复操作的前滚阶段一结束,就可以立即开始新的事务处理。如果用户试图访问被死事务处理锁定的行,则仅回退完成该事务处理所需的更改。回退是根据需要进行的。
用户事务处理仅对该事务处理试图访问的块启动回退。剩余的块由SMON 在后台恢复(可能是并行的)。这样做的优势在于:不必等到一个较长事务的处理工作被全部回退即可完成另一个事务处理。
快速启动并行回退
快速启动并行回退使SMON 可以充当协调程序并使用多个服务器进程来完成回退操作。当SMON 确定死事务处理已生成大量的还原块时,它会自动启动并行回退。对于长时间运行事务处理的系统,特别是对执行并行的INSERT、UPDATE 和DELETE 操作的系统,该功能非常有用。
控制快速启动并行回退
事务处理恢复中所涉及的进程数量由动态初始化参数FAST_START_PARALLEL_ROLLBACK 设置。上表显示了该参数的有效值及其对快速启动并行回退的影响。
 

监视并行回退
• V$FAST_START_SERVERS
• V$FAST_START_TRANSACTIONS[/img]..
 
Dedicated Server Process


客户端连接只需建立一次tcp:

但根据在实际实验时看到的现象,dedicated server process并不是listener的子进程,如下所示:
$ ps -ef | grep oracle
oracle    3242 3201 0 03:52 pts/0    00:00:00 sqlplus  (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
oracle    3956     1 0 04:07 pts/0    00:00:00 /u01/oracle/bin/tnslsnr LISTENER -inherit
oracle    5563     1 4 12:46 pts/0   00:00:00 oraclelty (LOCAL=NO)
oracle    5564 3871 0 12:46 pts/0    00:00:00 ps -ef
oracle    5565 3871 0 12:46 pts/0    00:00:00 grep oracle
 
Shared Server
 <<   1   2   3   >>   页数 ( 1/3 )