Oracle redo 和undo

WBOY
リリース: 2016-06-07 17:04:52
オリジナル
981 人が閲覧しました

Oracle提交一个事务之前,必须做以下几件事情:①记住数据被修改前是什么样子的②记住数据即将要被改成什么样子③记住redo log和

事务提交前要做的事情

Oracle提交一个事务之前,必须做以下几件事情:

①记住数据被修改前是什么样子的

②记住数据即将要被改成什么样子

③记住redo log和undo log的关联

④将SGA中已读取到内存的数据修改为新的值(此时并未真正保存到数据文件)

其中第一步是通过在undo表空间中记录undo日志来完成的。第二步、第三步是通过向SGA中的redo日志缓冲区写记录来完成的。这样当事务回滚时就可以从redo日志找到对应的undo日志,,从而找回之前的数据

★要特别注意的是:此时不一定会触发DBWn进程。

★要特别注意的另一个地方是:第2步记录事务操作的改变是内存中进行的,还未写到磁盘上的redo日志文件

事务提交时所做的事情

①记录SCN值(System Change Number)

②将在线重做日志记录(位于SGA的redo日志缓冲区中)持久化到 redo日志文件

③Oracle释放资源和锁

④Oracle将事务标记为已结束

注意:只有在commit指令被发出后,才会将SGA中重做日志缓冲区的内容刷新到磁盘的redo日志文件。在LGWR进程执行前,重做日志一直存在于内存中,也被称为在线重做日志。

linux

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!