程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> 獲得當前數據庫SCN值的方法

獲得當前數據庫SCN值的方法

編輯:更多數據庫知識

首先,我們先來介紹一下SCN(系統改變號),它的英文全拼為:System Change Number ,它是數據庫中非常重要的一個數據結構。

SCN提供了Oracle的內部時鐘機制,可被看作邏輯時鐘,這對於恢復操作是至關重要的

注釋:Oracle 僅根據 SCN 執行恢復。

它定義了數據庫在某個確切時刻提交的版本。在事物提交時,它被賦予一個唯一的標示事物的SCN 。一些人認為 SCN 是指, System Commit Number ,而通常 SCN 在提交時才變化,所以很多情況下,

這兩個名詞經常被交替使用。

究竟是哪個詞其實對我們來說並不是最重要的,重要的是我們知道 SCN 是 Oracle 內部的時鐘機制, Oracle 通過 SCN 來維護數據庫的一致性,並通過SCN 實施 Oracle 至關重要的恢復機制。

下面我們來介紹一下獲得當前SCN的幾種有效方式:

一.在Oracle9i中,可以使用dbms_flashback.get_system_change_number來獲得

示例:

以下為引用的內容:

SQL> select dbms_flashback.get_system_change_number from dual;

GET_SYSTEM_CHANGE_NUMBER
------------------------
                 2982184

二.在Oracle9i之前你可以通過查詢x$ktuxe來獲得

以下為引用的內容:

X$KTUXE---[K]ernel [T]ransaction [U]ndo Transa[x]tion [E]ntry (table)

SQL> select max(ktuxescnw*power(2,32)+ktuxescnb) from x$ktuxe;

MAX(KTUXESCNW*POWER(2,32)+KTUXESCNB)
---------------------
                     2980613

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved