[Oracle維護工程師手記系列]為什麼flashback 的時候既需要 flashback log ,又需要 archive log?

來源:互聯網
上載者:User

標籤:一個   就是   例子   oracl   維護   hive   時間   flashback   acl   

為什麼flashback 的時候既需要 flashback log ,又需要 archive log 呢?

如果資料庫的活動不是很頻繁,可以看到,其flashback log 是比較小的。那麼是通過怎樣的方式 flashback 到過去的呢?

示意如下:

12:50 第一次更改資料(100-->200)

       1:00 進行 第一次 flashback log 寫入。 記錄內容是 更改前的資料:100

1:10 第二次更改資料(200-->300)

        1:30 再進行下一次flashback log 寫入。 記錄內容是 更改前的資料:200

1:45 第三次更改資料(300-->400)

        2:00 再進行下一次flashback log 寫入。 記錄內容是 更改前的資料:300

2:20 第四次更改資料(400-->500)

        2:30 再進行下一次flashback log 寫入。 記錄內容是 更改前的資料:400

2:40 第五次更改資料(500-->600)

       3:00 再進行下一次flashback log 寫入。 記錄內容是 更改前的資料:500

 

如果想要 flashback   到 1:15 時刻,

資料庫需要先找到最靠近這個時間點的之前的 flashback log 的時刻。

也就是 1:00 是的 flashback 的內容,用這個內容覆當前的資料,然後再吧 1:00 到 1:15 的 archive log 的內容 apply 此資料上。

 

上面舉的例子是一個資料區塊的變更,資料庫運行中有多個資料區塊被在不同時刻修改。所以真實的 flashback 是這樣的一個過程:

 比如現在是 3:10分,想要回到1:15 時刻,那麼要經過如下的過程:

先利用 3:00 的 flashback ,用其中的更改前的資料, 回到3:00 的時刻的狀態。

再利用 2:30 的 flashback ,用其中的更改前的資料, 回到2:30 的時刻的狀態。

再利用 2:00 的 flashback ,用其中的更改前的資料, 回到2:00 的時刻的狀態。

再利用 1:30 的 flashback ,用其中的更改前的資料, 回到1:30 的時刻的狀態。

再利用 1:00 的 flashback ,用其中的更改前的資料, 回到1:00 的時刻的狀態。

然後,再利用 1:00 到 1:15 的archive log 內容,apply後達到 1:15 時刻的狀態。

[Oracle維護工程師手記系列]為什麼flashback 的時候既需要 flashback log ,又需要 archive log?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.