日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
Oracle檢索數(shù)據(jù)一致性與事務(wù)恢復(fù)

Oracle為了保證用戶檢索數(shù)據(jù)的一致性, 通過UNDO記錄,當(dāng)用戶檢索數(shù)據(jù)庫數(shù)據(jù)時,Oracle總是使用戶只能看到被提交過的數(shù)據(jù)或特定時間點的數(shù)據(jù)(select語句時間點),UNDO記錄會被存放到回滾段中,假如該數(shù)據(jù)未提交,用戶檢索數(shù)據(jù)時,都是從UNDO記錄中取得的.(如下圖:)

在連山等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供網(wǎng)站設(shè)計制作、網(wǎng)站設(shè)計 網(wǎng)站設(shè)計制作按需網(wǎng)站制作,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),營銷型網(wǎng)站建設(shè),外貿(mào)網(wǎng)站制作,連山網(wǎng)站建設(shè)費用合理。

 

1. ORACLE檢索數(shù)據(jù)一致性

先打開一個SecureCRT.(第一個session)

先建一個表

 
 
 
 
  1. SQL> create table c(a int);  
  2. Table created.  
  3. SQL> alter table c add b number;  
  4. Table altered.  
  5. SQL> desc c   
  6.  Name                                      Null?    Type  
  7.  ----------------------------------------- -------- --------------------------------------------  
  8.  A                                                  NUMBER(38)  
  9.  B                                                  NUMBER  

表中插入數(shù)據(jù)并提交

 
 
 
 
  1. SQL> insert into c values(1,2);  
  2. 1 row created.  
  3. SQL> insert into c values(3,4);  
  4. 1 row created.  
  5. SQL> select * from c;  
  6.          A          B  
  7. ---------- -----------------------------  
  8.          1          2  
  9.          3          4  
  10. SQL> commit;  
  11. Commit complete.  

再打開一個SecureCRT.(第二個session)

查詢

 
 
 
 
  1. SQL> select * from c;  
  2.          A          B  
  3. ---------- --------------------------  
  4.          1          2  
  5.          3          4  

第一個session更改表中的數(shù)據(jù)但不提交

 
 
 
 
  1. SQL> update c set b=10 where a=1;  
  2. 1 row updated.  

第二個session查詢(修改但沒有提交檢索的是UNDO中的數(shù)據(jù))

 
 
 
 
  1. SQL> select * from c;  
  2.          A          B  
  3. ---------- --------------------------  
  4.          1          2  
  5.          3          4  

第一個session提交

 
 
 
 
  1. SQL> commit;  
  2. Commit complete.  

第二個會話查詢(可見只有提交后才能檢索到數(shù)據(jù)段的數(shù)據(jù))

 
 
 
 
  1. SQL> select * from c;  
  2.          A          B  
  3. ---------- -------------------------  
  4.          1         10  
  5.          3          4  

結(jié)論:如果用戶修改數(shù)據(jù)但沒有提交,其它用戶檢索的都是UNDO段的數(shù)據(jù),這樣就保證了數(shù)據(jù)的一致性

2.回滾數(shù)據(jù)(事務(wù)恢復(fù))

1.當(dāng)用戶updata數(shù)據(jù)但還沒有提交

 
 
 
 
  1. SQL> select * from c;  
  2.          A          B  
  3. ---------- -----------------------------  
  4.          1          10  
  5.          3          4  
  6. SQL> update c set b=2 where a=1;  
  7. SQL> select * from c;  
  8.          A          B  
  9. ---------- -----------------------------  
  10.          1          2  
  11.          3          4  

這時用戶突然后悔了,想恢復(fù)到原來的狀態(tài)

 
 
 
 
  1. SQL> rollback;  
  2. Rollback complete.  
  3. SQL> commit;  
  4.    
  5. SQL> select * from c;  
  6.          A          B  
  7. ---------- -----------------------  
  8.          1         10  
  9.          3          4  

可見當(dāng)用戶用命今rollback還能回滾到初始狀態(tài).
 
2.當(dāng)用戶updata數(shù)據(jù)且已提交

當(dāng)用戶updata數(shù)據(jù)且已提交后,可以根據(jù)SCN記錄把數(shù)據(jù)還源.

先查看原始數(shù)據(jù)

 
 
 
 
  1. SQL> select * from c;  
  2.          A          B  
  3. ---------- ----------  
  4.          1         10  
  5.          3          4  

找到SCN

 
 
 
 
  1. SQL> select current_scn from v$database;  
  2. CURRENT_SCN  
  3. -----------  
  4.      693636  

現(xiàn)在刪除表中的數(shù)據(jù)并提交

 
 
 
 
  1. SQL> delete from c;  
  2. rows deleted.  
  3. SQL> commit;         
  4. Commit complete.  

查詢(現(xiàn)在表中已沒有數(shù)據(jù)了)

 
 
 
 
  1. SQL> select * from c;  
  2. no rows selected  

檢索特定SCN的數(shù)據(jù)

 
 
 
 
  1. SQL> select * from c as of scn 693636;  
  2.          A          B  
  3. ---------- ----------  
  4.          1         10  
  5.          3          4  

恢復(fù)數(shù)據(jù)

 
 
 
 
  1. SQL> insert into c select * from c as of scn 693636;  
  2. rows created.  
  3. SQL> commit;  
  4. Commit complete.  

現(xiàn)在再查詢

 
 
 
 
  1. SQL> select * from c;  
  2.          A          B  
  3. ---------- ----------------------  
  4.          1         10  
  5.          3          4  

可見可以根據(jù)SCN恢復(fù)到某一檢查點的數(shù)據(jù),如果把SCN轉(zhuǎn)換成時間,,就可以把數(shù)據(jù)恢復(fù)到某一時間點.

以上,介紹了ORACLE檢索數(shù)據(jù)一致性與事務(wù)恢復(fù)的方法。本文出自 “追求” 博客,欲與本文博主交流,請點擊這里。

【編輯推薦】

  1. 超大型Oracle數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計方法
  2. 創(chuàng)建Oracle數(shù)據(jù)庫索引的三個標(biāo)準(zhǔn)
  3. Oracle性能優(yōu)化借助分區(qū)技術(shù)實現(xiàn)
  4. Oracle并發(fā)處理機(jī)制的簡單看法
  5. Oracle中被鎖定的解決辦法

名稱欄目:Oracle檢索數(shù)據(jù)一致性與事務(wù)恢復(fù)
地址分享:http://www.5511xx.com/article/dpohdsc.html