oracle快照详解
oracle快照底层原理
oracle快照底层原理Oracle数据库中的快照(snapshot)是一种数据备份技术,它允许用户在一些时间点上创建数据库的一份完整副本,以便在需要时进行恢复或查询。
Oracle快照底层原理涉及到数据文件、redo日志和Undo段等核心组件,下面将详细介绍这些组件的作用和相互关系。
1. 数据文件(Data Files):Oracle数据库将数据存储在数据文件中,其中包含表、索引等对象的数据和元信息。
数据文件是数据库的基本单位,每个表空间可以包含一个或多个数据文件。
快照的底层原理涉及到数据文件的备份和恢复。
2. Redo日志(Redo Log):Redo日志是Oracle数据库中的一种事务日志,用于记录数据库的变化,包括数据修改操作和其他重要事件。
当数据库执行事务操作时,相关的变化会先写入Redo日志文件,然后再将修改写入数据文件。
通过Redo 日志,可以实现对数据库的完整恢复。
3. Undo段(Undo Segment):Undo段是用于支持事务的回滚和数据一致性的关键组件。
当一个事务开始执行时,相关的变化会先写入Undo段。
如果事务需要回滚,数据库可以利用Undo段中的数据将变化恢复到事务开始之前的状态。
在Oracle数据库中,快照的底层原理可以分为两个主要过程:快照创建和快照恢复。
快照创建过程如下:1. 快照进程(Snapshot Process):Oracle数据库通过一个后台进程来实现快照功能,该进程负责创建和管理快照。
2. 数据文件备份:快照创建时,Oracle会首先对数据文件进行备份,以保证快照的一致性和完整性。
这里的备份可以理解为创建数据文件的一个副本。
3. Redo日志备份:接下来,Oracle会备份Redo日志,以保证在需要恢复数据库时,可以使用快照创建时的Redo信息进行恢复操作。
4. Undo段备份:最后,Oracle会备份当前事务的Undo信息,这样在需要恢复数据时,可以使用保存的Undo段数据将相关事务的变化恢复到快照创建时的状态。
如何获取AWR报告
简介awr报告是oracle 10g下提供的一种性能收集和分析工具,它能提供一个时间段内整个系统资源使用情况的报告,通过这个报告,我们就可以了解一个系统的整个运行情况,这就像一个人全面的体检报告。
获取方法要获取awr报告,首先需要两个数据库快照,Oracle默认每个一个小时创建一个数据库快照,默认只保留最近7天的快照信息。
方法一1:登陆对应的数据库服务器2:找到oracle磁盘空间(d:oracle\product\10.2.0\db_1\RDBMS\Admin)3:执行cmd-cd d:回车4: cd d:oracle\product\10.2.0\db_1\RDBMS\Admin 回车5:sqlplus 用户名/密码@服务连接名(例:sqlplus carmot_esz_1/carmot@igrp)6:执行@awrrpt.sql 回车方法二1、用system用户登录PL/SQL2、查看快照,查询出来的快照snap_id,SQL如下select * from sys.wrh$_active_session_history order by snap_id desc;3、直接通过sql获取即可SELECT * FROM TABLE( dbms_workload_repository.awr_report_html((select dbidfrom v$database), 1,31187, -- begin snap_id 比如上午8点的时候的snap_id31188 --end snap_id 比如下午5点的时候的snap_id))4、把查看的结果全部展开,并全选COPY 出来,保存到txt 文件,并修改后缀为html, 即生成AWR报告。
5、如果展开结果出错,。
Oracle自带性能分析报告工具-awr介绍和分析报告
Oracle自带性能分析工具-AWR介绍和分析华三通信技术1 Oracle 10g的AWR性能优化工具简介AWR (Automatic Workload Repository)既自动工作负载信息库是Oracle10g新提供的收集数据库统计信息的置工具。
它比之前的statspack有显著的改进,收集的信息也更多、更全面,使用方法也更简单。
它主要采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题,如包括AWR存区,历史数据存储文件和ASH等部件。
AWR报告的容繁多,官方文档也没有对所有参数给出说明。
AWR产生的报表包括以下几部分。
报表具体容参见如下插入的对象。
1、Report SummeryCache sizesLoad profileInstance Efficiency Percentages (Target 100%)Shared Pool StatisticsTop 5 Timed Events2、RAC StatisticsGlobal Cache Load ProfileGlobal Cache Efficiency Percentages (Target local+remote 100%)Global Cache and Enqueue Services - Workload CharacteristicsGlobal Cache and Enqueue Services - Messaging Statistics3、Wait Events StatisticsTime Model StatisticsWait ClassWait EventsBackground Wait EventsOperating System StatisticsService StatisticsService Wait Class Stats4、SQL StatisticsSQL ordered by Elapsed TimeSQL ordered by CPU TimeSQL ordered by GetsSQL ordered by ReadsSQL ordered by ExecutionsSQL ordered by Parse CallsSQL ordered by Sharable Memory SQL ordered by Version CountSQL ordered by Cluster Wait Time Complete List of SQL Text5、Instance Activity StatisticsInstance Activity StatsInstance Activity Stats - Absolute Values Instance Activity Stats - Thread Activity 6、IO StatsTablespace IO StatsFile IO Stats7、Buffer Pool Statistics8、Advisory StatisticsInstance Recovery StatsBuffer Pool AdvisoryPGA Aggr SummaryPGA Aggr Target StatsPGA Aggr Target HistogramPGA Memory AdvisoryShared Pool AdvisorySGA Target AdvisoryStreams Pool AdvisoryJava Pool Advisory9、Wait StatisticsBuffer Wait StatisticsEnqueue Activity10、Undo StatisticsUndo Segment SummaryUndo Segment Stats11、Latch StatisticsLatch ActivityLatch Sleep BreakdownLatch Miss SourcesParent Latch StatisticsChild Latch Statistics12、Segment StatisticsSegments by Logical ReadsSegments by Physical ReadsSegments by Row Lock WaitsSegments by ITL WaitsSegments by Buffer Busy WaitsSegments by Global Cache Buffer Busy Segments by CR Blocks ReceivedSegments by Current Blocks Received 13、Dictionary Cache StatisticsDictionary Cache StatsDictionary Cache Stats (RAC)14、Library Cache StatisticsLibrary Cache ActivityLibrary Cache Activity (RAC) 15、Memory StatisticsProcess Memory SummarySGA Memory SummarySGA breakdown difference 16、Streams StatisticsStreams CPU/IO UsageStreams CaptureStreams ApplyBuffered QueuesBuffered SubscribersRule Set17、Resource Limit Stats18、init.ora Parameters19、Global Enqueue Statistics20、Global CR Served Stats21、Global CURRENT Served Stats22、Global Cache Transfer Stats2 AWR配置2.1 AWR统计数据的缺省配置AWR 实质上是一个 Oracle 的置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
Oracle数据库中快照的使用
Oracle数据库中快照的使⽤oracle数据库的快照是⼀个表,它包含有对⼀个本地或远程数据库上⼀个或多个表或视图的查询的结果。
正因为快照是⼀个主表的查询⼦集,使⽤快照可以加快数据的查询速度;在保持不同数据库中的两个表的同步中,利⽤快照刷新,数据的更新性能也会有很⼤的改善表快照的建⽴:先建表的快照⽇志,根据表的⽇志,才能在快照中执⾏快刷新create snapshot log on table_name;⼆、在dmtcx⽤户下建⽴到sffw⽤户的数据库链link_sf;---- 建⽴了到sffw⽤户的数据库链后才能从sffw⽤户下的表yh_qfcx中获取数据。
---- Create database link link_sf ---- Connect to sffw identified by xxxxxxx using 'rs6000'; 三、在dmtcx⽤户下建⽴快照s_yh_qfcx; Create snapshot s_yh_qfcx as Select yhh,qf6+qf5+qf4+qf3+qf2+qf1+qf qfje From yh_qfcx@link_sf Where tjbz='K' and bz6+bz5+bz4+bz3+bz2+bz1+bz>0; 四、根据需要修改快照刷新的间隔时间;---- dmtcx⽤户下的快照s_yh_qfcx为了与sffw⽤户下的主表yh_qfcx保持同步,需要不断刷新快照。
只有设定了快照的刷新间隔时间,oracle才会⾃动刷新该快照。
---- 快照的刷新有两种⽅式:快速刷新和完全刷新。
快速刷新需要快照的主表先有快照⽇志存在;完全刷新时oracle执⾏快照查询,将结果放⼊快照。
快速刷新⽐完全刷新快,因为快速刷新将主数据库的数据经⽹络发送到快照的数据少,仅需传送主表中修改过的数据,⽽完 Alter snapshot s_yh_qfcx refresh fast Start with sysdate+1/1440 next sysdate+1/144; {此SQL语句的意思为:设定oracle⾃动在1分钟 (1/24*60)后进⾏第⼀次快速刷新,以后每隔10分钟 (10/24*60)快速刷新⼀次。
快照(计算机存储和备份)
快照(计算机存储)来自维基百科,开放性的百科全书(译者:闫斌)在计算机系统中,快照是系统在某个时间点的状态。
该术语的产生源于类似摄影中的快照。
它可以指系统状态的实际副本或由某些系统提供的功能。
目录1.原理2.实现2.1卷管理器2.2文件系统2.3在数据库中的应用2.4在虚拟化中的应用2.5其他应用3.参见4.注意5.外部链接原理要完成一份大数据集的完整备份可能会花去大量时间。
在多任务或多用户系统中,当数据正在备份时,可能会有数据写入数据集。
这就阻碍了备份的原子性,并引入了版本不一致,这可能会导致数据损坏。
例如,如果一个用户移动一个文件到一个已经备份的文件夹中,那么这个文件在备份介质上会完全丢失,因为在添加文件前备份操作已经发生。
版本不一致也可能导致文件损坏,例如在读取文件时改变文件的大小和内容。
一个安全备份实时数据的方法是在备份过程中使写访问失效,或者停止正在访问数据的应用程序,或者使用操作系统提供的加锁应用程序接口(locking API)强制执行只读访问。
这对于低可用性系统(台式电脑和小型工作组服务器,常规的停机时间是可以接收的)可以容忍。
但是高可用性系统不能容忍业务停止。
为避免停机时间,高可用性系统可能转为采用执行基于快照(在某个时间点上数据集的只读副本)的备份,并允许应用程序继续写入数据。
大多数快照实现是高效的,可以在O(1)时间内创建快照。
换句话说,创建快照所需要的时间和I/O不会随着数据集合的大小而增加,而直接备份则会随着数据集合的大小按相应比例的增加备份时间和I/O。
在某些系统中,一旦数据集合进行了初始快照,随后的快照仅复制更改的数据,并使用系统初始快照的指针引用。
这种基于指针的机制比数据重复克隆消耗更少的磁盘容量。
读写快照有时也被称为分支快照,因为它们隐式地创建了数据集的分支版本。
除了备份和数据恢复,由于读写快照在管理大的文件集合变更方面的非常有用,它经常用在虚拟化、沙盒以及虚拟主机安装领域。
oracle快照详解
oracle快照详解Oracle 物化视图一. 理论部分Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。
物化视图存储基于远程表的数据,也可以称为快照。
Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。
物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。
物化视图可以查询表,视图和其它的物化视图。
通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。
对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。
如果你想修改本地副本,必须用高级复制的功能。
当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。
对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。
在复制环境下,创建的物化视图通常情况下主键,rowid,和子查询视图。
REFRESH 子句[refresh [fast|complete|force][on demand | commit][start with date] [next date][with {primary key|rowid}]]默认情况下,如果没指定刷新方法和刷新模式,则Oracle默认为FORCE和DEMAND。
物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。
三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。
创建物化视图时可以指定多种选项,下面对几种主要的选择进行简单说明:创建方式(Build Methods):包括BUILD IMMEDIATE和BUILD DEFERRED两种。
Oracle系统表大全
数据字典dict总是属于Oracle用户sys的。
、用户:select username from dba_users;改口令alter user spgroup identified by spgtest;2、表空间:select * from dba_data_files;select * from dba_tablespaces;//表空间select tablespace_name,sum(bytes), sum(blocks)from dba_free_space group by tablespace_name;//空闲表空间select * from dba_data_fileswhere tablespace_name='RBS';//表空间对应的数据文件select * from dba_segmentswhere tablespace_name='INDEXS';3、数据库对象:select * from dba_objects;CLUSTER、DATABASE LINK、FUNCTION、INDEX、LIBRARY、PACKAGE、PAC KAGE BODY、PROCEDURE、SEQUENCE、SYNONYM、TABLE、TRIGGER、TYPE、UNDEFINED、VIEW。
4、表:select * from dba_tables;analyze my_table compute statistics;>dba_tables后6列select extent_id,bytes from dba_extentswhere segment_name='CUSTOMERS' and segment_type='TABLE'order by extent_id;//表使用的extent的信息。
segment_type='ROLLBACK'查看回滚段的空间分配信息列信息:select distinct table_namefrom user_tab_columnswhere column_name='SO_TYPE_ID';5、索引:select * from dba_indexes;//索引,包括主键索引select * from dba_ind_columns;//索引列select i.index_name,i.uniqueness,c.column_namefrom user_indexes i,user_ind_columns cwhere i.index_name=c.index_nameand i.table_name ='ACC_NBR';//联接使用6、序列:select * from dba_sequences;7、视图:select * from dba_views;select * from all_views;text 可用于查询视图生成的脚本8、聚簇:select * from dba_clusters;9、快照:select * from dba_snapshots;快照、分区应存在相应的表空间。
ORACLE性能AWR报告的使用和分析
ORACLE性能AWR报告的使用和分析Oracle性能AWR报告(Automatic Workload Repository)是Oracle 数据库提供的一个强大的性能诊断工具,可以帮助管理员识别和解决数据库性能问题。
AWR报告收集和保存数据库的性能指标和统计信息,以便在需要时进行分析和比较。
本文将介绍AWR报告的使用和分析过程,包括如何收集AWR报告、AWR报告的内容和结构、及如何分析AWR报告。
一、收集AWR报告AWR报告只能在Oracle数据库中收集,首先需要启用AWR功能。
在Oracle数据库中,AWR功能默认是开启的。
你可以使用以下命令查看AWR 功能是否已经开启:```SELECT name FROM v$statname WHERE name LIKE '%AWR%';```如果显示了AWR相关的统计项,则表示AWR功能已经启用。
要收集AWR报告,需要按照以下步骤操作:1. 连接到数据库,在SQLPlus或类似的工具中执行以下命令,以开启AWR快照:```EXECDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;```2.执行一段时间(建议至少30分钟)的正常工作负载。
3.再次执行以下命令,以关闭AWR快照:```EXECDBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT(;```4.通过以下命令查看AWR报告的快照ID:```SELECT snap_id FROM dba_hist_snapshot ORDER BY snap_id;```5.选择要分析的快照ID,使用以下命令生成AWR报告:``````根据提示输入快照ID和报告类型(HTML或文本),即可生成AWR报告。
二、AWR报告的内容和结构AWR报告提供了丰富的性能指标和统计信息,以帮助诊断数据库性能瓶颈。
AWR报告通常包括以下几个部分:1.报告概述:包含报告生成的时间、数据库版本、报告周期等信息,并提供了一个整体的性能评估。
OracleAWR删除历史快照说明
OracleAWR删除历史快照说明一。
AWR 概述之前整理过一篇AWR 的说明的文档:Oracle AWR(Automatic Workload Repository)说明/tianlesoftware/article/details/4682300从Oracle 10g 开始,Oracle 推出一个工具:AWR(Automatic Workload Repository),并建议用AWR 代替9i 的Statspack.AWR 实质上是一个 Oracle 的内置工具,它采集与性能相关的统计数据,并从那些统计数据中导出性能量度,以跟踪潜在的问题。
AWR的快照由一个MMON的后台进程及其从进程自动地每小时采集一次。
为了节省空间,在Oracle 10g中快照会保留7天,11g的快照保留8天,超过的会自动删除,快照频率和保留时间都可以由用户修改。
AWR 使用几个表来存储采集的统计数据,所有的表都存储在新的名称为SYSAUX 的特定表空间中的SYS模式下,并且以 WRM$_* 和 WRH$_* 的格式命名:(1)WRM$_*类表存储元数据信息(如检查的数据库和采集的快照)(2)WRH$_*类保存实际采集的统计数据。
H 代表"历史数据(historical)"而 M 代表"元数据(metadata)".在这些表上构建了几种带前缀 DBA_HIST_ 的视图,这些视图可以用来编写您自己的性能诊断工具。
视图的名称直接与表相关;例如,视图DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上构建的。
二。
AWR 快照的删除2.1 为什么要删除AWR 快照?默认情况下,对于数据库自身产生的AWR 报告,会保留7天或8天。
SQL> select dbid, retention fromdba_hist_wr_control;DBID RETENTION-------------------------------------------------------------------------------------879543530 +00008 00:00:00.0这个是我11g的库,显示为8天,如果是Oracle 10g,则会保留7天。
Oracle数据库快照创建
Oracle数据库快照创建1.⾸先准备两个库⼀个是源数据库(本地数据库)、⼀个是备份数据库(远程数据库)。
(注意:两个库的名称和登录名最好是⼀样这样⽅便识别)2.创建两个库的数据连接。
(注意:如果只做本地数据库数据快照到备份数据的单向同步的话,我们只需要在备份数据库创建改数据库连接。
如果是要做源数据库和备份双向同步到话,需要在源数据库和备份库同时创建数据库连接)⽅案⼀。
单向同步数据库快照,也就是源数据库数据改变时,对应备份数据库数据跟着改变,备份数据库数据改变不影响源数据库数据。
(1).备份机配置连接到主数据库( 192.168.2.61)的oracle\product\10.2.0\db_1\NETWORK\ADMIN 找到tnsname.ora这个⽂件添加⼀下备份MASTER =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.61)(POR T = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))(2).在备份数据库创建私有的数据库连接 database link在这边要阐述⼀下,分别登录主备机sys数据库分别创建ismc 数据库⽤户并给他们赋予对应的权限 grant connect to ismc,grant resource to ismc两个基本权限在给备份数据库imsc 赋予grant create database link to ismc,grant create any snapshot to ismc 数据库连接和数据库快照的权限--conn ismc/ismc@backup 创建私有连接 grant create database link to ismc登录备份库以下操作都在改⽤户下操作create database link /doc/f216775022.htmlconnect to ismc identifiedby ismc using'master';(master 其实就是上⾯配置的那个MASTER )(3).在源数据库和备份数据库创建表create table test_user(id number(10) primary key,name varchar(2),age number(3));--测试数据库连接是否成功select * from test_user@/doc/f216775022.html;(4).创建数据库快照⽬的数据库create snapshot sn_test_user as select* from test_user@/doc/f216775022.html;(5).创建单向同步刷新源数据改变⽬标数据库改变⽬标数据库改变原数据库不改变的触发器create or replace trigger ismc.tri_test_user_afrafter insert or update or delete on ismc.sn_test_userfor each rowbeginif deleting thendelete from test_user where id=:old.id;end if;if inserting theninsert into test_user(id,name,age)values(:new.id,:/doc/f216775022.html,:new.age);end if;if updating thenupdate test_user set name=:/doc/f216775022.htmlwhere id=:old.id;end if;end tri_test_user_afr;(6).设置快照的刷新时间(只能选择⼀种刷新⽅式,推荐使⽤快速刷新,这样才可以⽤触发器双向同步)快速刷新这个只适合做测试时候使⽤真正项⽬中我们应该考虑正确权衡时间来做数据库快照是数据库的性能达到最⼤化alter snapshot sn_test_user refresh fast start with sysdate next sysdate with primary key;完全刷新 oracle ⾃动在30秒进⾏第⼀次完成刷新,以后每个30秒完全刷新⼀次alter snapshot sn_test_user refresh complete start with sysdate+(30/24*60*60) next sysdate+(30/24*60*60);⼿动刷新快照字啊没有⾃动刷新的情况下,可以⼿动刷新快照--⼿动刷新⽅式1begindbms_refresh.refresh('sn_test_user');end;--⼿动刷新⽅式2//第⼀个参数是快照,第⼆个参数F是快照刷新 C 是完全刷新exec dbms_snapshot.refresh('sn_test_user','f');(7).查看快照最后⼀次刷新时间select name,last_refresh from all_snapshot_refresh_times;(8).查看快照下次执⾏时间select last_date,next_date, what from user_jobs order by next_date;⽅案⼀。
oracle数据库快照语句
在Oracle数据库中,快照是一种用于捕获数据库对象在某个时刻的状态信息的技术。
通过使用快照,可以在不破坏原始数据的情况下查看不同时刻的对象状态。
Oracle提供了多种类型的快照,例如表快照、索引快照和库存快照等。
要创建表快照,可以使用CREATE SNAPSHOT语句。
下面是一个示例:
sql复制代码
CREATE SNAPSHOT my_snapshot
AS SELECT * FROM my_table;
上述语句创建了一个名为"my_snapshot"的快照,该快照将"my_table"表在创建快照时的状态信息捕获下来。
之后可以使用该快照来查询"my_table"表在快照时刻的状态,而不影响表中的实际数据。
除了表快照外,Oracle还提供了其他类型的快照,例如索引快照和库存快照。
这些快照的创建方式略有不同,具体语法和用法可以参考Oracle官方文档或相关资料。
需要注意的是,使用快照可能会对数据库性能产生一定的影响,尤其是在大型数据库中。
因此,在使用快照之前,应该仔细评估其对数据库性能的影响,并采取适当的措施来优化性能。
Oracle诊断监视工具:ash性能报告的使用方法
Oracle诊断监视⼯具:ash性能报告的使⽤⽅法活动会话历史报告活动会话历史v$active_session_history视图提供了在实例级别抽取会话活动信息.活动会话每分钟会被抽样⼀次且被存储在sga中的循环缓冲区中.任何被连接到数据库且正等待⼀个不属于空闲等待事件的会话会被考虑是⼀个活动的会话.每个会话抽样都是⼀组⾏数据且通过v$active_session_history视图来返回每个被抽样活动会话的⾏数据,返回最新被抽样会话的第⼀⾏数据.因为活动会话抽样是存储在sga中的循环缓冲区中,系统活动越⼤的,活动时间越少会话的可以被存储在循环缓冲区中.这意味着在这期间被抽样的每个会话会出现在v$视图中或者会话活动的时间会在v$视图中被显⽰,这完全依赖于数据库活动情况.作为awr快照的⼀部分,v$active_session_history视图的内容也会被刷新到磁盘.因为当有繁忙的系统活动时v$视图的内容会变得⾮常⼤,只有会⼀部分会话被抽样并写到磁盘.通过只捕获活动的会话,那么只会⽣成正在被执⾏的会话的相关的⼀组数据⽽不是系统中所有会话的数据.使⽤ash能让你对v$active_session_history视图中的当前数据和dba_hist_active_sess_history视图中的历史数据进⾏检查和性能分析,通常可能避免需要重放⼯作量来收集额外的性能跟踪信息.ash包含了被捕获的每⼀个sql语句的执⾏计划.可以使⽤这个信息来识别哪部分sql执⾏消耗了⼤部分的sql执⾏时间.ash报告展现了以下各种信息:sql语句的sql标识符sql执⾏计划标识符和⽤于执⾏sql语句的sql执⾏计划的哈希值sql执⾏计划信息对象数,⽂件数和块数等待事件标识符和参数会话标识符和会话序列号模块和操作名服务哈希标识符⽤户组标识符使⽤活动会话历史报告来执⾏以下性能分析:短暂的性能问题通常只会持续⼏分钟.通过各种维度或者象时间,会话,模块,操作或sql_id的组合来进⾏有范围或针对性的性能分析短暂的性能问题是短暂的不在出现在addm分析中.addm试图报告指出在分析周期内最对DB时间最有影响的性能问题.如果⼀个特定的问题持续⾮常短的时间那么它可的严重性可能会被平均化或者由于其它的性能问题使其影响最⼩化.然⽽这个问题可能在addm中不会出现,⼀个性能问题是否会被addm捕获依赖于这个问题的持续时间与⽣成awr快照的时间间隔.如果⼀个性能问题在两个awr快照⽣成的时间间隔内持续了很长时间那么这个问题会被addm捕获.例如如果awr快照时间被设置为⼀个⼩时,⼀个性能问题持续了30分钟那么这个问题不会被认为是⼀个短暂的性能问题因为它在快照时间间隔内持续很长时间它会被addm捕获.然⽽如果⼀个性能问题仅仅持续2分钟可能会被认为是⼀个短暂的性能问题因为在快照时间间隔内它只持续了很短的时间所以这个问题不会出现在addm报告中.例如如果你被告知系统在上午10:00到上午10:10之间很慢,但addm分析的时间间隔是从上午10:00到上午11:00.那么在addm报告中不会显⽰这个问题.ASH报告分成多个部分.HTML报告包括能快速导航到不同部分的链接.⽣成⼀个ash报告ashrpt.sql脚本⽤来⽣成⼀个html或text格式的报告来显⽰特定持续期间的ash信息.为了⽣成⼀个ash报告执⾏以下操作:1.在sql提⽰符处输⼊:@$ORACLE_HOME/rdbms/admin/ashrpt.sql2.指定你想⽣成的报告格式html或text:Enter value for report_type: text在这个例⼦中选择⽣成text格式的ash报告3.指定在ash报告开始时间:Enter value for begin_time: -10在这个例⼦中开始时间是当前时间之前的10分钟4.输⼊这个报告持续的时间如果你想捕获从指定的开始时间到当前时间的之间的ash信息:Enter value for duration:在这个例⼦中缺省是持续到当前的系统时间减去指定的开始时间的结果就是持续的时间.5.输⼊报告名或使⽤缺省的报告名:Enter value for report_name:Using the report name ashrpt_1_0310_0131.txt在这个例⼦中使⽤缺省的ash名ashrpt_1_0310_0131被⽣成.这个报告会从当前系统时间之前的10分钟开始收集ash信息⼀直持续到当前时间结束.对⼀个指定的数据库实例⽣成ash报告ashrpti.sql脚本⽤来对⼀个指定的数据库和实例⽣成⼀个html或text格式的报告来显⽰特定持续期间的ash信息.这个报告在设置收集ash信息时间之前允许你指定数据库和实例,为了⽣成⼀个ash报告执⾏以下操作:1.在sql提⽰符处输⼊:@$ORACLE_HOME/rdbms/admin/ashrpti.sql2.指定你想⽣成的报告格式html或text:Enter value for report_type: html在这个例⼦中选择⽣成html格式的ash报告3.列出了可⽤的数据库ID和实例号:Instances in this Workload Repository schema~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~DB Id Inst Num DB Name Instance Host----------- -------- ------------ ------------ ------------3349173529 1 cs cs cs13349173529 1 test1 test1 test1输⼊数据库标识符(dbid)和实例号(inst_num):Enter value for dbid: 3349173529Using 3349173529 for database idEnter value for inst_num: 14.这⼀步仅适⽤于对⼀个活动的data guard物理备库实例收集ash报告,如果不是这种情况,可以跳过这⼀步.为了对⼀个物理备库⽣成⼀个ash 报告,这个备库实例必需是以只读⽅式打开.这个ash报告包含了主数据库存储在磁盘中的ash信息和备数据库内存中的ash信息.指定对于主数据库或备数据库是否使⽤数据抽样来⽣成报告:You are running ASH report on a Standby database.To generate the report over data sampled on the Primary database, enter 'P'.Defaults to 'S' - data sampled in the Standby database.Enter value for stdbyflag:Using Primary (P) or Standby (S): S在这个例⼦中选择了缺省值S备库5.指定在ash报告开始时间:Enter value for begin_time: -10在这个例⼦中开始时间是当前时间之前的10分钟6.输⼊这个报告持续的时间如果你想捕获从指定的开始时间到当前时间的之间的ash信息:Enter value for duration:在这个例⼦中缺省是持续到当前的系统时间减去指定的开始时间的结果就是持续的时间.7.以秒为单位指定slot_widthEnter value for slot_width:在这个例⼦中使⽤缺省值8.根据后续提⽰的说明解释输⼊报告以下⽬标信息的值:target_session_idtarget_sql_idtarget_wait_classtarget_service_hashtarget_module_nametarget_action_nametarget_client_idtarget_plsql_entry9.输⼊报告名或使⽤缺省的报告名:Enter value for report_name:Using the report name ashrpt_1_0310_0131.txt在这个例⼦中使⽤缺省的ash名ashrpt_1_0310_0131被⽣成.这个报告会对数据库ID为3349173529的数据库实例从当前系统时间之前的10分钟开始收集ash信息⼀直持续到当前时间结束.对oracle rac⽣成ash报告ashrpti.sql脚本⽤来对oracle rac环境中的指定的数据库和实例⽣成⼀个html或text格式的报告来显⽰特定持续期间的ash信息只有被写⼊磁盘的ash数据才会被⽤来⽣成ash报告.这个报告只会对在dba_hist_active_sess_history表中在过去10分钟之内找到的ash进⾏抽样.为了在oracle rac环境中⽣成ash报告执⾏以下操作:1.在sql提⽰符处输⼊:@$ORACLE_HOME/rdbms/admin/ashrpti.sql2.指定你想⽣成的报告格式html或text:Enter value for report_type: html在这个例⼦中选择⽣成html格式的ash报告3.列出了可⽤的数据库ID和实例号:Instances in this Workload Repository schema~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~DB Id Inst Num DB Name Instance Host----------- -------- ------------ ------------ ------------3349173529 1 cs cs cs13349173529 1 test1 test1 test13349173529 2 test2 test2 test23349173529 3 test3 test3 test33349173529 4 test4 test4 test4输⼊数据库标识符(dbid)和实例号(inst_num):Enter value for dbid: 3349173529Using database id: 3349173529Enter instance numbers. Enter 'ALL' for all instances in an OracleRAC cluster or explicitly specify list of instances (e.g., 1,2,3).Defaults to current instance.Enter value for inst_num: ALLUsing instance number(s): ALL4.指定在ash报告开始时间:Enter value for begin_time: -1:10在这个例⼦中开始时间是当前时间之前的1⼩时10分钟5.输⼊这个报告持续的时间如果你想捕获从指定的开始时间到当前时间的之间的ash信息:Enter value for duration: 10在这个例⼦中持续的时间是10分钟.6.以秒为单位指定slot_widthEnter value for slot_width:在这个例⼦中使⽤缺省值7.根据后续提⽰的说明解释输⼊报告以下⽬标信息的值:target_session_idtarget_sql_idtarget_wait_classtarget_service_hashtarget_module_nametarget_action_nametarget_client_idtarget_plsql_entry8.输⼊报告名或使⽤缺省的报告名:Enter value for report_name:Using the report name ashrpt_1_0310_0131.txt在这个例⼦中使⽤缺省的ash名ashrpt_1_0310_0131被⽣成.这个报告会对数据库ID为3349173529的数据库的所有实例从当前系统时间之前的1⼩时10分钟开始收集ash信息⼀直持续到当前时间之前的1⼩时为⽌结束.使⽤ash报告在⽣成ash报告之后,可以重新检索哪些标识为短暂性能问题的信息.ash报告的内容分成了以下⼏个部分:top eventsload profiletop sqltop pl/sqltop javatop sessionsto objects/files/latchesactivity over timetop evnets顶级等待事件部分描述了被抽样会话活动中由⽤户,后台等产⽣的顶级等待事件,使⽤这些信息可以识别是哪些等待事件造成了短暂的性能问题.顶级等待事件包含以下部分:顶级⽤户事件这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的⽤户进程等待事件.顶级后以事件这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的后台进程等待事件.顶级等待事件参数P1/P2/P3这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的等待事件的参数值它通过总的等待时间(%Event)百分⽐进⾏排序后被显⽰.对于每⼀个等待事件p1,p2,p3的值与等待事件参数parameter 1,parameter 2,parameter 3这三个列相关联.load profileload profile部分描述了在抽样的会话活动中的负载分析.使⽤这部分信息可以识别造成短暂性能问题的服务,客户或sql命令类型.负载概要部分包含以下部分信息:top service/module这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的服务和模块信息top client ids这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的客户端的id信息它是数据库会话中应⽤程序的特定标识符top sql command types这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的sql命令类型⽐如select或updatetop phases of execution这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的执⾏步骤⽐如sql,pl/sql和java的编译和执⾏操作.top sql顶级sql部分描述了抽样会话活动中的顶级sql语句,使⽤这部分信息可以识别出造成短暂性能问题的⾼负载sql语句顶级sql部分包含以下信息:top sql with top eventstop sql with top row sourcestop sql using literalstop parsing module/actioncomplete list of sql texttop sql with top events这部分信息显⽰了在抽样会话活动中占总的等待事件很⾼百分⽐的sql语句.top sql with top row sources这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的sql语句和它们的详细执⾏计划信息.通过这部分信息可以识别出哪部分的sql执⾏消耗了⼤量的sql执⾏时间top sql using literals这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的使⽤literal值的sql语句.可以重新检查这部分sql语句看是否能使⽤绑定变量来代替literal 值.top parsing module/action这部分信息显⽰了在抽样会话活动中当执⾏解析sql语句时占很⾼百分⽐的模块和操作complete list of sql text这部分信息显⽰了顶级sql语句的完整的⽂本内容top pl/sql这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的pl/sql过程.top java这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的java程序top sessions这部分信息描述了会话正在等待的⼀个特定等待事件.使⽤这部分信息来识别在抽样会话活动中占很⾼百分⽐的会话它们可能是造成短暂性能问题的原因.top sessions部分包含以下信息:top sessions这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的等待会话top blocking sessions这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的阻塞会话top sessions running pqs这部分信息显⽰了哪些在抽样会话活动中占很⾼百分⽐的正处于等待的并⾏查询top objects/files/latches这部分信息显⽰了通常最消耗数据库资源的信息括以下部分:top db objects这部分信息显⽰了在抽样会话活动中占所有引⽤对象很⾼百分⽐的数据库对象(⽐如表和索引)top db files这部分信息显⽰了在抽样会话活动中占访问量很⾼百分⽐的数据库⽂件top latches这部分信息显⽰了在抽样会话活动中占很⾼百分⽐的闩锁信息闩锁是⼀种简单低级别串⾏化机制⽤来保护sga中的共享数据结构.⽐如闩锁保护当前访问数据库和缓冲区缓存中数据块结构的⽤户列表.当维护或查找这些结构时服务器或后台进程请求持有闩锁的时间是⾮常短暂的.闩锁的实现依赖于操作系统特别是⼀个进程等待获取⼀个闩锁多长时间.activity over time这⼀部分是ash报告信息最丰富的⼀部分.这部分信息对于长时间周期的ash报告来说因为在分析期间它提供了关于活动和⼯作负载概要深层次的详细信息.activity over time会被分成10个时段.每个时段的⼤⼩基于分析所持续的时间.第⼀个和最后⼀个时段是奇怪.所有内部时段是相等的⼤⼩它们可以相互⽐较.例如,如果分析时间持续10分钟那么所有的时段将会是每个⼀分钟.然后如果分析时间持续9分30秒,那么外部的时段可能是每个15秒内部的时段可能每个1分钟特定时段中每个时段包含的信息如下:列描述slot time(持续时间) 时段的持续时间solt count 在时段中抽样会话的数量event 在时段中顶级的三个等待事件event count ash抽样等待的等待事件的数量%event ash抽样等待的等待事件在整个分析期间所占的百分⽐当⽐较内部时段时,通过识别异常的event count和slot count列执⾏⼀个倾斜分析.event count列的异常指⽰了在抽样会话中等待的等待事件数量增加了.slot count列的异常指⽰活动的会⾃豪感增加了,因为ash数据只从活动会话中进持抽样说明数据库的负载增加了.通常来说当活动会话抽样的数理和与这些会话相关的等待事件增加时那么这个时段可能会造成短暂性能问题.。
Oracle 快照
CREATE SNAPSHOT snap.DD PCTFREE 10 PCTUSED 40 TABLESPACE snapcost_ts STORAGE (INITIAL 40960 NEXT 57344 PCTINCREASE 0 ) AS SELECT dm, dmmc,note FROM userA.DD@ora_db1.worl; SQL > @snapsql.sql
SQL > SELECT * FROM AA;
日常维护
无论任何时候只要出现网络连接问题,刷新就 会失败。这些错误信息可以在alert log文件中找 到。下面简单介绍一下对这种问题的处理办法:
首先在任务队列中找到刷新快照的的任务编号 SQL > SELECT JOB,what FROM DBA_JOBS; 删除该任务 SQL > EXECUTE DBMS_JOB.REMOVE (JOBNO);
为了维护整个系统应用表的一致性,可能客户会 提出了这样的业务需求,对于系统的应用表采用统一 维护,即在一台服务器上维护。在位置1(数据库 Ora_db1,用户userA)上维护应用表,其他位置 (数据库ora_db2,用户userB;ora_db3,用 户userC和ora_db4,用户UserD)可以直接使用 这些应用表,也就是说在位置1具有对应用表插入、 删除和更新的能力,而在其他地方只能有查询的能力。
SQL> CREATE PUBLIC DATABASE LINK ora_db1.world CONNECT TO SYSTEM IDENTIFIED BY MANAGER USING 'ora_db1.world'; 数据链路也可以建成私有的
创建一个名为Snapshot_ts的表空间来存放快照,并创建一 个和该表空间有关的名为Snap的用户。 SQL > CREATE TABLESPACE snapshot_ts DATAFILE 'c:\orant\dbfiles\prod\snapshot01.dbf' SIZE 30M DEFAULT STORAGE (INITIAL 30 K NEXT 15 K MINEXTENTS 1 MAXEXTENTS 100 PCTINCREASE 0) ONLINE PERMANENT; 数据文件名和表空间大小根据需要复制的应用表的大小来决定
oracle AWR手动开启和关闭
关闭快照exec dbms_workload_repository.modify_snapshot_settings(INTERVAL =>0);--Interval :设置快照收集的频率,以分钟为单位。
可设置的值最小为10分钟,最大为1年。
如果设置该参数值为0,就表示禁用AWR特性。
每30分钟一次自动生成快照Execdbms_workload_repository.modify_snapshot_settings(INTERVAL =>30);--设置Retention :设置快照保存的时间,单位是分钟。
可设置的值最小为1天,最大为100年。
设置该参数值为0的话,就表示永久保留收集的快照信息。
每次保留3天.exec dbms_workload_repository.modify_snapshot_settings(retention => 3 * 24 * 60);----手工创建Oracle快照BEGINsys.DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT();END;/--删除快照:找到DBID:SQL> select dbid from v$databaseDBID---------------4068003495查询视图dba_hist_snapshot以及WRH$_LATCH,确定要清除哪些SNAP_ID:查询视图dba_hist_snapshot确定需要清除的SNAP_ID范围,这里例如为51到130,清除AWR 历史数据:BEGINdbms_workload_repository.drop_snapshot_range(low_snap_id => 51,high_snap_id => 130,dbid => 4068003495);END;本例通过手动的产出AWR报告。
SQL> @?/rdbms/admin/awrrpt.sqlCurrent Instance~~~~~~~~~~~~~~~~DB Id DB Name InstNum Instance----------- ------------ -------- ------------2100083002 TEST 1 testSpecify the Report Type~~~~~~~~~~~~~~~~~~~~~~~Would you like an HTML report, or a plain text report?Enter 'html' for an HTML report, or 'text' for plain textDefaults to 'html'Enter value for report_type: htmlType Specified: htmlInstances in this Workload Repository schema~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~DB Id InstNum DB Name Instance Host------------ -------- ------------ ------------ ------------* 2100083002 1 TEST test even.oracle.comUsing 2100083002 for database IdUsing 1 for instance numberSpecify the number of days of snapshots to choose from~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Entering the number of days (n) will result in the most recent (n) days of snapshots being listed. Pressing <return> without specifying a number lists all completed snapshots.Enter value for num_days: 1Listing the last day's Completed SnapshotsSnap Instance DB Name Snap Id Snap Started Level------------ ------------ --------- ------------------ -----test TEST 12 20 Dec 2012 10:38 113 20 Dec 2012 11:17 114 20 Dec 2012 11:42 115 20 Dec 2012 11:42 116 20 Dec 2012 11:42 117 20 Dec 2012 13:00 118 20 Dec 2012 13:37 119 20 Dec 2012 13:50 120 20 Dec 2012 14:00 121 20 Dec 2012 14:10 122 20 Dec 2012 14:20 123 20 Dec 2012 14:30 124 20 Dec 2012 14:40 125 20 Dec 2012 14:50 126 20 Dec 2012 15:00 127 20 Dec 2012 15:10 128 20 Dec 2012 15:20 129 20 Dec 2012 15:30 130 20 Dec 2012 15:40 131 20 Dec 2012 15:50 132 20 Dec 2012 16:36 1Specify the Begin and End Snapshot IdsEnter value for begin_snap: 30Begin Snapshot Id specified: 30Enter value for end_snap: 32End Snapshot Id specified: 32Specify the Report Name~~~~~~~~~~~~~~~~~~~~~~~The default report file name is awrrpt_1_30_32.html. To use this name,press <return> to continue, otherwise enter an alternative.Enter value for report_name: /home/oracle/20121231_AWR_rpt.html .......................Report written to /home/oracle/20121231_AWR_rpt.html到此AWR report就产生了,我的报表在/home/oracle/20121231_AWR_rpt.html。
ORACLE中AWR快照的深入分析和方法
ORACLE中AWR快照的深入分析和方法我想,对于每一个从事数据库管理信息系统的IT人士,都对ORACLE性能分析和性能研究产生一些兴趣,同时仪受到性能方面的一些困扰。
根据我个人经验,认为每一个要成为ORACLE性能分析的高手,都应该对ORACLE的AWR有一个比较深入的理解和使用。
学会从AWR快照分析中获得对自己有用的信息,是性能分析专家不可少的一个方面,如果再能结合应用服务的日志结合分析的话,是能够分析出一些关键的存在性能问题的SQL,从这些SQL中再进行反推是应用的哪些功能造成的,由此组织技术团队进行优化,循序渐进,不断改进。
一个大的项目的性能优化是一个长期的过程。
以下是AWR的一些关键知识点,不是本人原创,我感觉解释的很透彻。
望阅读后能加深对AWR的理解和认识。
一、WHY——为什么会出现ASH和AWR?1. 10g之前用户的连接将产生会话,当前会话记录保存在v$session中;处于等待状态的会话会被复制一份放在v$session_wait中。
当该连接断开后,其原来的连接信息在v$session和v$session_wait中就会被删除。
这是10g之前的状况。
2. v$session_wait_history与ASH若是一个普通的会话(我是指没有大量地耗费资源),则对于性能调整来说无足轻重。
但若该会话在活动时大量占用了资源(比如:CPU,内存,I/O等),该会话信息的丢失,将无法评测当时的系统瓶颈究竟是什么。
令DBA高兴的是,oracle10g中保留下了v$session_wait中的这些信息。
在10g中新出现了一个视图:v$session_wait_history。
这个视图保存了每个活动session 在v$session_wait中最近10次的等待事件。
但这对于一段时期内的数据库性能状况的监测是远远不够的,为了解决这个问题,在10g中还新添加了一个视图:v$active_session_history。
生成awr报告
生成awr报告AWR(Automatic Workload Repository)是Oracle数据库中记录系统活动的一种工具,它可以提供有关数据库的性能信息、活动和资源消耗的详细报告。
生成AWR报告对于DBA(数据库管理员)来说是非常有用的,因为它可以帮助他们深入了解数据库的性能状况并进行相应的优化。
在本文中,我们将讨论如何生成AWR报告以及如何利用报告中的信息来提升数据库的性能。
一、AWR报告的生成要生成AWR报告,首先需要连接到数据库的命令行界面或使用图形界面工具,如SQL Developer。
在命令行界面中,可以使用SQL*Plus工具来执行以下命令:```$ sqlplus / as sysdba```接下来,输入以下命令生成AWR报告:```SQL> @?/rdbms/admin/awrrpt```该命令将提示您输入开始和结束快照的编号。
快照是AWR中记录系统活动的时间点。
可以运行以下命令来查看可用快照的列表:```SQL> SELECT snap_id, snap_time FROM dba_hist_snapshot;```根据您选择的开始和结束快照的编号,输入相应的值后,AWR 报告将被生成并显示在屏幕上。
您可以使用输出选项将报告导出到文本文件中,以便于更详细地分析。
二、AWR报告的内容AWR报告提供了大量的性能信息,可以帮助我们识别和解决数据库中的性能问题。
报告的内容通常分为以下几个部分:1. 概要信息:报告的开头会给出数据库的基本信息,如数据库名称、开始和结束快照的时间范围等。
这些信息有助于我们了解报告所涵盖的时间段和数据库的整体情况。
2. 高负载事件:报告会列出数据库中产生了最大负荷的事件。
这些事件可能是CPU消耗高、IO消耗高、等待时间长等。
通过查看这些事件,我们可以找到潜在的性能瓶颈所在,并采取相应的优化措施。
3. 基准统计信息:报告会显示数据库在报告期间的基准统计信息,包括CPU利用率、内存利用率、等待事件等。
Oracle Banking Digital Experience快照用户手册说明书
Quick Snapshot User Manual Oracle Banking Digital ExperienceRelease 22.1.0.0.0Part No. F56934-01May 2022Quick Snapshot User ManualMay 2022Oracle Financial Services Software LimitedOracle ParkOff Western Express HighwayGoregaon (East)Mumbai, Maharashtra 400 063IndiaWorldwide Inquiries:Phone: +91 22 6718 3000Fax:+91 22 6718 3001/financialservices/Copyright © 2006, 2022, Oracle and/or its affiliates. All rights reserved.Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks of their respective owners.U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are “commercial computer software” pursuant to the applicable F ederal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.This software or hardware is developed for general use in a variety of information management applications. It is not developed or intended for use in any inherently dangerous applications, including applications that may create a risk of personal injury. If you use this software or hardware in dangerous applications, then you shall be responsible to take all appropriate failsafe, backup, redundancy, and other measures to ensure its safe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of this software or hardware in dangerous applications.This software and related documentation are provided under a license agreement containing restrictions on use and disclosure and are protected by intellectual property laws. Except as expressly permitted in your license agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license, transmit, distribute, exhibit, perform, publish or display any part, in any form, or by any means. Reverse engineering, disassembly, or decompilation of this software, unless required by law for interoperability, is prohibited.The information contained herein is subject to change without notice and is not warranted to be error-free. If you find any errors, please report them to us in writing.This software or hardware and documentation may provide access to or information on content, products and services from third parties. Oracle Corporation and its affiliates are not responsible for and expressly disclaim all warranties of any kind with respect to third-party content, products, and services. Oracle Corporation and its affiliates will not be responsible for any loss, costs, or damages incurred due to your access to or use of third-party content, products, or services.Table of Contents1.Preface .............................................................................................................................................. 1–1 1.1Intended Audience ...................................................................................................................... 1–1 1.2Documentation Accessibility ....................................................................................................... 1–1 1.3Access to Oracle Support ........................................................................................................... 1–1 1.4Structure ..................................................................................................................................... 1–11.5Related Information Sources ...................................................................................................... 1–12.Transaction Host Integration Matrix .............................................................................................. 2–13.Quick Snapshot ................................................................................................................................ 3–1Preface1. Preface 1.1 Intended AudienceThis document is intended for the following audience:∙Customers∙Partners1.2 Documentation AccessibilityFor information about Oracle's commitment to accessibility, visit the Oracle Accessibility Program website at /pls/topic/lookup?ctx=acc&id=docacc.1.3 Access to Oracle SupportOracle customers have access to electronic support through My Oracle Support. For information, visit/pls/topic/lookup?ctx=acc&id=info or visit/pls/topic/lookup?ctx=acc&id=trs if you are hearing impaired.1.4 StructureThis manual is organized into the following categories:Preface gives information on the intended audience. It also describes the overall structure of the User Manual.Introduction provides brief information on the overall functionality covered in the User Manual.The subsequent chapters provide information on transactions covered in the User Manual.Each transaction is explained in the following manner:∙Introduction to the transaction∙Screenshots of the transaction∙The images of screens used in this user manual are for illustrative purpose only, to provide improved understanding of the functionality; actual screens that appear in the application mayvary based on selected browser, theme, and mobile devices.∙Procedure containing steps to complete the transaction- The mandatory and conditional fields of the transaction are explained in the procedure. If a transaction contains multipleprocedures, each procedure is explained. If some functionality is present in manytransactions, this functionality is explained separately.1.5 Related Information SourcesFor more information on Oracle Banking Digital Experience Release 22.1.0.0.0, refer to the following documents:∙Oracle Banking Digital Experience Licensing Guide∙Oracle Banking Digital Experience Installation ManualsTransaction Host Integration Matrix2. Transaction Host Integration Matrix LegendsHome3. Quick SnapshotQuick Snapshot feature is available on the login page of futura bank mobile application. Using this option user can view the account summary from mobile application and get important account information in a single view without going on the dashboard.Quick Snapshot displays the account balance of Current and Savings account and last 5 transactions on those accounts.Pre-RequisitesThe User must download futura bank Application and have a valid account with bank with online banking enabled.To view accounts summary:1. Launch the futura bank application Page. The futura bank login page appears.futura bank home page2. In the Username field, enter the user ID.3. In the Password field, enter the password.4. Click Quick Snapshot to view the account details. Enable Quick Snapshot screen appears,This is in case of scenario wherein the user is enabling quick snapshot for the first time.Enable Quick Snapshot5. Click Enable Quick Snapshot for enabling quick snapshot.6. User is navigated to the account snapshot.Note: This is one time activity for enabling the quick snapshot. From next time user will directly be taken to account snapshot after clicking on Quick Snapshot button.Account Snapshot7. Click icon to view the balance details (Current and Available Balance) and also the last 5transactions of accounts.ORClick Disable Quick Snapshot to disable the quick snapshot feature.Note: Click icon to close the account details.Once the user disables Quick Snapshot, he/she will have to enable it again to view the Quick snapshot.Account Balance and Recent Transaction DetailsField DescriptionField Name DescriptionAccount Nickname The nickname given to the account by the account holder. Account Number Account number in masked format.Net Balance The amount that can be withdrawn from the account. Balance DetailsCurrent Balance The current balance in the account.Available Balance The current available balance in the account.Recent TransactionsDate Date on which the transaction was performed. Description Short description of the transaction.Amount Transaction amount.FAQs1. What is the benefit of using Quick Snapshot feature?Quick Snapshot is a quick & convenient way to access your accounts summary, without any need to login to application.2. Who can use Quick Snapshot feature?Any futura bank customer who has downloaded mobile application can use this feature 3. Is this feature available for all type of accounts (Current, Savings, Loan, Depositsand Credit Cards)?No, this feature is only available for Current and Savings accounts.4. How can the user disable Quick Snapshot?User can anytime disable this feature by clicking on Disable Quick Snapshot button on the Quick Snapshot screen.5. Do I need to authenticate myself with my credentials/ alternate login every time Iaccess quick snapshot?You will need to authenticate only when you are enabling quick snapshot, subsequently clicking on quick snapshot will display the account summary and recent transactions without any authentication.Home。
oracle快照过旧终极篇
ORA-01555 快照过旧快照过旧这个问题,自从接触oracle开始就频繁遇到,到目前为止可能已接触过不止几十次。
要写case的话,也许不止一二百页。
这个错误产生在多个方面,如select时,update 时,delete时,exp/expdp时,好像产生的原因有很多。
产生原因先看一下oracle 是如何定义这个ora错误的。
01555, 00000, "snapshot too old: rollback segment number %s with name \"%s\" too small"// *Cause: rollback records needed by a reader for consistent read are// overwritten by other writers原因一:SQL语句执行时间太长,或者UNDO表空间过小,或者事务量过大,或者过于频繁的提交,导致执行SQL过程中进行一致性读时,SQL执行后修改的前镜像(即UNDO 数据)在UNDO表空间中已经被覆盖,不能构造一致性读块(CR blocks)。
那有人会问为什么oracle要覆盖这条undo记录,不设置永久保留或保留时间。
那我们需要从undo表空间说起。
我们都知道undo表空间中保留的对象是事务的前镜像,也就是对修改记录的备份。
那么说要永久保留的这些记录的话是不现实的,需要N多undo表空间,这显然不合适。
但可对undo记录设置一个保留时间。
Oracle使用这个参数控制undo_retention,10g中这个参数的默认设置是900s。
这个参数让我们进入了一个误区。
很多时候,我们因为ora-01555错误去修改这个undo_retention,让这个参数更大,但是很难收到良好的效果,可能依然会报快照过旧。
下面我们来分析一下首先我们要了解undo表空间的extent包括哪几部分ACTIVE活动状态。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 物化视图一. 理论部分Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本地副本,或者用来生成基于数据表求和的汇总表。
物化视图存储基于远程表的数据,也可以称为快照。
Oracle的物化视图提供了强大的功能,可以用于预先计算并保存表连接或聚集等耗时较多的操作的结果,这样,在执行查询时,就可以避免进行这些耗时的操作,而从快速的得到结果。
物化视图有很多方面和索引很相似:使用物化视图的目的是为了提高查询性能;物化视图对应用透明,增加和删除物化视图不会影响应用程序中SQL语句的正确性和有效性;物化视图需要占用存储空间;当基表发生变化时,物化视图也应当刷新。
物化视图可以查询表,视图和其它的物化视图。
通常情况下,物化视图被称为主表(在复制期间)或明细表(在数据仓库中)。
对于复制,物化视图允许你在本地维护远程数据的副本,这些副本是只读的。
如果你想修改本地副本,必须用高级复制的功能。
当你想从一个表或视图中抽取数据时,你可以用从物化视图中抽取。
对于数据仓库,创建的物化视图通常情况下是聚合视图,单一表聚合视图和连接视图。
在复制环境下,创建的物化视图通常情况下主键,rowid,和子查询视图。
REFRESH 子句[refresh [fast|complete|force][on demand | commit][start with date] [next date][with {primary key|rowid}]]默认情况下,如果没指定刷新方法和刷新模式,则Oracle默认为FORCE和DEMAND。
物化视图可以分为以下三种类型:包含聚集的物化视图;只包含连接的物化视图;嵌套物化视图。
三种物化视图的快速刷新的限制条件有很大区别,而对于其他方面则区别不大。
创建物化视图时可以指定多种选项,下面对几种主要的选择进行简单说明:创建方式(Build Methods):包括BUILD IMMEDIATE和BUILD DEFERRED两种。
BUILD IMMEDIATE是在创建物化视图的时候就生成数据,而BUILD DEFERRED则在创建时不生成数据,以后根据需要在生成数据。
默认为BUILD IMMEDIATE。
查询重写(Query Rewrite):包括ENABLE QUERY REWRITE和DISABLE QUERY REWRITE两种。
分别指出创建的物化视图是否支持查询重写。
查询重写是指当对物化视图的基表进行查询时,Oracle会自动判断能否通过查询物化视图来得到结果,如果可以,则避免了聚集或连接操作,而直接从已经计算好的物化视图中读取数据。
默认为DISABLE QUERY REWRITE。
刷新(Refresh):指当基表发生了DML操作后,物化视图何时采用哪种方式和基表进行同步。
刷新的模式有两种:ON DEMAND和ON COMMIT。
ON DEMAND和ON COMMIT物化视图的区别在于其刷新方法的不同,ON DEMAND指物化视图在用户需要的时候进行刷新,可以手工通过DBMS_MVIEW.REFRESH等方法来进行刷新,也可以通过JOB定时进行刷新,即更新物化视图,以保证和基表数据的一致性;而ON COMMIT是说,一旦基表有了COMMIT,即事务提交,则立刻刷新,立刻更新物化视图,使得数据和基表一致。
对基表,平常的COMMIT在0.01秒内可以完成,但在有了ON COMMIT视图后,居然要6秒。
速度减低了很多倍。
ON COMMIT视图对基表的影响可见一斑。
刷新的方法有四种:FAST、COMPLETE、FORCE和NEVER。
1. FAST:增量刷新用物化视图日志来发送主表已经修改的数据行到物化视图中.如果指定REFRESH FAST子句,那么应该对主表创建物化视图日志,故当用FAST选项创建物化视图,必须创建基于主表的视图日志。
SQL> CREATE MATERIALIZED VIEW LOG ON emp;Materialized view log created.对于增量刷新选项,如果在子查询中存在分析函数,则物化视图不起作用。
2. COMPLETE:刷新对整个物化视图进行完全的刷新。
3. FORCE:当指定FORCE子句,如果增量刷新可用Oracle将完成增量刷新,否则将完成完全刷新,如果不指定刷新方法(FAST, COMPLETE, or FORCE),Force选项是默认选项。
4. NEVER:指物化视图不进行任何刷新。
默认值是FORCE ON DEMAND。
在建立物化视图的时候可以指定ORDER BY语句,使生成的数据按照一定的顺序进行保存。
不过这个语句不会写入物化视图的定义中,而且对以后的刷新也无效。
物化视图日志:如果需要进行快速刷新,则需要建立物化视图日志。
物化视图日志根据不同物化视图的快速刷新的需要,可以建立为ROWID或PRIMARY KEY类型的。
还可以选择是否包括SEQUENCE、INCLUDING NEW VALUES以及指定列的列表。
可以指明ON PREBUILD TABLE语句将物化视图建立在一个已经存在的表上。
这种情况下,物化视图和表必须同名。
当删除物化视图时,不会删除同名的表。
这种物化视图的查询重写要求参数QUERY_REWRITE_INTEGERITY必须设置为trusted或者stale_tolerated。
物化视图可以进行分区。
而且基于分区的物化视图可以支持分区变化跟踪(PCT)。
具有这种特性的物化视图,当基表进行了分区维护操作后,仍然可以进行快速刷新操作。
对于聚集物化视图,可以在GROUP BY列表中使用CUBE或ROLLUP,来建立不同等级的聚集物化视图。
主键和ROWID子句:WITH PRIMARY KEY选项生成主键物化视图,也就是说物化视图是基于主表的主键,而不是ROWID(对应于ROWID子句). PRIMARY KEY是默认选项,为了生成PRIMARY KEY子句,应该在主表上定义主键,否则应该用基于ROWID的物化视图.主键物化视图允许识别物化视图主表而不影响物化视图增量刷新的可用性。
Rowid物化视图只有一个单一的主表,不能包括下面任何一项:1. Distinct 或者聚合函数.2. Group by,子查询,连接和SET操作1.主键物化视图:下面的语法在远程数据库表emp上创建主键物化视图SQL> CREATE MATERIALIZED VIEW mv_emp_pkREFRESH FAST START WITH SYSDATENEXT SYSDATE + 1/48WITH PRIMARY KEYAS SELECT * FROM emp@remote_db;Materialized view created.注意:当用FAST选项创建物化视图,必须创建基于主表的视图日志,如下:SQL> CREATE MATERIALIZED VIEW LOG ON emp;Materialized view log created.2.Rowid物化视图:下面的语法在远程数据库表emp上创建Rowid物化视图SQL> CREATE MATERIALIZED VIEW mv_emp_rowid REFRESH WITH ROWID AS SELECT * FROM emp;3.子查询物化视图: 下面的语法在远程数据库表emp上创建基于emp和dept表的子查询物化视图SQL> CREATE MATERIALIZED VIEW mv_empdeptAS SELECT * FROM emp e WHERE EXISTS(SELECT * FROM dept d WHERE e.dept_no = d.dept_no)刷新时间:START WITH子句通知数据库完成从主表到本地表第一次复制的时间,应该及时估计下一次运行的时间点, NEXT 子句说明了刷新的间隔时间.SQL> CREATE MATERIALIZED VIEW mv_emp_pk REFRESH FAST START WITH SYSDATENEXT SYSDATE + 2WITH PRIMARY KEYAS SELECT * FROM emp;在上面的例子中,物化视图数据的第一个副本在创建时生成,以后每两天刷新一次.create materialized view MV_LVY_LEVYDETAILDATATABLESPACE ZGMV_DATA --保存表空间BUILD DEFERRED --延迟刷新不立即刷新refresh force --如果可以快速刷新则进行快速刷新,否则完全刷新on demand --按照指定方式刷新start with to_date('24-11-2005 18:00:10', 'dd-mm-yyyy hh24:mi:ss') --第一次刷新时间next TRUNC(SYSDATE+1)+18/24 --刷新时间间隔asSELECT * FROM emp;物化视图由于是物理真实存在的,故可以创建索引。
二. 物化视图实例物化视图的快速刷新采用了增量的机制,在刷新时,只针对基表上发生变化的数据进行刷新。
因此快速刷新是物化视图刷新方式的首选。
但是快速刷新具有较多的约束,而且对于采用ON COMMIT模式进行快速刷新的物化视图更是如此。
对于包含聚集和包含连接的物化视图的快速刷新机制并不相同,而且对于多层嵌套的物化视图的快速刷新更是有额外的要求。
如此多的限制一般很难记全,当建立物化视图失败时,Oracle给出的错误信息又过于简单,有时无法使你准确定位到问题的原因。
Oracle提供的DBMS_MVIEW.EXPLAIN_MVIEW过程可以帮助你快速定位问题的原因。
下面通过一个例子来说明,如果通过这个过程来解决问题。
建立一个快速刷新的嵌套物化视图:SQL> CREATE TABLE B (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30));表已创建。
SQL> CREATE TABLE C (ID NUMBER PRIMARY KEY, NAME VARCHAR2(30));表已创建。
SQL> CREATE TABLE A (ID NUMBER, BID NUMBER, CID NUMBER, NUM NUMBER,2 CONSTRAINT FK_A_B_BID FOREIGN KEY (BID) REFERENCES B(ID),3 CONSTRAINT FK_A_C_BID FOREIGN KEY (CID) REFERENCES C(ID));表已创建。