ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 数据库闪回

数据库闪回

原创 Linux操作系统 作者:wshxgxiaoli 时间:2012-07-05 13:49:59 0 删除 编辑
flashback database 功能非常类似于RMAN的不完全恢复,它可以把整个数据库回退到过去某个时间点的状态。这个功能依赖于
flashback log日志,比RMAN 更快速和高效。

flashback database 的限制:
1.不能解决介质故障。
2.删除数据文件和SHRINK技术缩小数据文件大小,这样的也不能闪回。
3.如果控制文件是从备份中恢复出来的,或者是重建的数据库控制文件,也是不能闪回的。
4.使用FLASHBACK DATABASE 所能恢复出来的最早SCN,取决于FLASHBACK LOG 中记录最早的SCN。

架构:
一个进程 recover writer(RVWR)后台进程、flashback database log 日志和flash recovery area.
一旦数据库启用了flashback database ,则RVWR 进程会启动,RVWR 进程会向flash recovery area写入flashback database log. 这些日志包括的是数据块的”前镜像“(before image)。 这也是flashback database 技术比不完全恢复快的原因。

flashback buffer:
如果数据库启用FLASHBACK 功能,ORACLE 即在SHARED POOL 中分配FLASHBACK BUFFER。
查询分配大小:
SQL> select name, bytes from v$sgastat where pool='shared pool' and name like'%flash%';

NAME                            BYTES
-------------------------- ----------
flashback generation buff     3981204

当FLASHBACK BUFFER 空间紧张时,可能会出现FLASHBACK BUF FREE BY RVWR等待事件.在这里就要调BUFFER的大小了。

oracle flashback buffer 大小设置不公和隐含参数_flashback_generation_buffer_size有关而且和granule 大小有关。
granule大于_flashback_generation_buffer_size 时,_flashback_generation_buffer_size生效。
对于大内存高并生产库建议将log_buffer设置8M以上。

select x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC
FROM SYS.x$ksppi x, SYS.x$ksppcv y
where x.indx=y.indx and x.ksppinm like '%&par%';

enter value for par: flashback


修改过程:
 select name, bytes from v$sgastat where pool='shared pool' and name like'%flash%';

NAME                            BYTES
-------------------------- ----------
flashback generation buff     3981204

SQL>
SQL> alter system set log_buffer=10000000 scope=spfile;

System altered.

SQL> alter system set "_ksmg_granule_size"=8388608 scope=spfile;

System altered.

SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup force;
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size                  1218148 bytes
Variable Size              92277148 bytes
Database Buffers          176160768 bytes
Redo Buffers               15556608 bytes
Database mounted.
Database opened.
SQL>  select name, bytes from v$sgastat where pool='shared pool' and name like'%flash%';

NAME                            BYTES
-------------------------- ----------
flashback generation buff     7966612
RAC 的两个节点都要操作。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22740983/viewspace-734627/,如需转载,请注明出处,否则将追究法律责任。

上一篇: RAC + DG
下一篇: OCR AND VOTINGDISK
请登录后发表评论 登录
全部评论

注册时间:2012-03-30

  • 博文量
    33
  • 访问量
    52638