log添加 oracle redo_sql – RedoLog如何在Oracle中运行?

The First part of question:

据我所知,Oracle DB中的RedoLog用于保护数据库免受数据丢失.据我所知,RedoLog的一个例子就是在事务中断后恢复数据.例如,如果意外关闭电力.但我无法理解数据库应用程序更改重做日志DB下次唤醒后直接?数据库提交是否在redoLog中直接更改为DataFiles.或者它只是启动事务并更改缓冲区中的块并将它们标记为脏?但谁将这些脏块提交给DB文件?我怎么能继续被中断的交易?

Second part of the question:

如果我有这个DML in transacion:

让我们假设对于id = 1,a = 1

UPDATE test_table

SET a = (SELECT a FROM test_table WHERE id = 1) + 1

WHERE id = 1;

我只是在TEST_TABLE中增加了A.因此,如果事务失败,并且我的DML语句被写入RedoLog,则下次打开DB时将恢复它.但是,如果A的值随数据文件中的另一个数据库实例而改变,该怎么办? RedoLog中的重做更改向量是什么(实际上可能会发生,可能是在ORACLE RCA中吗?)它会增加旧值还是新值?

我为我糟糕的英语道歉.将欣赏任何答案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值