oracle 10g数据库的异步提交
Oracle10gR2新特性:Asynchronous COMMIT
對(duì)于Oracle的commit機(jī)制,相信大家都已經(jīng)非常的熟悉了。Oracle對(duì)于commit采取了同步寫事務(wù)log的方式,也就是說(shuō),一旦發(fā)出commit命令,那么必須等待事務(wù)相關(guān)的所有redo都已經(jīng)從 log buffer寫出到redo logfile以后,才會(huì)控制權(quán)返回發(fā)出commit的進(jìn)程。
同步commit有兩個(gè)特點(diǎn):
1.Immediate,發(fā)出commit命令后,立即將redo寫出
2.Wait,在redo寫出過程中,必須等待
但是,Oracle10gR2開始,一種新的commit機(jī)制被引入,這就是異步commit機(jī)制。也就是說(shuō),不必等到事務(wù)相關(guān)redo寫出就可以返回了,異步commit也有兩種特點(diǎn):
1.Nowait,發(fā)出commit命令后,不關(guān)redo是否寫出,立即返回控制權(quán)
2.Batch,redo的寫出可以想buffer一樣執(zhí)行批量寫出,以提高性能
當(dāng)然,同步commit也可以batch,異步commit也可以將redo立即寫出,所以上述四個(gè)特性可以自由組合。
這樣,commit引入了新的語(yǔ)法:
COMMIT [WRITE [IMMEDIATE | BATCH] [WAIT | NOWAIT] ]
默認(rèn)情況下,commit的機(jī)制和以前一樣,也就是相當(dāng)于
COMMIT WRITE IMMEDIATE WAIT;
當(dāng)然,這個(gè)默認(rèn)機(jī)制可以通過初始化參數(shù)修改,所以O(shè)racle10gR2又引入了一個(gè)新的參數(shù)COMMIT_WRITE,可能的取值包括
COMMIT_WRITE='{ IMMEDIATE | BATCH } , { WAIT | NOWAIT }'
異步commit由于不能確保事務(wù)的redo已經(jīng)寫出到redo logfile當(dāng)中,一旦實(shí)例崩潰,可能導(dǎo)致已經(jīng)commit的事務(wù)無(wú)法恢復(fù),使用該特性的時(shí)候需要慎重考慮。
oracle視頻教程請(qǐng)關(guān)注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html
轉(zhuǎn)載于:https://blog.51cto.com/19880614/1262000
總結(jié)
以上是生活随笔為你收集整理的oracle 10g数据库的异步提交的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 查看Linux硬件信息命令的使用
- 下一篇: 丢失或损坏NDF文件如何附加数据库