版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1: HYPERLINK t _blank Oracle实例(Instance) 在一个服务器中,每一个运行的 HYPERLINK t _blank Oracle数据库都与一个数据库实例相联系,实例是我们访问数据库的手段。实例在操作系统中用ORACLE_SID来标识,在 HYPERLINK t _blank Oracle中用参数INSTANCE_NAME来标识,它们两个的值是相同的。数据库启动时,系统首先在服务器内存中分配系统全局区(SGA),构成了Oracle的内存结构,然后启动若干个常驻内存的操作系统进程,即组成了 HYPERLINK t _blank Oracle的进程结构,内存区域和后
2、台进程合称为一个 HYPERLINK t _blank Oracle实例。 数据库与实例之间是1对1/n的关系,在非并行的数据库系统中每个 HYPERLINK t _blank Oracle数据库与一个实例相对应;在并行的数据库系统中,一个数据库会对应多个实例,同一时间用户只与一个实例相联系,当某一个实例出现故障时,其他实例自动服务,保证数据库正常运行。在任何情况下,每个实例都只可以对应一个数据库。2: HYPERLINK t _blank Oracle 10g动态内存管理内存是影响数据库性能的重要因素,Oracle8i使用静态内存管理, HYPERLINK t _blank Oracle 1
3、0g使用动态内存管理。所谓静态内存管理,就是在数据库系统中,无论是否有用户连接,也无论并发用量大小,只要数据库服务在运行,就会分配固定大小的内存;动态内存管理允许在数据库服务运行时对内存的大小进行修改,读取大数据块时使用大内存,小数据块时使用小内存,读取标准内存块时使用标准内存设置。按照系统对内存使用方法的不同, HYPERLINK t _blank Oracle数据库的内存可以分为以下几个部分:系统全局区:SGA(System Global Area)程序全局区:PGA(Programe Global Area)排序池:(Sort Area)大池:(Large Pool)Java池:( HY
4、PERLINK t _blank Java Pool)2-1:系统全局区SGA(System Global Area)SGA是一组为系统分配的共享的内存结构,可以包含一个数据库实例的数据或控制信息。如果多个用户连接到同一个数据库实例,在实例的SGA中,数据可以被多个用户共享。当数据库实例启动时,SGA的内存被自动分配;当数据库实例关闭时,SGA内存被回收。SGA是占用内存最大的一个区域,同时也是影响数据库性能的重要因素。SGA的有关信息可以通过下面的语句查询,sga_max_size的大小是不可以动态调整的。= HYPERLINK t _blank SQL show parameter sga
5、NAME TYPE VALUE loc您正在看的Oracle是:Oracle的内存结构和进程结构。 k_sga boolean FALSEpre_page_sga boolean FALSEsga_max_size big integer 164Msga_target big integer 0 HYPERLINK t _blank SQL alter system set sga_max_size=100m;alter system set sga_max_size=100m *ERROR at line 1:ORA-02095: specified initialization param
6、eter cannot be modif HYPERLINK t _blank ied= 系统全局区按作用不同可以分为:数据缓冲区日志缓冲区共享池2-1-1:数据缓冲区(Database Buffer Cache)如果每次执行一个操作时, HYPERLINK t _blank Oracle都必须从磁盘读取所有数据块并在改变它之后又必须把每一块写入磁盘,显然效率会非常低。数据缓冲区存放需要经常访问的数据,供所有用户使用。修改数据时,首先从数据文件中取出数据,存储在数据缓冲区中,修改/插入数据也存储在缓冲区中,commit或DBWR(下面有详细介绍)进程的其他条件引发时,数据被写入数据文件。数据缓
7、冲区的大小是可以动态调整的,但是不能超过sga_max_size的限制。= HYPERLINK t _blank SQL show parameter db_cache_sizeNAME TYPE VALUE db_cache_size big integer 24M HYPERLINK t _blank SQL alter system set db_cache_size=128m;alter system set db_cache_size=128m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif
8、 HYPERLINK t _blank ied value is invalidORA-00384: Insuffic HYPERLINK t _blank 您正在看的Oracle是:Oracle的内存结构和进程结构。 ient memory to grow cache HYPERLINK t _blank SQL alter system set db_cache_size=20m;System altered. HYPERLINK t _blank SQL show parameter db_cache_size;NAME TYPE VALUE db_cache_size big inte
9、ger 20M#此处我仅增加了1M都不行? HYPERLINK t _blank SQL alter system set db_cache_size=25m;alter system set db_cache_size=25m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK t _blank ied value is invalidORA-00384: Insuffic HYPERLINK t _blank ient memory to grow cache#修改显示格式,方便查
10、看。 HYPERLINK t _blank SQL column name format a40 wrap HYPERLINK t _blank SQL column value format a20 wrap#下面语句可以用来查看内存空间分配情况,注意SGA各区大小总和。 HYPERLINK t _blank SQL select name,value from v$parameter where name like %size and value 0;#先将 HYPERLINK t _blank Java_pool_size调小,然后再修改db_cache_size HYPERLINK t
11、 _blank SQL show parameter HYPERLINK t _blank Java_pool_size;NAME TYPE VALUE HYPERLINK t _blank Java_pool_size big integer 48MSQL alter system set HYPERLINK t _blank Java_pool_size=20m;System altered. HYPERLINK t _blank SQL alter system set HYPERLINK t _blank Java_pool_size=30m;System altered.#上面说明S
12、GA中各区大小总和不能超过sga_max_size。=数据缓冲区的大小对数据库的存区速度有直接影响,多用户时尤为明显。有些应用对速度要求很高,一般要求数据缓冲区的命中率在90%以上。下面给出一种计算数据缓冲区命中率的方法:使用数据字典v$sysstat= HYPERLINK t _blank SQL select name, value from v$sysstat 2 where name in(session logical reads, 3 physical reads, 4 physical reads direct, 5 physical reads direct (lob)NAME
13、 VALUE session logical reads 895243physical reads 14992physical reads direct 34physical reads direct (lob) 0=命中率=1-(14992-34-0)/895243可以让 HYPERLINK t _blank Oracle给出数据缓冲区大小的建议:= HYPERLINK t _blank SQL alter system set db_cache_advice=on;#打开该功能System altered. HYPERLINK t _blank SQL alter system set d
14、b_cache_advice=off;#关闭该功能System altered.=2-1-2:日志缓冲区(Log Buffer Cache)日志缓冲区用来存储数据库的修改信息。该区对数据库性能的影响很小,有关日志后面还会有详细的介绍。查询日志缓冲区大小:SQL show parameter log_bufferNAME TYPE VALUE log_buffer integer 262144 2-1-3:共享池(Share Pool)共享池是对SQL,PL/ HYPERLINK t _blank SQL程序进行语法分析,编译,执行的内存区域。它包含三个部分:(都不可单独定义大小,必须通过sha
15、re pool间接定义)。库缓冲区(Library Cache)包含SQL,PL/ HYPERLINK t _blank SQL语句的分析码,执行计划。数据字典缓冲区(Data Dictionary Cache)表,列定义,权限。用户全局区(Usr Global Area)用户MTS会话信息。共享池的大小可以动态修改:= HYPERLINK t _blank SQL show parameter shared_pool_sizeNAME TYPE VALUE _shared_pool_size big integer 80Mshared_pool_size big integer 80M HY
16、PERLINK t _blank SQL alter system set shared_pool_size=78m System altered.=#上面的_shared_pool_size一行奇怪?2-2:程序全局区PGA(Programe Global Area)程序全局区是包含单个用户或服务器数据和控制信息的内存区域,它是在用户进程连接到Oracle并创建一个会话时由 HYPERLINK t _blank Oracle自动分配的,不可共享,主要用于用户在编程存储变量和数组。 如上图:Stack Space是用来存储用户会话变量和数组的存储区域;User Session Data是为用户
17、会话使用的附加存储区。|-Session Information|-Sort Area|-Cursor Information注意Session information(用户会话信息)在独占服务器中与在共享服务器中所处的内存区域是不同的。2-3:排序区,大池, HYPERLINK t _blank Java池排序区(Sort Area)为有排序要求的 HYPERLINK t _blank SQL语句提供内存空间。系统使用专用的内存区域进行数据排序,这部分空间就是排序区。在 HYPERLINK t _blank Oracle数据库中,用户数据的排序可使用两个区域,一个是内存排序区,一个是磁盘临时
18、段,系统优先使用内存排序区进行排序。如果内存不够,Orcle自动使用磁盘临时表空间进行排序。为提高数据排序的速度,建议尽量使用内存排序区,而不要使用临时段。参数sort_area_size用来设置排序区大小。(好象不能动态修改?) 大池(Large Pool)用于数据库备份工具-恢复管理器(RMAN:Recovery Manager)。Large Pool的大小由large_pool_size确定,可用下面语句查询和修改:= HYPERLINK t _blank SQL show parameter large_pool_sizeNAME TYPE VALUE large_pool_size
19、big integer 8M HYPERLINK t _blank SQL alter system set large_pool_size=7m;System altered.=Java池主要用于Java语言开发,一般来说不低于20M。其大小由 HYPERLINK t _blank Java_pool_size来确定,可以动态调整。2-4: HYPERLINK t _blank Oracle自动共享内存管理(Automatic Shared Memory(SGA) Management)在 HYPERLINK t _blank Oracle 8i/9i中数据库管理员必须手动调整SGA各区的各
20、个参数取值,每个区要根据负荷轻重分别设置,如果设置不当,比如当某个区负荷增大时,没有调整该区内存大小,则可能出现ORA-4031:unable to allocate .bytes of shared memory错误。在 HYPERLINK t _blank Oracle 10g中,将参数STATISTICS_LEVEL设置为TYPICALALL,使用SGA_TARGET指定SGA区总大小,数据库会根据需要在各个组件之间自动分配内存大小。下面是系统自动调整的区域:固定SGA区及其他共享池数据缓冲区 HYPERLINK t _blank Java池大池。注意:如果不设置SGA_TARGET,则
21、自动共享内存管理功能被禁止。= HYPERLINK t _blank SQL show parameter statistics_levelNAME TYPE VALUE statistics_level string TYPICAL HYPERLINK t _blank SQL alter system set statistics_level=all;System altered.#typical和all有什么区别? HYPERLINK t _blank SQL alter system set statistics_level=typical;BRSystem altered. HYPE
22、RLINK t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 0 HYPERLINK t _blank SQL alter system set sga_target=170m;alter system set sga_target=170m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK t _blank ied value is invalidORA-00823: Speci
23、f HYPERLINK t _blank ied value of sga_target greater than sga_max_size HYPERLINK t _blank SQL alter system set sga_target=20m;System altered.#不过后来又发现sga_target的值变成了140M? 下面是语句执行情况。 HYPERLINK t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 140M HYPERLINK t _blank SQL alte
24、r system set sga_target=0;System altered. HYPERLINK t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big integer 0#改为20M HYPERLINK t _blank SQL alter system set sga_target=20m;System altered.#显示的是140M HYPERLINK t _blank SQL show parameter sga_targetNAME TYPE VALUE sga_target big inte
25、ger 140M #不可缩减? HYPERLINK t _blank SQL alter system set sga_target=130m;alter system set sga_target=130m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK t _blank ied value is invalidORA-00827: could not shrink sga_target to specif HYPERLINK t _blank ied value#不可增加 HY
26、PERLINK t _blank SQL alter system set sga_target=141m;alter system set sga_target=141m*ERROR at line 1:ORA-02097: parameter cannot be modified because specif HYPERLINK t _blank ied value is invalidORA-00823: Specif HYPERLINK t _blank ied value of sga_target greater than sga_max_size3: HYPERLINK t _b
27、lank Oracle实例的进程结构(Process Structure) HYPERLINK t _blank Oracle包含三类进程:用户进程(User Process)服务器进程(Server Process)后台进程(Background Process)3-1:用户进程和服务器进程当数据库用户请求连接到 HYPERLINK t _blank Oracle的服务时启动用户进程(比如启动 HYPERLINK t _blank SQLPlus时)。用户进程首先必须建立一个连接。用户不能直接与 HYPERLINK t _blank Oracle服务器,必须通过服务器进程交互。服务器进程是用
28、户进程与服务器交互的桥梁,它可以与 HYPERLINK t _blank Oracle Server直接交互。服务器进程可以有共享和独占两种形式。3-2:后台进程(Backgroung Process)数据库的物理结构与内存结构之间的交互要通过后台进程来完成。数据库的后台进程包含两类,一类是必须的,一类是可选的:Mandatory background processes|-DBWn(Database Writer):数据写入|-PMON(Process Moniter):进程监控|-LGWR(Log Writer):日志写入|-SMON(System Moniter):系统监控|-RECO(
29、Recovery):恢复|-CKPT(Chekpoint):检查点Optional background processes|-ARCn(Archiver):归档|-LCKn(Lock):锁|-Dnnn(Dispatcher):调度|-可以用下面的语句查看正在运行的后台进程:=SQL select * from v$bgprocess where paddr00;PADDR PSERIAL# NAME DESCRIPTION 6B0ED064 1 PMON process cleanup 6B0ED4E4 1 MMAN Memory Manager 6B0ED964 1 DBW0 db wri
30、ter process 0 6B0EDDE4 1 LGWR Redo etc. 6B0EE264 1 CKPT checkpoint 6B0EE6E4 1 SMON System Monitor Process 6B0EEB64 1 RECO distributed recovery 6B0EEFE4 1 CJQ0 Job Queue Coordinator 6B0F01E4 1 QMNC AQ Coordinator 6B0F0664 1 MMON Manageability Monitor Process 6B0F0AE4 1 MMNL Manageability Monitor Proc
31、ess 2= 3-2-1:DBWR(Database Writer,数据写入进程)将数据缓冲区的数据写入数据文件,是负责数据缓冲区管理的一个后台进程。当数据缓冲区中的一数据被修改后,就标记为dirty,DBWR进程将数据缓冲区中“脏”数据写入数据文件,保持数据缓冲区的”干净“。由于数据缓冲区的数据被用户修改并占用,空闲数据缓冲区会不断减少,当用户进程要从磁盘读取数据块到数据缓冲区却无法找到足够的空闲数据缓冲区时,DBWR将数据缓冲区内容写入磁盘,使用户进程总可以得到足够的空闲数据缓冲区。DBWR的作用:管理数据缓冲区,以便用户进程总能够找到足够的空闲缓冲区。将所有修改后的缓冲区数据写入数据文件
32、。使用LRU(最近最少使用)算法保持缓冲区数据是最近经常使用的。通过延迟写来优化磁盘I/0读写。3-2-2:LGWR(Log Writer,日志写入进程)将日志数据从日志缓冲区写入磁盘日志文件组。数据库在运行时,如果对数据库进行修改则产生日志信息,日志信息首先产生于日志缓冲区。当日志达到一定数量时,由LGWR将将日志数据写入到日志文件组,再经过日志切换,由归档进程(ARCH)将日志数据写入归档进程(前提是数据库运行在归档模式下)。数据库遵循写日志优先原则,即在写数据之前先写日志。简单介绍ARCH(Archiver,归档进程) HYPERLINK t _blank Oracle数据库有两种运行模
33、式,归档(ARCHIVELOG),非归档(NOARCHIVELOG)模式。以非归档模式运行时日志在切换时被直接覆盖,不产生归档日志,这是数据库默认的运行模式。数据库运行在归档模式时,在日志切换之前,由ARCH进程将日志信息写入磁盘,也就是自动备份在线日志。Oracle数据库的Redo文件数量是有限的,所以 HYPERLINK t _blank Oracle以循环的方式向它们中写入。它顺序写满每一个Redo文件,当达到最后一个时,再循环回去开始填写第一个Redo文件。如果为了能恢复数据库而想保存日志文件,那么在它们被重新使用之前需要对其进行备份,归档进程管理此工作。CKPT(Check Poin
34、t,检查点进程)运行CKPT时,系统对全部数据文件及控制文件文件头的同步信号进行修改,以保证数据库的同步。检查点出现在以下情况:|-在每个日志切换时产生。|-上一个检验点之后又经过了指定时间。|-从上一个检验点之后,当预定义数量的日志块被写入磁盘之后。|-数据库关闭。|-DBA强制产生。|-当表空间设置为OFFLINE时。SMON(System Moniter,系统监控进程)SMON在实例启动时执行实例恢复,并负责清理不再使用的临时段。PMON(Process Monitor,进程监控)PMON在用户进程出现故障时进行恢复,负责清理内存区域和释放该进程所使用的资源。RECO(Recovery,
35、恢复进程)RECO用于分布式数据库维持在分布式环境中的数据的一致性。LCKn(Lock,锁进程)在并行服务器中用于多个实例间的封锁。Dnnn(Dispatcher,调度进程)Dnnn存在于多线程服务器体系结构中,负责将用户进程连接到服务器进程,再把结果返回给用户进程。/P附录资料:不需要的可以自行删除年数据库-oracle-学习之路数据库基础数据库主键生成Select Substr(To_char(dbms_random.value), 2, 22) | getUUID.NextvalFrom dual ;数据库空间查询-表空间在哪些空间下select df.tablespace_name 表
36、空间名,totalspace 总空间M,freespace 剩余空间M,round(1-freespace/totalspace)*100,2) 使用率%from(select tablespace_name,round(sum(bytes)/1024/1024) totalspacefrom dba_data_filesgroup by tablespace_name) df,(select tablespace_name,round(sum(bytes)/1024/1024) freespacefrom dba_free_spacegroup by tablespace_name) fsw
37、here df.tablespace_name=fs.tablespace_name;-查用户下所用空间SELECT owner, tablespace_name, ROUND (SUM (BYTES) / 1024 / 1024, 2) USED(M) FROM dba_segmentsGROUP BY owner, tablespace_nameORDER BY SUM (BYTES) DESC;-查用户下所有表所占空间select OWNER, t.segment_name, t.segment_type, sum(t.bytes / 1024 / 1024) mmmfrom dba_s
38、egments twhere t.owner = JIANGSUand t.segment_type=TABLEgroup by OWNER, t.segment_name, t.segment_typeorder by mmm desc;oracle 之删除重复数据select a.rowid,a.* from 表名 a where a.rowid != (select max(b.rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )删除delete from 表名 a where a.rowid != (select max(b.
39、rowid) from 表名 b where a.字段1 = b.字段1 and a.字段2 = b.字段2 )oracle 之查询数据第一条记录select * from tab rownum sqlplus /nologSQL*Plus: Release .0 Production on Fri Jan 20 02:29:37 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL connect /as sysdbaConnected to an idle instance.SQL startup
40、ORACLE instance started.Total System Global Area 135352820 bytesFixed Size 455156 bytesVariable Size 109051904 bytesDatabase Buffers 25165824 bytesRedo Buffers 679936 bytesDatabase mounted.2)关闭数据库: HYPERLINK mailto:oraclesuse92 oraclesuse92: sqlplus /nologSQL*Plus: Release .0 Production on Fri Jan 2
41、0 02:29:37 2006Copyright (c) 1982, 2002, Oracle Corporation. All rights reserved.SQL connect /as sysdbaConnected to an idle instance.SQL shutdwon abort;3)启动监听器 HYPERLINK mailto:oraclesuse92 oraclesuse92: lsnrctl start4)停止监听器 HYPERLINK mailto:oraclesuse92 oraclesuse92: lsnrctl stop5)查看监听器状态 HYPERLINK
42、 mailto:oraclesuse92 oraclesuse92: lsnrctl status或lsnrctl命令进入监听程序后再用statusoracle 之备份工作背景:Oracle 10g 服务器,Oracle 10g 客户端,windowsXP 操作平台要求:Oracle 数据库服务器对数据库 ytcn 每天自动备份一次。解决方案:利用任务计划、批处理文件和 Oracle 的 exp 导出功能,根据日期自动生成 Oracle 备份文件。详细步骤: 1) 创建批处理文件 ytcn.batytcn.bat中详细内容如下:echo offecho 正在备份银通网 Oracle 数据库,请
43、稍等exp userid=ytcn/ytcnytcn as sysdba file=e:/bak/ytcn/oracle/ytcn/ytcn%date:0,4%date:5,2%date:8,2%.dmp log=e:/bak/ytcn/oracle/ytcn/ytcn%date:0,4%date:5,2%date:8,2%.log full=yecho 任务完成!其中红色部分是根据需要进行变动的地方,例如作者的项目名“银通网”,数据库 ytcn 用户名 ytcn,密码 ytcn,要在目录 e:/bak/ytcn/oracle/ytcn 下生成形如 ytcn20090711.dmp 和 ytc
44、n20090711.log 的备份和日志文件,全表导出。另外:%date%的值在不同的系统、语言版本下可能是不一样的,控制面板里面区域选项的设定也会改变%date%的值。请先在命令行中测试 echo %date% 的返回值。%date:4,10% 是返回日期函数,后的第一个参数是要截取的起始位置(从0开始),第二个参数是要截取的长度,如没有则是截取到最后,参数可酌情修改。 如需要准确的时间做为文件名,请用%time%函数,参数同上。 2) 添加一个任务计划 ytcn开始 所有程序 附件 系统工具 任务计划 添加任务计划 下一步 在 浏览 中查找刚刚写好的 ytcn.bat 文件 任务名输入yt
45、cn,执行这个任务选择每天,下一步 起始时间下午12:00,起始日期2009-7-11,下一步 输入用户名及密码,用户名要求是管理员权限用户名,下一步 完成点击完成之后,会在任务计划栏目下新增一个名为ytcn的任务计划,表明已经配置完毕。备注:有时点击完成 之后,系统警告已创建新任务,但可能不能运行,因为无法设置账户信息。指定的错误是:Ox80041315:任务计划程序服务没有运行这是因为电脑的任务计划程序服务没有启动起来。开始 所有程序 管理工具 服务,找到Task Scheduler服务,发现启动类型为已禁用,右键单击更改为自动,并把它启动起来,然后重新添加一次任务计划 ytcn 就可以了
46、。oracle之命中率查询Buffer cache由数据块组成。1. Buffer cache的工作原理LRU列表:MRU 。 LRU.(全表扫描FTS放在LRU端。)缓冲区块的状态:Free、Pinned、Clean、Dirty.Dirty List或Write List(写列表)。数据库写进程DBW0将缓冲区高速缓存中的数据写到数据文件中。2. 测量Buffer cache的性能测量Buffer cache的命中率:SQL select 1 - (physical.value - direct.value - lobs.value) / logical.value) Buffer Cach
47、e Hit Ratio from V$SYSSTAT physical, V$SYSSTAT direct, V$SYSSTAT lobs, V$SYSSTAT logical where = physical reads And = physical reads direct and = physical reads direct (lob) And = session logical reads;“Buffer Cache Hit Ratio”的值要 90%.使用STATSPACK来监视Buffer cache.使用REPORT.TXT来监视Buffer cache.非命中率指标:Free
48、 Buffer Inspected、Free Buffer Waits、Buffer Busy Waits.(V$sysstat)使用Performance Manager(数据库例程)来监视Buffer Cache.3. 提高缓冲区高速缓存性能的方法加大Buffer Cache的大小:init.ora参数DB_CACHE_SIZE(动态参数)。使用Buffer Cache Advisory功能决定Buffer Cache的大小:首先将init.ora参数DB_CACHE_ADVICE设成ON,然后查询V$DB_CACHE_ADVICE.使用多个缓冲区池:Keep Pool: DB_KEEP_
49、CACHE_SIZERecycle Pool:DB_RECYCLE_CACHE_SIZEDefault Pool: DB_CACHE_SIZE在内存中缓存表: 表的CACHE选项,对优化小表的全表扫描。正确创建索引。4. 调整Large Pool和JAVA POOLLarge Pool用于共享服务器、RMAN、并行查询、DBWR的从属进程。Large Pool的大小通过init.ora参数Large_pool_size设置。默认为8M.从V$sgastat中监视free memory的值:SQLSELECT name,bytes FROM V$sgastat WHERE pool = larg
50、e pool;JAVA_POOL池的默认大小为32M.对于大型Java应用程序,JAVA_POOL池的大小应大于50M.init.ora参数java_pool_size从V$sgastat中监视free memory的值。SQL SELECT name, bytes / 1024 / 1025 FROM V$sgastat WHERE pool = java pool; 调整重做有关的性能Oracle重做有关的组件包括:Redo Log Buffer、Online Redo Log、LGWR、Archive Log、Checkpoint、Arch0.1. 监视Redo Log Buffer的性
51、能Redo Log Buffer不采用LRU(Least Recently Used)算法管理。当下列事件发生时,Redo Log Buffer的内容存盘:Commit时、每3秒、空间使用1/3、达到1M、检查点。如果写入Redo Log Buffer的速度超过LGWR存盘的速度,就会因等待而降低性能。监视Redo Log Buffer的重试率(1%)。Select retries.value / entries.value Redo Log Buffer Retry Ratio From V$sysstat retries,V$sysstat entries Where = redo buf
52、fer allocation retries And = redo entries“Redo Log Buffer Retry Ratio”的值要 生成数据两大选项:build immediate build deferredBuild immediate:在创建物化视图的同时根据主表生成数据Bulid deferred:在创建物化视图的同时,在物化视图内不生成数据,如果此时没有生成数据,以后可以采取:EXEC DBMS_MVIEW.Refresh(MV_name,C),注意必须使用全量刷新,默认是增量刷新,所以这里参数必须是C,因为之前都没有生成数据,所以必须全量。2关于刷新 刷新方式:co
53、mplete fast forceComplete :完全刷新整个物化视图,相当于重新生成物化视图,此时即时增量刷新可用也全量刷新 Fast:当有数据更新时依照相应的规则对物化视图进行更新(此时必须创建物化视图日志(物化视图日志记录了数据更新的日志),关于日志的说明,参照“物化视图日志文件介绍”) Force:当增量刷新可用则增量刷新,当增量刷新不可用,则全量刷新(此项为默认选项)不过从实际情况出发,应该尽量不使用默认选项,可以考虑使用增量刷新,对大表特别有效,大表全量更新速度是非常慢的,特别是在存在索引的情况下(在创建物化视图语句中,可能某些限制查询的条件,导致了增量刷新无法使用,这个是需要
54、注意的,具体是哪类语句导致fast刷新不可用,有待总结.) 刷新时间:on demand on commit start with/ nextOn demand:在需要刷新时进行刷新(人工判断)On commit:在基表上有提交操作时,进行更新Start with:指定首次刷新的时间(一般指定的是当前时间,不过也可以在创建物化视图时不生成数据,则可以考虑在指定的时间刷新,从而生成数据)Next:刷新的周期时间三、 基于主键的物化视图和ROWID的物化视图的说明创建物化视图日志时,指定了记录更新的原则即with 后面的primary 或者rowid 或者object id等等,后面,默认是以pr
55、imary key为记录更新,在物化视图内也是以此为更新的原则。例如:1、如果日志内使用的是primary key 则在创建物化视图时指定rowid来更新,则会报ORA-12032: 不能使用 TEST 上实体化视图日志中的 rowid 列2、如过日志内使用的是rowid 则在创建物化视图时指定primary或者默认指定,则会报ORA-23415: GIS.LZWMV 的实体化视图日志不记录主键四、 关于物化视图存放的的表空间直接在创建物化视图时指定日志存放的表空间和物化视图的表空间。例子:create materialized view MV_TEST tablespace test 表空间
56、名称五、 关于查询重写和更新在创建查询重写时,基表中必须有主键约束,视图里是无法创建主键的,不过其继承了基表的主键约束。(关于视图的创建的一些技巧有待总结)下面给个例子Create materialized view MV_TESTRefresh fast 前提是必须创建基表日志,可以忽略该项Enable query rewrite 前提是基表上必须存在主键约束AsSelect * from TEST; 物化视图数据生成六、 关于创建物化视图的例子:1、 使用增量刷新的物化视图的写法创建物化视图日志,必须创建日志Create materialized view log on TEST TEST
57、为表名注:(TEST为表名或者视图名,关于视图上建立物化视图,见基于视图的物化视图创建物化视图语句:Create materialized view MV_TEST MVTEST为物化视图名Build immediate 创建时生成数据对应的是build deferredRefresh fast 增量刷新On commit 在基表有更新时提交,这里该句对视图无效With rowid这里创建基于rowid的物化视图,对应的是 primary keyAsSelect * from TEST;生成物化视图数据语句oracle学习之linux下启动停止服务 linux下的oracle从10g以后其启动
58、与关闭与以前版本有所不同9i 之后已经没有 svrmgrl 了,所有的管理工作都通过 sqlplus 来完成启动数据库步骤如下:注:$ORACLE_HOME为oracle的安装路径1,以oracle用户登录su oracle2,启动TNS监听器$ORACLE_HOME/bin/ lsnrctl start3,用sqlplus启动数据库$ORACLE_HOME/bin/sqlplus/nologSQL connect system/change_on_install as sysdbaSQL startup出现如下显示,表示Oracle已经成功启动ORACLE instance started.
59、Total System Global Area 205520896 bytesFixed Size 778392 bytesVariable Size 74456936 bytesDatabase Buffers 130023424 bytesRedo Buffers 262144 bytesDatabase mounted.Database opened.4,用sqlplus停止数据库$ORACLE_HOME/bin/sqlplus/nologSQL connect system/change_on_install as sysdbaSQL shutdown注:shutdown可加关闭选项,从最温和到最粗暴的行为选项为(shutdown、shutdown transactional、shutdown immediate、shutdown abort)命令解释如下shutdown:关闭,等待每个用户退出系统戓被取消后退出关闭数据库。shutdown transactional:事务性关闭,等待每个用户提交戓回退当前的事务,然后oracle取消对话,在所有用户退出系统后执行关闭。shutdown immediate:直接关闭,取消所有用户对话(促使回退),执行正常的关闭程序。shutdown abort:终止关闭,关闭数据库时没有自动检查点戓日志开关。出现如下显示,表示o
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 仓储现场安全问答试题及答案集锦
- 干熄焦考试试题和标准答案
- 蜂蜜食品安全考卷试题及答案详情
- 高中生物 重点强化练95 动物体细胞核移植技术和胚胎工程
- 测试组各类试题及其标准答案合集
- 高考生物一轮复习 课后习题 课时规范练5 细胞器与生物膜系统(H版)
- 手表业务员考试题目及答案
- 高中地理《防灾减灾》情景教学实践
- 宝马公司面试常见题目与答案解析
- 2025-2026学年广西玉林地区数学三年级第二学期期末复习检测模拟试题含答案
- 四川成都市成华区2025-2026学年八年级下期期末学业水平监测英语试卷
- 剖宫产术的护理配合
- 公立医院行政管理岗招聘考试核心考点笔记:公共卫生应急管理
- (高清版)DG∕TJ 08-55-2019 城市居住地区和居住区公共服务设施设置标准
- 《城轨信号基础设备维护》课件-任务1 常见的道岔转辙机设备 ZYJ7型电动液压转辙机结构与工作原理
- 军体拳第一套全套图文教程
- 家庭医生签约服务评估方案
- 10J113-1内隔墙-轻质条板(一)
- 基于学生创新素养培育的实践活动研究课题申报评审书
- 全民健康养生餐饮连锁店项目策划书
- 建筑消防设施维护保养报告
评论
0/150
提交评论