真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

oracle如何回滾事物 oracle提交后還能回滾嗎

oracle斷網(wǎng)后事務(wù)無法回滾

1、表存儲引擎不是InnoDB。

創(chuàng)新互聯(lián)是一家專業(yè)提供杭錦企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站制作、網(wǎng)站設(shè)計、H5高端網(wǎng)站建設(shè)、小程序制作等業(yè)務(wù)。10年已為杭錦眾多企業(yè)、政府機構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站制作公司優(yōu)惠進行中。

2、java調(diào)用數(shù)據(jù)庫代碼中,手動添加了tray....catch,造成未拋出異常。

3、spring回滾默認是RuntimeException異常,可指定回滾異常,@Transaction(RollbackFor=Exception.class)。

4、如果使用代理方式,應(yīng)指定代理使用CGLib@Scope(proxyMode=ScopedProxyMode.TARGET_CLASS)。

Oracle回滾段管理

回滾段管理一直是ORACLE數(shù)據(jù)庫管理的一個難題 本文通過實例介紹ORACLE回滾段的概念 用法和規(guī)劃及問題的解決 回滾段概述回滾段用于存放數(shù)據(jù)修改之前的值(包括數(shù)據(jù)修改之前的位置和值) 回滾段的頭部包含正在使用的該回滾段事務(wù)的信息 一個事務(wù)只能使用一個回滾段來存放它的回滾信息 而一個回滾段可以存放多個事務(wù)的回滾信息 回滾段的作用事務(wù)回滾 當(dāng)事務(wù)修改表中數(shù)據(jù)的時候 該數(shù)據(jù)修改前的值(即前影像)會存放在回滾段中 當(dāng)用戶回滾事務(wù)(ROLLBACK)時 ORACLE將會利用回滾段中的數(shù)據(jù)前影像來將修改的數(shù)據(jù)恢復(fù)到原來的值 事務(wù)恢復(fù) 當(dāng)事務(wù)正在處理的時候 例程失敗 回滾段的信息保存在重做日志文件中 ORACLE將在下次打開數(shù)據(jù)庫時利用回滾來恢復(fù)未提交的數(shù)據(jù) 讀一致性 當(dāng)一個會話正在修改數(shù)據(jù)時 其他的會話將看不到該會話未提交的修改 而且 當(dāng)一個語句正在執(zhí)行時 該語句將看不到從該語句開始執(zhí)行后的未提交的修改(語句級讀一致性) 當(dāng)ORACLE執(zhí)行SELECT語句時 ORACLE依照當(dāng)前的系統(tǒng)改變號(SYSTEM CHANGE NUMBER SCN)來保證任何前于當(dāng)前SCN的未提交的改變不被該語句處理 可以想象 當(dāng)一個長時間的查詢正在執(zhí)行時 若其他會話改變了該查詢要查詢的某個數(shù)據(jù)塊 ORACLE將利用回滾段的數(shù)據(jù)前影像來構(gòu)造一個讀一致性視圖 事務(wù)級的讀一致性O(shè)RACLE一般提供SQL語句級(SQL STATEMENT LEVEL)的讀一致性 可以用以下語句來實現(xiàn)事務(wù)級的讀一致性 SET TRANSACTION READ ONLY 或 SET TANNSACTION SERIALIZABLE 以上兩個語句都將在事務(wù)開始后提供讀一致性 需要注意的是 使用第二個語句對數(shù)據(jù)庫的并發(fā)性和性能將帶來影響 回滾段的種類系統(tǒng)回滾段 當(dāng)數(shù)據(jù)庫創(chuàng)建后 將自動創(chuàng)建一個系統(tǒng)回滾段 該回滾段只用于存放系統(tǒng)表空間中對象的前影像 非系統(tǒng)回滾段 擁有多個表空間的數(shù)據(jù)庫至少應(yīng)該有一個非系統(tǒng)回滾段 用于存放非系統(tǒng)表空間中對象的數(shù)據(jù)前影像 非系統(tǒng)回滾段又分為私有回滾段和公有回滾段 私有回滾段應(yīng)在參數(shù)文件的ROLLBACK SEGMENTS參數(shù)中列出 以便例程啟動時自動使其在線(ONLINE) 公有回滾段一般在OPS(ORACLE并行服務(wù)器)中出現(xiàn) 將在例程啟動時自動在線 DEFERED回滾段 該回滾段在表空間離線(OFFLINE)時由系統(tǒng)自動創(chuàng)建 當(dāng)表空間再次在線(ONLINE)時由系統(tǒng)自動刪除 用于存放表空間離線時產(chǎn)生的回滾信息 回滾段的使用分配回滾段 當(dāng)事務(wù)開始時 ORACLE將為該事務(wù)分配回滾段 并將擁有最少事務(wù)的回滾段分配給該事務(wù) 事務(wù)可以用以下語句申請指定的回滾段 SET TRANSTRACTION USE ROLLBACK SEGMENT rollback_segment事務(wù)將以順序 循環(huán)的方式使用回滾段的區(qū)(EXTENTS) 當(dāng)當(dāng)前區(qū)用滿后移到下一個區(qū) 幾個事務(wù)可以寫在回滾段的同一個區(qū) 但每個回滾段的塊只能包含一個事務(wù)的信息 例如(兩個事務(wù)使用同一個回滾段 該回滾段有四個區(qū)) 事務(wù)在進行中 它們正在使用回滾段的第三個區(qū) 當(dāng)兩個事務(wù)產(chǎn)生更多的回滾信息 它們將繼續(xù)使用第三個區(qū) 當(dāng)?shù)谌齻€區(qū)滿后 事務(wù)將寫到第四個區(qū) 當(dāng)事務(wù)開始寫到一個新的區(qū)時 稱為翻轉(zhuǎn)(WRAP) 當(dāng)?shù)谒膫€區(qū)用滿時 如果第一個區(qū)是空閑或非活動(使用該區(qū)的所有事務(wù)完成而沒有活動的事務(wù))的 事務(wù)將接著使用第一個區(qū) 回滾段的擴張(EXTEND)當(dāng)當(dāng)前回滾段區(qū)的所有塊用完而事務(wù)還需要更多的回滾空間時 回滾段的指針將移到下一個區(qū) 當(dāng)最后一個區(qū)用完 指針將移到第一個區(qū)的前面 回滾段指針移到下一個區(qū)的前提是下一個區(qū)沒有活動的事務(wù) 同時指針不能跨區(qū) 當(dāng)下一個區(qū)正在使用時 事務(wù)將為回滾段分配一個新的區(qū) 這種分配稱為回滾段的擴展 回滾段將一直擴展到該回滾段區(qū)的個數(shù)到達回滾段的參數(shù)MAXEXTENTS的值時為止 回滾段的回收和OPTIMAL參數(shù)OPTIMAL參數(shù)指明回滾段空閑時收縮到的位置 指明回滾段的OPTIMAL參數(shù)可以減少回滾段空間的浪費 創(chuàng)建回滾段語法 CREATE [PUBLIC] ROLLBACK SEGMENT rollback_segment [TABLESPACE tablespace] [STORAGE ([INITIAL integer[K|M]] [NEXT integer[K|M]] [MINEXTENTS integer] [MAXTENTS {integer|UNLIMITED}] [OPTIMAL {integer[K|M]|NULL}]) ]注 回滾段可以在創(chuàng)建時指明PRIVATE或PUBLIC 一旦創(chuàng)建將不能修改 MINEXTENTS 必須大于等于 PCTINCREASE必須是 OPTIMAL如果要指定 必須大于等于回滾段的初始大?。ㄓ蒑INEXTENTS指定)建議 一般情況下 INITIAL=NEXT設(shè)置OPTIMAL參數(shù)來節(jié)約空間的使用不要設(shè)置MAXEXTENTS為UNLIMITED回滾段應(yīng)創(chuàng)建在一個特定的回滾段表空間內(nèi)例 CREATE ROLLBACK SEGMENT rbs TABLESPACE rbs STORAGE ( INITIAL K NEXT K MINEXTENTS MAXEXTENTS OPTIMAL K);使回滾段在線當(dāng)回滾段創(chuàng)建后 回滾段是離線的 不能被數(shù)據(jù)庫使用 為了使回滾段被事務(wù)利用 必須將回滾段在線 可以用以下命令使回滾段在線 ALTER ROLLBACK SEGMENT rollback_segment ONLINE;例 ALTER ROLLBACK SEGMENT rbs ONLINE 為了使回滾段在數(shù)據(jù)庫啟動時自動在線 可以在數(shù)據(jù)庫的參數(shù)文件中列出回滾段的名字 例如在參數(shù)文件中加入以下一行 ROLLBACK_SEGMENT=(rbs rbs )修改回滾段的存儲參數(shù)可以使用ALTER ROLLBACK SEGMENT命令修改回滾段的存儲參數(shù)(包括OPTIMAL MAXEXTENTS) 語法 ALTER ROLLBACK SEGMENT rollback_segment[STORAGE ([NEXT integer[K|M]] [MINEXTENTS integer] [MAXEXTENTS {integer|UNLIMITED}] [OPTIMAL {integer[K|M]|NULL}]) ]例 ALTER ROLLBACK SEGMENT rbs STORAGE (MAXEXTENTS );回收回滾段的空間如果指定了回滾段的OPTIMAL參數(shù) ORACLE將自動回收回滾段到OPTIMAL指定的位置 用戶也可以手動回收回滾段的空間 語法 ALTER ROLLBACK SEGMENT rollback_segment SHRINK [TO integer [K|M]];說明 如果不指明TO integer的數(shù)值 ORACLE將試圖回收到OPTIMAL的位置 例 ALTER ROLLBACK SEGMENT rbs SHRINK TO M;使回滾段離線為了達到以下兩個目的將要回滾段離線 阻止新的事務(wù)使用該回滾段 該回滾段必須刪除 語法 ALTER ROLLBACK SEGMENT rollback_segment OFFLINE;例 ALTER ROLLBACK SEGMENT rbs OFFLINE;說明 如果有事務(wù)正在使用該回滾段 運行該命令后 回滾段的狀態(tài)將是PENDING OFFLINE 事務(wù)結(jié)束后 狀態(tài)將改為OFFLINE 可以通過V$ROLLSTAT查詢回滾段的狀態(tài) 刪除回滾段當(dāng)回滾段不再需要或要重建以改變INITIAL NEXT或MINEXTENTS參數(shù)時 可以將其刪除 要刪除回滾段 不許使該回滾段離線 語法 DROP ROLLBACK SEGMENT rollback_segment;例 DROP ROLLBACK SEGMENT rbs ;查詢回滾段的信息所用數(shù)據(jù)字典 DBA_ROLLBACK_SEGS可以查詢的信息 回滾段的標識(SEGMENT_ID) 名稱(SEGMENT_NAME) 所在表空間(TABLESPACE_NAME) 類型(OWNER) 狀態(tài)(STATUS) 例 SQLSELECT segment_name tablespace_name owner status FROM dba_rollback_segs;回滾段的統(tǒng)計信息數(shù)據(jù)字典 V$ROLLNAME V$ROLLSTAT例 SQLSELECT n name s extents s rssize s optsize s hwmsize s xacts s statusFROM v$rollname n v$rollstat sWHERE n usn=s usn;回滾段的當(dāng)前活動事務(wù)數(shù)據(jù)字典 V$SESSION V$TRANSACTION例 SQLSELECT s username t xidusn t ubafil t ubablk t used_ublkFROM v$session s v$transaction tWHERE s saddr=t ses_addr; USERNAMEXIDUSN UBAFIL UBABLKUSED_UBLK SYSTEM SCOTT lishixinzhi/Article/program/Oracle/201311/18942

oracle 如何通過事務(wù)回滾。

如果你的數(shù)據(jù)是相互不影響,就是沒有業(yè)務(wù)關(guān)聯(lián)的話,就回滾一條

如果相互有關(guān)系的話

那估計就回滾所有了

個人意見

希望對你有幫助


文章標題:oracle如何回滾事物 oracle提交后還能回滾嗎
本文網(wǎng)址:http://weahome.cn/article/hjoesh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部