基於時間戳閃回資料庫
基於時間戳的閃回資料庫更多使用,我在前面的一篇博文中也有所提到,基於時間戳(timestamp)與基於SCN兩種的閃回技術,都可以相互
轉換,轉換函式為:timestamp_to_scn() 與 scn_to_timestamp(),只要便於知道哪一個為先,就用哪一種。
以下讓我們一起進入Scott使用者建立一個實驗表來驗證基於時間戳的閃回資料庫技術:
1、登入Scott使用者:
conn scott/tiger0520
2、建立實驗表,插入資料並查詢:
SQL> create table fbdb_time as select * from fbdb_scn where 1=2;
Table created.
第一條資料
SQL> insert into fbdb_time select 1 as
2 id,dbms_flashback.get_system_change_number as scn,
3 sysdate as dd from dual;
第二條資料
SQL> insert into fbdb_time select 2 as
2 id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;
1 row created.
SQL> commit;
Commit complete.
第三條資料
SQL> insert into fbdb_time select 3 as
2 id,dbms_flashback.get_system_change_number as scn,sysdate as dd from dual;
1 row created.
SQL> commit;
Commit complete.
SQL> select * from fbdb_time;
ID SCN DD
---------- ---------- -------------------
1 781596 2016-10-02 10:24:18
2 781618 2016-10-02 10:25:24
3 781629 2016-10-02 10:25:45
3、同樣的,刪除使用者Scott模擬損壞資料庫:
SQL> drop user scott cascade;
User dropped.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL>
4、開啟資料庫到mount狀態,並逐步驗證資料庫的恢復狀況:
SQL> startup mount;
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 587205712 bytes
Database Buffers 243269632 bytes
Redo Buffers 2371584 bytes
Database mounted.
SQL>flashback database to timestamp sysdate-15/1440 ;Flashback complete.
SQL> alter database open read only;
此時,檢視資料是否閃回到預期的狀態SQL> select * from fbdb_time;
ID SCN DD
---------- ---------- -------------------
1 781596 2016-10-02 10:24:18
此時發現,還沒有完全恢復我們繼續關閉資料庫,再次進行恢復
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 587205712 bytes
Database Buffers 243269632 bytes
Redo Buffers 2371584 bytes
Database mounted.
閃回資料庫到時間點為2016-10-02 10:25:30,開啟到只讀狀態,並查詢資料:
SQL> flashback database to timestamp
2 to_date('2016-10-02 10:25:30','yyyy-mm-dd hh24:mi:ss');
Flashback complete.
SQL> alter database open read only;
SQL> select * from fbdb_time;
ID SCN DD
---------- ---------- -------------------
1 781596 2016-10-02 10:24:18
2 781618 2016-10-02 10:25:24
這時候,比上一次的閃回,查詢到多了一條資料,這樣算儘量地恢復完整,降低資料的損失率這下,我們就放心再次關閉資料庫,閃回到時間點為2016-10-02 10:25:30時的狀態,並以
alter database open RESETLOGS方式開啟資料庫
SQL> shutdown abort;
ORACLE instance shut down.
SQL> startup mount;
ORACLE instance started.
Total System Global Area 835104768 bytes
Fixed Size 2257840 bytes
Variable Size 587205712 bytes
Database Buffers 243269632 bytes
Redo Buffers 2371584 bytes
Database mounted.
SQL> alter database open RESETLOGS;
Database altered.
SQL> select * from scott.fbdb_time;
ID SCN DD
---------- ---------- -------------------
1 781596 2016-10-02 10:24:18
2 781618 2016-10-02 10:25:24
這樣,多次驗證在沒有的資料丟失的情況下,我們可以以RESETLOGS方式開啟資料庫。
注意:
基於事件的閃回一般都沒有準確的閃回時間點,那麼就需要我們做到儘量精確,把資料的損失降低到
以 最小,那麼就需要我們多次的重複以 read only 方式開啟資料庫。就像一個形容包子餡兒小的笑話說的
那樣:“吃包子,第一口沒吃到餡兒,第二口,過去了”。我們基於時間的閃回資料庫也是一樣,不要衝動
接 的大約一個時間閃回,閃回完成後就直接 resetlogs 開啟,只要以 resetlogs 開啟後,就不可逆了,
的 作為合格的 DBA ,一定要把損失控制到最小,所以,要多次以 read only 方式 開啟驗證才是上策。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2125842/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 騰訊基於全時態資料庫技術的資料閃回資料庫
- Oracle資料庫閃回區空間不足Oracle資料庫
- Oracle資料庫閃回Oracle資料庫
- ODI基於源表時間戳欄位獲取增量資料時間戳
- Oracle閃回技術 為Oracle閃回配置資料庫Oracle資料庫
- 詳解oracle資料庫閃回Oracle資料庫
- Oracle 閃回資料庫測試Oracle資料庫
- dg_閃回資料庫實驗資料庫
- 基於percona xtrabackup之innobackupex實現基於時間點資料庫恢復資料庫
- 獲取時間戳,幾個時間點的時間戳時間戳
- MySQL時間戳、時間MySql時間戳
- MySQL 資料庫技巧:批次更新隨機生成的時間戳欄位MySql資料庫隨機時間戳
- 備份與恢復:Polardb資料庫資料基於時間點恢復資料庫
- ORACLE資料庫基於時間點的不完全恢復Oracle資料庫
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- JavaScript 時間戳JavaScript時間戳
- kafka時間戳Kafka時間戳
- flashback query閃回資料
- Restcloud ETl資料通過時間戳實現增量資料同步RESTCloud時間戳
- 【Oracle 12c資料庫支援閃回庫功能】實驗Oracle資料庫
- VNPY2 中凌晨0點時間戳的處理問題,和夜盤資料時間戳分析時間戳
- C# 時間戳轉時間C#時間戳
- 時間型別和時間戳型別時間戳
- 關於Oracle資料庫的時間查詢Oracle資料庫
- PostgreSQL 併發控制機制(3):基於時間戳的併發控制SQL時間戳
- 兩個時間戳的時間差時間戳
- 時間戳轉化為時間格式時間戳
- Excel中時間戳轉換時間Excel時間戳
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- C++資料格式化4 - 格式化時間戳C++時間戳
- SAP CRM One Order header資料庫表幾個和時間戳相關的欄位Header資料庫時間戳
- 【時間戳轉普通時間格式的方法】時間戳
- Unix 時間戳與日期時間戳
- 格式化時間 戳
- my2sql資料閃回SQL
- c++ 獲取當前時間周初凌晨時間戳(獲取當前時間週一凌晨時間戳)C++時間戳
- 工具分享丨資料閃回工具MyFlash
- Orcale利用閃回功能恢復資料
- 《Lua-in-ConTeXt》05:時間戳Context時間戳