`
itspace
  • 浏览: 984277 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Oracle 参数之_flashback_generation_buffer_size

阅读更多
我们知道在Oracle 10g中,如果数据库启用flashback功能,Oracle即在shared pool中分配flashback buffer,以下是Oracle部分启动日志,可以清楚的看到flashback buffer在shared pool分配了3981204 bytes。

引用
Wed Dec 30 15:20:40 2009
Allocated 3981204 bytes in shared pool for flashback generation buffer
Starting background process RVWR
RVWR started with pid=16, OS id=724


同样在数据字典中也可以看到flashback buffer的大小:
引用
SQL> select name,bytes from V$sgastat
  2  where pool='shared pool'
  3  and name like '%flash%';

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


当flashback buffer空间紧张时,可能会出现flashback buf free by RVWR等待事件,Oracle并没有提供参数调节flashback buffer,对于高吞吐量,并发量系统初始大小并不能满足系统要求,有人说调节log_buffer,可以间接调节flashback buffer。
目前系统中log_buffer大小为7012352 bytes,将其改为10M,重启数据库,观察flashback buffer变化。
引用
SQL> show parameter log_buffer

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
log_buffer                           integer     7012352

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

System altered.

SQL> select name,bytes from V$sgastat
  2  where pool='shared pool'
  3  and name like '%flash%';

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

SQL> startup force
ORACLE instance started.

Total System Global Area  536870912 bytes
Fixed Size                  1262764 bytes
Variable Size             155192148 bytes
Database Buffers          369098752 bytes
Redo Buffers               11317248 bytes
Database mounted.
Database opened.
SQL> select name,bytes from V$sgastat
  2  where pool='shared pool'
  3  and name like '%flash%';

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

可以看到flashback generation buff大小并没有发生变化。
进一步,观察和flashback相关的隐含参数
引用
SQL> set linesize 120
SQL> col name for a40 trunc
SQL> col value for a20
SQL> col pdesc for a50 trunc
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC
  2    FROM SYS.x$ksppi x, SYS.x$ksppcv y
  3  WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%';
Enter value for par: flashback
old   3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'
new   3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%flashback%'

NAME                                     VALUE                PDESC
---------------------------------------- -------------------- --------------------------------------------------
db_flashback_retention_target            1440                 Maximum Flashback Database log retention time in m
_validate_flashback_database             FALSE                Scan database to validate result of flashback data
_flashback_allow_noarchivelog            FALSE                Allow enabling flashback on noarchivelog database
_verify_flashback_redo                   TRUE                 Verify that the redo logs needed for flashback are
_flashback_verbose_info                  FALSE                Print verbose information about flashback database
_flashback_logfile_enqueue_timeout       600                  flashback logfile enqueue timeout for opens
_flashback_barrier_interval              1800                 Flashback barrier interval in seconds
_flashback_standby_barrier_interval      1800                 Flashback standby barrier interval in seconds
_flashback_fuzzy_barrier                 TRUE                 Use flashback fuzzy barrier
_flashback_log_size                      1000                 Flashback log size
_flashback_log_min_size                  100                  Minimum flashback log size

NAME                                     VALUE                PDESC
---------------------------------------- -------------------- --------------------------------------------------
_flashback_copy_latches                  10                   Number of flashback copy latches
_flashback_n_log_per_thread              128                  Desired number of flashback logs per flashback thr
_flashback_max_n_log_per_thread          2048                 Maximum number of flashback logs per flashback thr
_flashback_generation_buffer_size        134193152            flashback generation buffer size
_flashback_max_log_size                  0                    Maximum flashback log size in bytes (OS limit)
_flashback_log_io_error_behavior         0                    Specify Flashback log I/O error behavior
_flashback_hint_barrier_percent          20                   Flashback hint barrier percent
_percent_flashback_buf_partial_full      50                   Percent of flashback buffer filled to be considere
_flashback_write_size_qm                 4                    Desired flashback write size in quarter MB

20 rows selected.

调节隐含参数_flashback_generation_buffer_size,可以看到flashback generation buff 并没有发生变化。
引用
SQL> alter system set "_flashback_generation_buffer_size"=4200000 scope=spfile;

System altered.

SQL> startup force
ORACLE instance started.

Total System Global Area  536870912 bytes
Fixed Size                  1262428 bytes
Variable Size             146803876 bytes
Database Buffers          318767104 bytes
Redo Buffers               70037504 bytes
Database mounted.
Database opened.
SQL> select name,bytes from V$sgastat
  2  where pool='shared pool'
  3  and name like '%flash%';

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


难道_flashback_generation_buffer_size不起作用?再进一步研究,我们知道Oracle内存分配是以granule为单位的,查看当前系统granule大小
引用
SQL> select * from v$sgainfo
  2  where name='Granule Size';

NAME                                          BYTES RES
---------------------------------------- ---------- ---
Granule Size                                4194304 No


同时该参数是受隐含参数_ksmg_granule_size控制的。
引用
SQL> set linesize 120
SQL> col name for a40 trunc
SQL> col value for a20
SQL> col pdesc for a50 trunc
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC
  2    FROM SYS.x$ksppi x, SYS.x$ksppcv y
  3  WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%';
Enter value for par: ksmg_granule_size
old   3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'
new   3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%ksmg_granule_size%'

NAME                                     VALUE                PDESC
---------------------------------------- -------------------- --------------------------------------------------
_ksmg_granule_size                       4194304              granule size in bytes

修改_ksmg_granule_size大小到8M
引用
SQL> alter system  set "_ksmg_granule_size"=8388608 scope=spfile;

System altered.

SQL> startup force;
ORACLE instance started.

Total System Global Area  536870912 bytes
Fixed Size                  1261080 bytes
Variable Size             142606824 bytes
Database Buffers          318767104 bytes
Redo Buffers               74235904 bytes
Database mounted.
Database opened.

可以看到granule已经变成8M。
引用
SQL> select * from v$sgainfo
  2  where name='Granule Size'
  3  ;

NAME                                          BYTES RES
---------------------------------------- ---------- ---
Granule Size                                8388608 No


查看flashback buffer大小,发现已经和_flashback_generation_buffer_size相匹配。
引用
SQL> select name,bytes from V$sgastat
  2  where pool='shared pool'
  3  and name like '%flash%';

NAME                                          BYTES
---------------------------------------- ----------
flashback generation buff                   4200448

SQL> set linesize 120
SQL> col name for a40 trunc
SQL> col value for a20
SQL> col pdesc for a50 trunc
SQL> SELECT x.ksppinm NAME, y.ksppstvl VALUE, x.KSPPDESC PDESC
  2    FROM SYS.x$ksppi x, SYS.x$ksppcv y
  3  WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%';
Enter value for par: _flashback_generation_buffer_size
old   3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%&par%'
new   3: WHERE x.indx = y.indx AND x.ksppinm LIKE '%_flashback_generation_buffer_size%'

NAME                                     VALUE                PDESC
---------------------------------------- -------------------- --------------------------------------------------
_flashback_generation_buffer_size        4200448              flashback generation buffer size


总结:Oracle flashback buffer大小设置不仅和隐含参数_flashback_generation_buffer_size有关而且和Granule 大小(其大小不仅和隐含参数有关而且Oracle内存大小有关)有关。
1、Granule大于_flashback_generation_buffer_size时,_flashback_generation_buffer_size生效。
2、对于大内存高并发生产库建议将log_buffer设置8m以上




0
0
分享到:
评论

相关推荐

    Oracle_Flashback_技术_总结.pdf

    在Oracle 10g中,Flashback技术包含了多个组件,如Flashback Database、Flashback Drop、Flashback Query(包括Flashback Query、Flashback Version Query和Flashback Transaction Query)以及Flashback Table。...

    屏幕录像软件 BB_FlashBack

    BB_FlashBack是一款专业的屏幕录像软件,它以其高效、易用和高质量的视频录制功能而备受用户喜爱。这款软件能够帮助用户轻松捕获电脑屏幕上的一切活动,无论是制作教学视频、演示程序操作还是记录游戏过程,BB_...

    Oracle_Flashback家族

    SELECT name, current_scn, flashback_on FROM v$database; ``` - 启用Flashback功能。 - SQL命令示例: ``` ALTER DATABASE FLASHBACK ON; SELECT name, current_scn, flashback_on FROM v$database; ``` ...

    Oracle_FlashBack闪回技术

    - 使用命令`ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET = 1440 SCOPE = BOTH;`设置保留时间,单位为分钟,默认值为1440分钟(即24小时)。 - 保留时间决定了闪回日志可以支持恢复的最长时间范围。 - **注意...

    BB_FlashBack_Pro_3.2.2汉化版.rar

    BB_FlashBack_Pro_3.2.2汉化版是一款专为中文用户设计的录屏软件,它提供了高效且易用的屏幕录制功能,让用户能够轻松捕捉计算机屏幕上的一切活动。这款软件广泛应用于教学演示、游戏录像、软件操作教程制作、在线...

    mysqlbinlog_flashback, 产生在线mysqlbinlog的回滚的sql.zip

    MySQLbinlog flashback 是一个开源工具,它主要用于从MySQL的二进制日志(binary log)中提取出可以执行的回滚SQL语句,以便在不影响线上服务的情况下进行数据恢复或故障排查。这个工具的核心功能是对MySQL binlog...

    BB_FlashBack

    BB_FlashBack是一款备受赞誉的屏幕录像软件,主要用于创建高质量的视频教程、演示和个人记录。它的强大功能使得在IT行业中,无论是专业人士还是普通用户都能轻松地捕获和编辑屏幕活动。 1. **屏幕录像功能**:BB_...

    flashback——oracle

    例如,文件"oracle中使用FLASHBACK_TABLE_恢复被删除表.docx"可能包含详细步骤和示例,演示如何使用这个命令来恢复删除的表。 在Oracle数据库中,Flashback除了恢复表之外,还可以用来恢复数据。"Oracle_FlashBack...

    BB_FlashBack_Pro_2.7.3.1528原版+汉化补丁+注册

    BB_FlashBack_Pro_2.7.3.1528原版+汉化补丁+注册 很好用的屏幕录像 裁剪 修改工具 播放和制作fbr文件 仅供下载试用,试用后请尽快删除 版权归 FFmpeg 所有 正版下载网站 http://www.ffmpeg.org/download.html 支持...

    BB_FlashBack_Pro2.7.6.1586原版+汉化补丁+注册机

    录屏软件,非常优秀,非常清晰,格式多种,占用小。 这个版本是无错的哦,汉化加破解一步到位。 要录制教程视频神马的就用BB_FlashBack_Pro2.7.6.1586原版+汉化补丁+注册机

    Oracle 闪回特性 FLASHBACK & RECYCLEBIN

    Oracle 闪回特性 FLASHBACK & RECYCLEBIN Flashback 系列是 Oracle 数据库中的一组功能强大且实用的闪回机制,旨在帮助数据库管理员和开发者快速恢复数据库中的各种对象,包括表、数据、事务等。Flashback 系列的...

    ORACLE FLASHBACK综述.pdf

    另外一个参数 DB_FLASHBACK_RETENTION_TARGET 允许您设定闪回数据的保留时间,单位是分钟。 4. Oracle Flashback 的优点 Oracle Flashback 的优点是可以快速地恢复数据库到以前的状态,从而避免了由于操作失误或...

    大话Oracle_RAC__集群_高可用性_备份与恢复241-400

    Oracle RAC,全称为Real Application Clusters,是Oracle数据库系统中的一个关键特性,它提供了高度的可用性和可扩展性,使得数据库能够在多台服务器上同时运行,形成一个共享的集群环境。在“大话Oracle_RAC__集群_...

    oracle误删数据恢复

    在Oracle数据库管理过程中,误删数据是常见的问题之一。当遇到这类情况时,Oracle提供了一种强大的数据恢复机制——回闪(Flashback)功能。通过回闪功能,用户可以在特定的时间点恢复已删除的数据。本文将详细介绍...

    Less17_Flashback_TB3.pdf

    ### Oracle 10g Flashback Technology #### 一、引言 在Oracle 10g数据库管理工作中,Flashback技术是一项革命性的恢复功能,它能够帮助数据库管理员在遇到逻辑错误时快速有效地恢复数据。本文章将详细介绍Oracle ...

    BB_FlashBack.rar

    "BB_FlashBack.rar"这个文件名暗示了可能是一个与视频回放或者快速回顾相关的项目或工具。根据提供的信息,我们可以深入探讨视频处理的一些核心知识点。 1. **视频编码**: 视频编码是将连续的图像帧转化为数字信号...

    oracle中关于flashback闪回的介绍

    ### Oracle Flashback 闪回技术详解 #### 一、引言 在Oracle数据库管理中,闪回技术(Flashback)是一种非常重要的数据恢复工具。它允许用户和管理员以一种简单而有效的方式,恢复误删、误改的数据。本文将详细介绍...

    Oracle Flashback 技术总结

    3. db_flashback_retention_target:设置数据库可以回退的时间目标,以分钟为单位。 例如,通过SQL命令可以设置这些参数: ```sql ALTER SYSTEM SET db_recovery_file_dest_size=3g SCOPE=BOTH; ALTER SYSTEM SET ...

Global site tag (gtag.js) - Google Analytics