升級失敗後,資料庫降級方案(flashback database)
升級失敗後,資料庫降級方案(flashback database)
環境:Oracle 11.2.0.1 rac on redhat 5.8
Flashback database準備工作
檢視是否flashback database功能
sys@RACDB> select log_mode,open_mode,flashback_on from v$database;
LOG_MODE OPEN_MODE FLASHBACK_ON
------------ -------------------- ------------------
ARCHIVELOG READ WRITE NO --未開啟flashback database 功能
檢視是否設定了閃回目錄、閃回目錄空間大小
sys@RACDB> show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string
db_recovery_file_dest_size big integer 0
--顯然我們沒有設定,下面為設定後
alter system set db_recovery_file_dest='+DATA' scope=spfile sid='*'; --重啟後生效
alter system set db_recovery_file_dest_size=4g;
sys@RACDB> show parameter db_recovery
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest string +DATA
db_recovery_file_dest_size big integer 4G
設定閃回保留期
sys@RACDB> show parameter db_flashback
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target integer 1440 --預設單位為分鐘
Flashback database開啟工作
開啟flashback database功能
sys@RACDB> alter database flashback on;
Database altered.
sys@RACDB> select status from gv$instance;
STATUS
------------
OPEN
OPEN
sys@RACDB> select log_mode,open_mode,flashback_on from v$database;
LOG_MODE OPEN_MODE FLASHBACK_ON
------------ -------------------- ------------------
ARCHIVELOG READ WRITE YES –-開啟了flashback database功能
oracle 10.2.0.1
開啟flashback database需要在mount,且只有一個例項的情況下,否則會報錯
ORA-38759: Database must be mounted by only one instance and not open.
oracle 11.2.0.1
開啟flashback database在open狀態下,且多個例項共存,沒有任何問題
select oldest_flashback_scn old_flhbck_scn,oldest_flashback_time old_flhbck_tim,
retention_target rete_trgt,flashback_size/1024/1024 flhbck_siz,
estimated_flashback_size/1024/1024 est_flhbck_size
from v$flashback_database_log;
OLD_FLHBCK_SCN OLD_FLHBCK_TIM RETE_TRGT FLHBCK_SIZ EST_FLHBCK_SIZE
-------------- ------------------- ---------- ---------- ---------------
1602195 2013-08-08 16:48:34 1440 15.625 0
Flashback database 使用範例
1、建立一個restore point
升級失敗後,降級時使用flashback database to restore point upgrade_dou;。
sys@RACDB> create restore point upgrade_dou guarantee flashback database;
Restore point created.
sys@RACDB> select oldest_flashback_scn old_flhbck_scn,oldest_flashback_time old_flhbck_tim,
2 retention_target rete_trgt,flashback_size/1024/1024 flhbck_siz,
3 estimated_flashback_size/1024/1024 est_flhbck_size
4 from v$flashback_database_log;
OLD_FLHBCK_SCN OLD_FLHBCK_TIM RETE_TRGT FLHBCK_SIZ EST_FLHBCK_SIZE
-------------- ------------------- ---------- ---------- ---------------
1602195 2013-08-08 16:48:34 1440 15.625 143.8125
2、flashback database使用restore point
降級時
資料庫必須是mount狀態
sys@RACDB> flashback database to restore point upgrade_dou;
flashback database to restore point upgrade_dou
*
ERROR at line 1:
ORA-38757: Database must be mounted and not open to FLASHBACK.
Flashback database必須resetlogs open資料庫
sys@RACDB> alter database open;
alter database open
*
ERROR at line 1:
ORA-01589: must use RESETLOGS or NORESETLOGS option for database open
RAC環境中alter database open resetlogs;時有且只有一個例項執行resetlogs
idle> select status from gv$instance;
STATUS
------------
MOUNTED
MOUNTED
idle> alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-38777: database must not be started in any other instance
關閉一個節點
idle> select status from gv$instance;
STATUS
------------
MOUNTED
idle> alter database open resetlogs;
Database altered.
檢查RAC節點恢復情況
另一個節點也open
idle> select status from gv$instance;
STATUS
------------
OPEN
OPEN
idle> select current_scn from gv$database;
CURRENT_SCN
-----------
1628773
1628774
附表
檢視允許閃回的最早時間點
select oldest_flashback_scn old_flhbck_scn,oldest_flashback_time old_flhbck_tim,
retention_target rete_trgt,flashback_size/1024/1024 flhbck_siz,
estimated_flashback_size/1024/1024 est_flhbck_size
from v$flashback_database_log;
檢視sga中分配的閃回空間大小
select * from v$sgastat where name like 'flashback%';
POOL NAME BYTES
------------ -------------------------- ----------
shared pool flashback generation buff 3981204
shared pool flashback_marker_cache_si 9196
select name,space_limit/1024/1024 sp_limt,space_used/1024/1024 sp_usd,space_reclaimable/1024/1024 sp_recl,number_of_files num_fils from v$recovery_file_dest;
NAME
----------------------------------------------------------------------------------------------------
SP_LIMT SP_USD SP_RECL NUM_FILS
---------- ---------- ---------- ----------
+DATA
4096 36 0 3
使用flashback database閃回資料庫
步驟(前提歸檔日誌可用)
關閉資料庫
啟動資料庫到mount狀態(exclusive模式)
閃回至某個時間點,SCN或log sequence number
使用resetlogs開啟資料庫
1.使用sqlplus實現閃回
可以接受一個時間標記或一個系統改變號實參
sqlplus幾種常用的閃回資料庫方法
FLASHBACK [STANDBY]
DATABASE [
FLASHBACK [STANDBY]
DATABASE [
FLASHBACK [STANDBY]
DATABASE [
如下面的示例:
SQL> flashback database to timestamp('2010-10-24 13:04:30','yyyy-mm-dd hh24:mi:ss');
SQL> flashback database to scn 918987;
SQL> flashback database ro restore point b1_load;
2.使用RMAN進行flashback database
使用RMAN進行閃回資料庫的幾種常用辦法
RMAN> flashback database to scn=918987;
RMAN> flashback database to sequence=85 thread=1;
參考文獻:
http://blog.csdn.net/robinson_0612/article/details/6100429
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/26442936/viewspace-768080/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【Flashback】Flashback Database閃回資料庫功能實驗Database資料庫
- POSTGRESQL 小版本升級失敗後的原因分析SQL
- win10升級11102升級失敗怎麼辦_win10升級11102升級一直失敗修復方法Win10
- Visual Studio 2019 升級16.8之後(升級.Net 5),RazorTagHelper任務意外失敗
- iOS 資料庫升級資料遷移解決方案iOS資料庫
- MacOS升級到Monterey後python SSL握手失敗問題MacPython
- 資料庫升級之-Dataguard滾動升級資料庫
- selenium的升級與降級
- 資料庫升級之-XTTS資料庫TTS
- 資料庫升級和工具資料庫
- 故障分析 | MySQL 資料庫升級後,資料庫怎麼卡住了MySql資料庫
- 資料庫升級之-資料泵資料庫
- android資料庫如何進行版本升級?架構之資料庫框架升級Android資料庫架構框架
- Oracle 12.2新特性: PDB級閃回資料庫(Flashback PDB)Oracle資料庫
- 靜默方式安裝、升級oracle(三): 升級資料庫軟體及資料庫Oracle資料庫
- A Oracle Data Guard Broker 升級和降級Oracle
- 升級到iOS 18、降級回iOS 17iOS
- iOS12降級遇到的各種問題彙總解答 iOS12降級失敗怎麼辦iOS
- jdk8 升級 jdk17 docker 部署失敗JDKDocker
- 遠端升級頻頻失敗?原因竟然是…
- oracle資料庫11.2.0.3升級到11.2.0.4Oracle資料庫
- 13 使用SQL Apply 升級資料庫SQLAPP資料庫
- win7升級win10失敗怎麼辦_win7升級win10失敗進不了系統修復方法Win7Win10
- Oracle database 升級(文件)to 10.2.0.4 from 10.2.0.1OracleDatabase
- 資料庫升級-物理重新整理資料字典資料庫
- wordpress升級後後悔了可以使用外掛將wordpress降級為低版本
- 自定義開發資料庫升級程式資料庫
- 【資料庫升級】Oracle指令碼升級12c CDB to 19c CDB資料庫Oracle指令碼
- win10升級老失敗的解決方法_win10更新失敗怎麼辦Win10
- win10系統下升級steam失敗如何解決Win10
- phpStudy2018 升級資料庫 MySQL5.7PHP資料庫MySql
- Django 遷徙資料庫 失敗Django資料庫
- iOS12升級與降級至iOS11.4./11.3.1教程 iOS12怎麼升級iOS
- win7升級win10資料會丟失嗎 win7升級win10保留資料檔案嗎Win7Win10
- Node 快速切換版本、版本回退(降級)、版本更新(升級)
- 【資料庫】mysql5.6升級至5.7(物理方式)資料庫MySql
- iOS CoreData (二) 版本升級和資料庫遷移iOS資料庫
- Android 中的升級資料庫最佳方法實踐Android資料庫
- 成為MySQL DBA 部落格系列-資料庫升級MySql資料庫