国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

ORACLE回滾段管理(上)

2024-08-29 13:30:17
字體:
供稿:網(wǎng)友
回滾段管理一直是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ù)級的讀一致性 oracle一般提供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ū)): 1、事務(wù)在進(jìn)行中,它們正在使用回滾段的第三個區(qū); 2、當(dāng)兩個事務(wù)產(chǎn)生更多的回滾信息,它們將繼續(xù)使用第三個區(qū); 3、當(dāng)?shù)谌齻€區(qū)滿后,事務(wù)將寫到第四個區(qū),當(dāng)事務(wù)開始寫到一個新的區(qū)時,稱為翻轉(zhuǎn)(wrap); 4、當(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ù)到達(dá)回滾段的參數(shù)maxextents的值時為止。 回滾段的回收和optimal參數(shù) optimal參數(shù)指明回滾段空閑時收縮到的位置,指明回滾段的optimal參數(shù)可以減少回滾段空間的浪費。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 宁河县| 米林县| 翁源县| 游戏| 精河县| 攀枝花市| 衡东县| 筠连县| 西乡县| 临城县| 兴仁县| 宁波市| 江门市| 大悟县| 景泰县| 丰镇市| 房产| 许昌县| 郴州市| 阳高县| 北票市| 鄂伦春自治旗| 大丰市| 达州市| 鄂州市| 兰坪| 滁州市| 徐闻县| 清水河县| 龙里县| 乌拉特前旗| 休宁县| 扬州市| 手游| 焦作市| 兴义市| 怀宁县| 郓城县| 邵阳县| 霍林郭勒市| 宁乡县|