新聞中心
描述
?SAVEPOINT?語句用來實現(xiàn)事務(wù)的部分回滾。

為榮昌等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及榮昌網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為成都做網(wǎng)站、網(wǎng)站制作、榮昌網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!
格式
- 創(chuàng)建?
SAVEPOINT?:
SAVEPOINT spname- 回滾到?
SAVEPOINT?:
ROLLBACK [WORK] to [SAVEPOINT] spname參數(shù)說明
|
參數(shù) |
描述 |
|---|---|
|
spname |
指定 |
示例
假設(shè)一個事務(wù)執(zhí)行了如下語句:
|
sql_no |
語句 |
分區(qū) |
|---|---|---|
|
1 |
update... |
p1, p4 |
|
savepoint sp1 |
||
|
2 |
update... |
p2, p4 |
|
3 |
update... |
p3, p5 |
|
savepoint sp2 |
||
|
4 |
update... |
p1, p3, p6 |
|
5 |
update... |
p1, p5 |
|
savepoint sp3 |
||
|
6 |
select... |
|
|
7 |
update... |
p5, p6 |
|
savepoint sp4 |
記錄 Savepoint
用戶在提交事務(wù)之前可以創(chuàng)建?SAVEPOINT?,需要根據(jù)?SAVEPOINT?創(chuàng)建的順序,將事務(wù)的?SAVEPOINT?串成鏈表。以上事務(wù)包含了 7 條 SQL 和 4 個?SAVEPOINT?,記錄?SAVEPOINT?的鏈表如下圖所示,其中每個節(jié)點記錄了??的映射關(guān)系:
事務(wù)參與者列表
事務(wù)為了支持回滾某條 SQL 之后的所有修改,需要將每條語句涉及的參與者以及對應(yīng)的 ?sql_no? 記錄下來,以上事務(wù)執(zhí)行了 7 條 SQL,涉及 p1~p6 共 6 個分區(qū):
Savepoint 回滾過程
- 根據(jù)?
SAVEPOINT?鏈表查詢?spname?對應(yīng)的?sql_no?假設(shè)用戶執(zhí)行?ROLLBACK to SAVEPOINT sp2?,根據(jù)savepoint鏈表查詢到 sp2 對應(yīng)的?sql_no?為 3。 - 根據(jù)事務(wù)參與者列表查詢?
sql_no?對應(yīng)的分區(qū)根據(jù)事務(wù)參與者列表查詢到?sql_no?大于 3 的語句操作的分區(qū)涉及 p1、p3、p5、p6。 - 回滾分區(qū)數(shù)據(jù)根據(jù)第 2 步查詢到的分區(qū),調(diào)度程序向這些分區(qū)發(fā)起回滾請求,回滾當前事務(wù)在這些分區(qū)上 sp2 之后的所有修改。其中 p1、p3、p5 上關(guān)于本事務(wù)的部分修改被回滾掉,p6 上關(guān)于本事務(wù)的所有修改都被回滾掉。
- 更新事務(wù)參與者列表信息修改事務(wù)參與者列表,將?
sql_no?大于 3 的操作信息從事務(wù)參與者列表中刪除,由于 p6上的所有修改都被回滾掉,因此 p6 可以從參與者列表中刪除。 - 刪除無效的 Savepoint用戶執(zhí)行?
ROLLBACK to SAVEPOINT sp2?成功后,系統(tǒng)會刪除 sp3 和 sp4 的SAVEPOINT,不允許再回滾到 sp3 和 sp4。
網(wǎng)站名稱:創(chuàng)新互聯(lián)OceanBase教程:OceanBaseSAVEPOINT
當前路徑:http://www.fisionsoft.com.cn/article/dpohece.html


咨詢
建站咨詢
