Guaranteed restore point

上一篇 / 下一篇  2007-06-24 00:00:00 / 个人分类:Oracle

创建一个guaranteed restore point,可以保证能将数据库flashback到该点,即使系统没有启用flashback database log!这是因为,在创建guaranteed restore point之后,对于任何block的第一次变更,都会将其前映象整个的记录下来。

如果系统启用了flashback database日志,那么guaranteed restore point可以保证能将数据库flashback到guaranteed restore point之后的任何时间点。


sys@ORCL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
sys@ORCL> startup mount
ORACLE 例程已经启动。

Total System Global Area 167772160 bytes
Fixed Size 1289484 bytes
Variable Size 142607092 bytes
Database Buffers 16777216 bytes
Redo Buffers 7098368 bytes
数据库装载完毕。
sys@ORCL> alter database flashback off;

数据库已更改。

sys@ORCL> alter database open;

数据库已更改。

sys@ORCL> select flashback_on from v$database;

FLASHBACK_ON
------------------
NO

sys@ORCL> show parameter compat

NAME_COL_PLUS_SHOW_PARAM TYPE VALUE_COL_PLUS_SHOW_PARAM
------------------------------ ----------- ------------------------------
compatible string 10.2.0.3.0
plsql_v2_compatibility boolean FALSE
sys@ORCL> create restore point before_upgrade guarantee flashback database;
create restore point before_upgrade guarantee flashback database
*
第 1 行出现错误:
ORA-38784: 无法创建恢复点 'BEFORE_UPGRADE'。
ORA-38787: 在闪回数据库处于关闭状态时, 创建第一个可靠恢复点需要装载模式。


sys@ORCL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
sys@ORCL> startup mount
ORACLE 例程已经启动。

Total System Global Area 167772160 bytes
Fixed Size 1289484 bytes
Variable Size 142607092 bytes
Database Buffers 16777216 bytes
Redo Buffers 7098368 bytes
数据库装载完毕。
sys@ORCL> create restore point before_upgrade guarantee flashback database;

还原点已创建。

sys@ORCL> alter database open;

数据库已更改。

sys@ORCL> select * from v$restore_point;

SCN DATABASE_INCARNATION# GUA STORAGE_SIZE TIME
---------- --------------------- --- ------------ --------------------------------------------------
-------------------------
NAME
----------------------------------------------------------------------------------------------------
----------------------------
839207 4 YES 8192000 24-6月 -07 09.12.24.000000000 下午
BEFORE_UPGRADE


sys@ORCL> select STORAGE_SIZE from v$restore_point;

STORAGE_SIZE
------------
8192000

sys@ORCL> select * from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBA RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- -------------- ---------------- -------------- ------------------------
839207 24-6月 -07 1440 8192000 0

sys@ORCL> create table scott.ttt as select * from all_objects where rownum< 1000;

表已创建。

sys@ORCL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
sys@ORCL> startup mount
ORACLE 例程已经启动。

Total System Global Area 167772160 bytes
Fixed Size 1289484 bytes
Variable Size 142607092 bytes
Database Buffers 16777216 bytes
Redo Buffers 7098368 bytes
数据库装载完毕。
sys@ORCL> flashback database to restore point before_upgrade
2 ;

闪回完成。

sys@ORCL> alter database open read only;

数据库已更改。

sys@ORCL> select count(*) from scott.ttt;
select count(*) from scott.ttt
*
第 1 行出现错误:
ORA-00942: 表或视图不存在


sys@ORCL> alter database open resetlogs;
alter database open resetlogs
*
第 1 行出现错误:
ORA-01531: 实例已打开数据库


sys@ORCL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
sys@ORCL> startup mount
ORACLE 例程已经启动。

Total System Global Area 167772160 bytes
Fixed Size 1289484 bytes
Variable Size 146801396 bytes
Database Buffers 12582912 bytes
Redo Buffers 7098368 bytes
数据库装载完毕。
sys@ORCL> alter database open;
alter database open
*
第 1 行出现错误:
ORA-01589: 要打开数据库则必须使用 RESETLOGS 或 NORESETLOGS 选项


sys@ORCL> alter database open resetlogs;

数据库已更改。

sys@ORCL> select resetlogs_change# from v$database;

RESETLOGS_CHANGE#
-----------------
839209

sys@ORCL> select oldest_flashback_scn from v$flashack_database_log;
select oldest_flashback_scn from v$flashack_database_log
*
第 1 行出现错误:
ORA-00942: 表或视图不存在


sys@ORCL> select oldest_flashback_scn from v$flashback_database_log;

OLDEST_FLASHBACK_SCN
--------------------
839207


sys@ORCL> select * from v$flashback_database_log;

OLDEST_FLASHBACK_SCN OLDEST_FLASHBA RETENTION_TARGET FLASHBACK_SIZE ESTIMATED_FLASHBACK_SIZE
-------------------- -------------- ---------------- -------------- ------------------------
839207 24-6月 -07 1440 8192000 0


sys@ORCL> select * from v$database_incarnation;


TAG:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-08-22  
     12
3456789
10111213141516
17181920212223
24252627282930
31      

我的存档

数据统计

  • 访问量: 951
  • 日志数: 1337
  • 建立时间: 2007-12-06
  • 更新时间: 2007-12-06

RSS订阅

Open Toolbar