- 浏览: 984323 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
孤星119:
好熟悉的数据库字段啊, 上家公司做的项目每天都跟这些字段打招呼 ...
Oracle exp compress参数引起的空间浪费 -
itspace:
quxiaoyong 写道遇到个问题,网上一搜,全他妈这篇文章 ...
数据库连接错误ORA-28547 -
quxiaoyong:
遇到个问题,网上一搜,全他妈这篇文章。你转来转去的有意思吗?
数据库连接错误ORA-28547 -
hctech:
关于version count过高的问题,不知博主是否看过ey ...
某客户数据库性能诊断报告 -
itspace:
invalid 写道写的不错,我根据这个来安装,有点理解错误了 ...
AIX 配置vncserver
我们知道在Oracle 10g中,如果数据库启用flashback功能,Oracle即在shared pool中分配flashback buffer,以下是Oracle部分启动日志,可以清楚的看到flashback buffer在shared pool分配了3981204 bytes。
同样在数据字典中也可以看到flashback buffer的大小:
当flashback buffer空间紧张时,可能会出现flashback buf free by RVWR等待事件,Oracle并没有提供参数调节flashback buffer,对于高吞吐量,并发量系统初始大小并不能满足系统要求,有人说调节log_buffer,可以间接调节flashback buffer。
目前系统中log_buffer大小为7012352 bytes,将其改为10M,重启数据库,观察flashback buffer变化。
可以看到flashback generation buff大小并没有发生变化。
进一步,观察和flashback相关的隐含参数
调节隐含参数_flashback_generation_buffer_size,可以看到flashback generation buff 并没有发生变化。
难道_flashback_generation_buffer_size不起作用?再进一步研究,我们知道Oracle内存分配是以granule为单位的,查看当前系统granule大小
同时该参数是受隐含参数_ksmg_granule_size控制的。
修改_ksmg_granule_size大小到8M
可以看到granule已经变成8M。
查看flashback buffer大小,发现已经和_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以上
引用
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
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
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
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.
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
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
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
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.
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
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
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以上
发表评论
-
buffer cache 的内部结构
2020-03-18 14:21 591BUFFER CACHE作为数据块的 ... -
Oracle OMC介绍
2020-03-18 13:19 499Oracle管理云服务(OMC)的大数据平台,自动收集的企业 ... -
参加Oracle勒索病毒防范专题培训会议
2019-09-27 17:15 5432019年7月22日,受邀参加Oracle勒索病毒防范专题培训 ... -
记一次内存换IO的Oracle优化
2019-09-27 16:50 836某客户数据库从P595物理 ... -
如何定位Oracle SQL执行计划变化的原因
2019-07-03 14:49 1481性能优化最难的是能够 ... -
如何定位Oracle SQL执行计划变化的原因
2018-10-30 09:24 1185性能优化最难的是能够 ... -
数据库性能优化目标
2018-10-08 10:59 531从数据库性能优化的场 ... -
数据库无法打开的原因及解决办法
2018-10-05 20:45 2152数据库的启动是一个相当复杂的过程。比如,Oracle在启动之前 ... -
怎么样彻底删除数据库?
2018-09-18 11:10 616Oracle提供了drop database命令用来删除数据库 ... -
Oracle减少日志量的方法
2018-09-10 10:17 876LGWR进程将LOG BUFFER中的 ... -
如何快速关闭数据库
2018-09-09 13:14 1245“一朝被蛇咬,十年怕井绳”。在没被“蛇”咬之前,很多DBA喜欢 ... -
关于《如何落地智能化运维》PPT
2018-05-17 10:19 1143在DTCC 2018发表《如何落地智能化运维》演讲,主要内容如 ... -
记录在redhat5.8平台安装oracle11.2容易忽视的几个问题
2018-05-11 19:58 589问题一:ping不通问题 在虚拟机上安装好linux系统后, ... -
《Oracle DBA实战攻略》第一章
2018-05-11 10:42 976即日起,不定期更新《OracleDBA实战攻略》一书电子版,请 ... -
Oracle 12c新特性
2018-05-11 10:33 911查询所有pdb [oracle@gj4 ~]$ sqlplu ... -
关于修改memory_target的值后数据库无法启动的问题
2017-02-28 12:24 3994操作系统:RHEL6.5 数据库版本:11.2.0.4 ... -
10g rac安装error while loading shared libraries libpthread.so.0 问题
2017-02-28 12:22 70911g rac安装在二节点跑脚本一般会报此错误: 解决这个问 ... -
记一次Oracle会话共享模式故障处理过程
2017-02-27 19:16 810故障简述 XXX第八人民医院HIS数据库7月13日11点左右从 ... -
RESMGR:cpu quantum等待事件处理过程
2017-02-27 18:23 2682由于数据库上线过程中出现大量的RESMGR:cpu quant ... -
谈谈log file sync
2014-03-19 14:18 1783数据库中的log file sync等待事件指的是,当user ...
相关推荐
在Oracle 10g中,Flashback技术包含了多个组件,如Flashback Database、Flashback Drop、Flashback Query(包括Flashback Query、Flashback Version Query和Flashback Transaction Query)以及Flashback Table。...
BB_FlashBack是一款专业的屏幕录像软件,它以其高效、易用和高质量的视频录制功能而备受用户喜爱。这款软件能够帮助用户轻松捕获电脑屏幕上的一切活动,无论是制作教学视频、演示程序操作还是记录游戏过程,BB_...
SELECT name, current_scn, flashback_on FROM v$database; ``` - 启用Flashback功能。 - SQL命令示例: ``` ALTER DATABASE FLASHBACK ON; SELECT name, current_scn, flashback_on FROM v$database; ``` ...
- 使用命令`ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET = 1440 SCOPE = BOTH;`设置保留时间,单位为分钟,默认值为1440分钟(即24小时)。 - 保留时间决定了闪回日志可以支持恢复的最长时间范围。 - **注意...
BB_FlashBack_Pro_3.2.2汉化版是一款专为中文用户设计的录屏软件,它提供了高效且易用的屏幕录制功能,让用户能够轻松捕捉计算机屏幕上的一切活动。这款软件广泛应用于教学演示、游戏录像、软件操作教程制作、在线...
MySQLbinlog flashback 是一个开源工具,它主要用于从MySQL的二进制日志(binary log)中提取出可以执行的回滚SQL语句,以便在不影响线上服务的情况下进行数据恢复或故障排查。这个工具的核心功能是对MySQL binlog...
BB_FlashBack是一款备受赞誉的屏幕录像软件,主要用于创建高质量的视频教程、演示和个人记录。它的强大功能使得在IT行业中,无论是专业人士还是普通用户都能轻松地捕获和编辑屏幕活动。 1. **屏幕录像功能**:BB_...
例如,文件"oracle中使用FLASHBACK_TABLE_恢复被删除表.docx"可能包含详细步骤和示例,演示如何使用这个命令来恢复删除的表。 在Oracle数据库中,Flashback除了恢复表之外,还可以用来恢复数据。"Oracle_FlashBack...
BB_FlashBack_Pro_2.7.3.1528原版+汉化补丁+注册 很好用的屏幕录像 裁剪 修改工具 播放和制作fbr文件 仅供下载试用,试用后请尽快删除 版权归 FFmpeg 所有 正版下载网站 http://www.ffmpeg.org/download.html 支持...
录屏软件,非常优秀,非常清晰,格式多种,占用小。 这个版本是无错的哦,汉化加破解一步到位。 要录制教程视频神马的就用BB_FlashBack_Pro2.7.6.1586原版+汉化补丁+注册机
Oracle 闪回特性 FLASHBACK & RECYCLEBIN Flashback 系列是 Oracle 数据库中的一组功能强大且实用的闪回机制,旨在帮助数据库管理员和开发者快速恢复数据库中的各种对象,包括表、数据、事务等。Flashback 系列的...
另外一个参数 DB_FLASHBACK_RETENTION_TARGET 允许您设定闪回数据的保留时间,单位是分钟。 4. Oracle Flashback 的优点 Oracle Flashback 的优点是可以快速地恢复数据库到以前的状态,从而避免了由于操作失误或...
Oracle RAC,全称为Real Application Clusters,是Oracle数据库系统中的一个关键特性,它提供了高度的可用性和可扩展性,使得数据库能够在多台服务器上同时运行,形成一个共享的集群环境。在“大话Oracle_RAC__集群_...
在Oracle数据库管理过程中,误删数据是常见的问题之一。当遇到这类情况时,Oracle提供了一种强大的数据恢复机制——回闪(Flashback)功能。通过回闪功能,用户可以在特定的时间点恢复已删除的数据。本文将详细介绍...
### Oracle 10g Flashback Technology #### 一、引言 在Oracle 10g数据库管理工作中,Flashback技术是一项革命性的恢复功能,它能够帮助数据库管理员在遇到逻辑错误时快速有效地恢复数据。本文章将详细介绍Oracle ...
"BB_FlashBack.rar"这个文件名暗示了可能是一个与视频回放或者快速回顾相关的项目或工具。根据提供的信息,我们可以深入探讨视频处理的一些核心知识点。 1. **视频编码**: 视频编码是将连续的图像帧转化为数字信号...
### 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 ...