oracle 10g数据库的异步提交

Oracle10gR2新特性:Asynchronous COMMIT

对于Oracle的commit机制,相信大家都已经非常的熟悉了。Oracle对于commit采取了同步写事务log的方式,也就是说,一旦发出commit命令,那么必须等待事务相关的所有redo都已经从 log buffer写出到redo logfile以后,才会控制权返回发出commit的进程。

同步commit有两个特点:

1.Immediate,发出commit命令后,立即将redo写出

2.Wait,在redo写出过程中,必须等待

但是,Oracle10gR2开始,一种新的commit机制被引入,这就是异步commit机制。也就是说,不必等到事务相关redo写出就可以返回了,异步commit也有两种特点:

1.Nowait,发出commit命令后,不关redo是否写出,立即返回控制权

2.Batch,redo的写出可以想buffer一样执行批量写出,以提高性能

当然,同步commit也可以batch,异步commit也可以将redo立即写出,所以上述四个特性可以自由组合。

本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/Oracle/

这样,commit引入了新的语法:

COMMIT [WRITE [IMMEDIATE | BATCH] [WAIT | NOWAIT] ]

默认情况下,commit的机制和以前一样,也就是相当于

COMMIT WRITE IMMEDIATE WAIT;

当然,这个默认机制可以通过初始化参数修改,所以Oracle10gR2又引入了一个新的参数COMMIT_WRITE,可能的取值包括

COMMIT_WRITE='{ IMMEDIATE | BATCH } , { WAIT | NOWAIT }'

异步commit由于不能确保事务的redo已经写出到redo logfile当中,一旦实例崩溃,可能导致已经commit的事务无法恢复,使用该特性的时候需要慎重考虑。

51cto博客 Oracle小混子

时间: 2024-12-26 23:14:31

oracle 10g数据库的异步提交的相关文章

iReport无法连接Oracle 10g数据库

环境:WinXP.iReport1.2.8.Oracle 10g数据库安装完成iReport1.2.8后,在进行数据库连接时,采用JDBC的方式连接Oracle 10g数据库,连接设置如下图: 以上的配置完全正确,但在点击"Test"按钮时出现:ClassNotFoundError:oracle.jdbc.driver.oracleDriver Check your classpath!的错误码,如下图所示:原因很简单:主要因为iReport没有找到Oracle10g的jdbc驱动,在

【ORACLE】relink oracle 10g 数据库

通常要迁移一个数据库,我们会使用 1 冷备份,整个数据库迁移, 2 rman duplicate 功能进行复制到本机或者复制到异机, 前面两种都必须先在目标库上安装软件.这里测试另外一种方法:对于单实例数据库,复制整个oracle 10g 数据库到另一个服务器,relink 之后可以重新使用.. 查看源库数据库库文件在$ORACLE_BASE 目录下的分布: oracle@yangDB1:/opt/oracle>ll 总计 36 drwxrwx--- 3 oracle oinstall 4096

RedHat As 5.5 安装 Oracle 10g数据库

一.安装环境 System : RedHat As 5.5 Oracle Version : Oracle 10g 二.准备安装 1.修改/etc/redhat-release内容为 redhat-4 2.创建Oracle相关的用户及目录 将用户切换到root帐号,进行登录 # su - 创建oracle相关的用户组,用户 # groupadd oinstall # groupadd dba # useradd oracle -g oinstall -G dba 修改oracle用户的密码 #p

sql登陆不上-PL SQL突然连不上oracle 10G数据库了,以前能的,现在用sqlplus也可以连上

问题描述 PL SQL突然连不上oracle 10G数据库了,以前能的,现在用sqlplus也可以连上 我的服务都开启了,监听也配好了,然后就是用pl sql 直接登陆就登不上去,但是我先用sql plus 登陆一下,然后再用pl sql 登陆就可以登上去了,不知道这是为什么? 解决方案 在oracle 10g的configuration and Migration tools下的Net Manager测试下连接登陆不上报的啥错误?

oracle数据库-我在装完Oracle 10g数据库后,出现了错误

问题描述 我在装完Oracle 10g数据库后,出现了错误 (提示:无法初始化oracle调用界面:ORACLE不能正常工作) 在SQL plus 输入用户名和口令后,出现了如图一样的错误,请问有没有遇见过类似的问题,望解答 解决方案 看不到图....重装系统 一般都好用

Oracle 10g数据库中的Services

基于RAC环境中使用的应用程序,有时候希望某个特定的应用程序仅仅运行在RAC的子节点,或者说为某些应用程序分配一个首要节点.对此,Oracle 10g可以使用services来实现. 一.集群配置 在使用services之前,需要首先检查集群的配置是否正确. 下面的命令输出了数据库ORCL运行于三个不同的节点. srvctl config database -d ORCL server01 ORCL1 /u01/app/oracle/product/10.1.0/db_1 server02 OR

如何将Oracle 9i快速升级至Oracle 10g数据库

1.在安装好Oracle 10g软件的目标服务器上创建和源数据库9i 数据文件,控制文件,redo文件相同的目录(两台数据库的数据文件的位置必须相同,否则就需要使用alter database rename file '原位置'  to '目标位置') 2.由关闭源数据库9i,拷贝9i的数据文件,控制文件,redo文件,密码文件,初始化参数文件,spfile 文件等,到目标数据库10g相应的位置. 3.根据实际情况修改listener.ora tnsnames.ora 中的相关参数 4.用sys

ORACLE 10g 数据库体系结构图

ORACLE 10g 的数据库体系结构图(ORACLE 10g(Release 2)ARCHITECTURE),非常的全面.系统.高屋建瓴的整体介绍了ORACLE 10g 的数据库体系结构.如果能全面了解.清晰梳理.深入掌握这些知识点,相信对你了解学习.深入研究ORACLE不无裨益.如果图片放大展示不够清晰,请参考 我上传的PDF附件ORACLE_10g_ARCHITECTURE.pdf

oracle 10g数据库采用批处理命令备份表

今天看一朋友在做数据库备份时采用批处理命令备份表 ,在在oracle 10g中是多么方便的一件事情哦,下面我们来看看. 说明: 1.我用的是oracle 10g的数据库,导出的是scott用户下的emp和dept表: 2.导出的备份文件我放在 D:pantpbackup 3.数据库scott用户的密码为orcl: 4.数据库的SID为ORCL; 5.数据库导出的备份文件名为daochu加上今天的日期,比如 daochu_20120725.dmp 5.我的oracle安装路径是D盘的根目录: