使用oracle的FLASHBACK功能在SAP项目升级中极大的缩短了项目升级失败回滚的时间
设置flashback 的系统查询
SQL> col NAME for A30 SQL> col value for A30 SQL> select NAME,value from v$parameter where name = ‘db_flashback_retention_target‘ or name = ‘db_recovery_file_dest‘ or name = ‘db_recovery_file_dest_size‘; NAME VALUE ------------------------------ ------------------------------ db_recovery_file_dest db_recovery_file_dest_size 0 db_flashback_retention_target 1440 SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO
设置flashback,按以下顺序哦,不然会出错哦
SQL> alter system set db_recovery_file_dest_size=4000M scope=both; System altered. SQL> alter system set db_recovery_file_dest = ‘/oracle/C11/flashback_dest‘ scope=both; System altered. SQL> alter system set db_flashback_retention_target=2880 scope=both ; System altered. SQL> select NAME,value from v$parameter where name = ‘db_flashback_retention_target‘ or name = ‘db_recovery_file_dest‘ or name = ‘db_recovery_file_dest_size‘; NAME VALUE ------------------------------ ------------------------------ db_recovery_file_dest /oracle/C11/flashback_dest db_recovery_file_dest_size 4194304000 db_flashback_retention_target 2880 SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO SQL> create restore point C11_FB guarantee flashback database ; Restore point created. SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ RESTORE POINT ONLY SQL> alter database flashback on ; Database altered. SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ YES
查看使用情况
SQL> select name,(space_used/1024/1024),(space_limit/1024/1024) from v$recovery_file_dest; NAME (SPACE_USED/1024/1024) (SPACE_LIMIT/1024/1024) ------------------------------ ---------------------- ----------------------- /oracle/C11/flashback_dest 1000 4000
系统回滚
flashback database to restore point C11_FB
alter database open resetlogs ;
drop restore point C11_FB;
系统升级之后删除flashback
SQL> drop restore point C11_FB; Restore point dropped. SQL> alter system reset db_recovery_file_dest_size scope=spfile ; System altered. SQL> alter system reset db_recovery_file_dest scope=spfile ; System altered. SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ RESTORE POINT ONLY SQL> alter database flashback off; Database altered. SQL> select flashback_on from v$database; FLASHBACK_ON ------------------ NO SQL> select NAME from v$restore_point; no rows selected SQL> select name,(space_used/1024/1024),(space_limit/1024/1024) from v$recovery_file_dest; NAME (SPACE_USED/1024/1024) (SPACE_LIMIT/1024/1024) ------------------------------ ---------------------- ----------------------- /oracle/C11/flashback_dest 0 4000
原文:https://www.cnblogs.com/tingxin/p/12197286.html