成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Oracle檢索數據一致性與事務恢復

數據庫 Oracle 數據庫運維
本文介紹在Oracle中檢索數據一致性的方法,以及用戶想要回滾數據(做事務恢復)的兩種情況以及處理方法。Oracle為了保證用戶檢索數據的一致性,通過UNDO記錄,當用戶檢索數據庫數據時,Oracle總是使用戶只能看到被提交過的數據或特定時間點的數據。

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

從UNDO記錄中取得 

1. ORACLE檢索數據一致性

先打開一個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  

表中插入數據并提交

  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更改表中的數據但不提交

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

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

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

第一個session提交

  1. SQL> commit;  
  2. Commit complete.  

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

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

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

2.回滾數據(事務恢復)

1.當用戶updata數據但還沒有提交

  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  

這時用戶突然后悔了,想恢復到原來的狀態

  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  

可見當用戶用命今rollback還能回滾到初始狀態.
 
2.當用戶updata數據且已提交

當用戶updata數據且已提交后,可以根據SCN記錄把數據還源.

先查看原始數據

  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  

現在刪除表中的數據并提交

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

查詢(現在表中已沒有數據了)

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

檢索特定SCN的數據

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

恢復數據

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

現在再查詢

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

可見可以根據SCN恢復到某一檢查點的數據,如果把SCN轉換成時間,,就可以把數據恢復到某一時間點.

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

【編輯推薦】

  1. 超大型Oracle數據庫應用系統的設計方法
  2. 創建Oracle數據庫索引的三個標準
  3. Oracle性能優化借助分區技術實現
  4. Oracle并發處理機制的簡單看法
  5. Oracle中被鎖定的解決辦法
責任編輯:yangsai 來源: 51CTO“追求”博客
相關推薦

2023-12-01 13:51:21

數據一致性數據庫

2017-08-25 10:16:00

2024-12-26 15:01:29

2023-09-07 08:11:24

Redis管道機制

2025-03-27 08:20:54

2023-11-20 09:28:44

2024-07-04 12:36:50

2019-11-21 10:19:45

數據應用場景系統

2021-12-05 21:06:27

軟件

2021-10-18 10:30:59

流計算阿里云

2023-05-26 07:34:50

RedisMySQL緩存

2022-02-17 21:04:27

數據庫MysqlRedis

2021-10-13 09:55:11

流計算引擎數據

2024-08-20 16:13:52

2017-07-25 14:38:56

數據庫一致性非鎖定讀一致性鎖定讀

2025-03-27 03:00:00

2023-09-24 14:35:43

Redis數據庫

2024-12-19 21:09:38

2021-12-14 07:15:57

MySQLRedis數據

2023-11-22 12:55:59

微服務架構數據庫
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 中文字幕在线观看视频一区 | 午夜看看 | 成人免费一区二区 | 久草a√| 欧美日韩国产免费 | 久热精品视频 | 国产精品久久片 | 人人九九精 | 日韩成人免费视频 | 免费在线观看一区二区 | 日韩av一区二区在线观看 | 国产精品综合久久 | 九九热视频这里只有精品 | 亚洲欧美在线观看 | 免费观看一级黄色录像 | 精品国产成人 | 日韩精品一区在线观看 | 久久久精 | 国产成人免费视频 | 精品一区二区三区免费视频 | 午夜精品久久久久久久星辰影院 | 日韩欧美一区二区三区 | 日本网站免费观看 | 精品欧美一区二区久久久伦 | 亚洲精品中文字幕中文字幕 | 午夜影院操 | 亚洲一区二区av | 天天操天天玩 | 日韩成人精品在线观看 | 精品视频久久久久久 | 欧美日韩在线国产 | 欧美日韩黄色一级片 | 国产高清在线精品 | 羞羞的视频在线看 | 国产欧美精品一区二区 | 亚洲精品久久久久国产 | 日韩一二区 | 99精品免费| 毛色毛片免费看 | 国产一级视频在线播放 | 日韩成人在线观看 |