Oracle分区表(Partition Table)
Oracle提供了分区技术以支持VLDB(Very Large DataBase)。分区表通过对分区列的判断,把分区列不同的记录,放到不同的分区中。分区完全对应用透明。 Oracle的分区表可以包括多个分区,每个分区都是一个独立的段(SEGMENT),可以存放到不同的表空间中。查询时可以通过查询表来访问各个分区中的数据,也可以通过在查询时直接指定分区的方法来进行查询。 分区提供以下优点: 由于将数据分散到各个分区中,减少了数据损坏的可能性; 可以对单独的分区进行备份和恢复; 可以将分区映射到不同的物理磁盘上,来分散IO; 提高可管理性、可用性和性
KEEP池的CACHE特点
对象放入KEEP池后,数据的CACHE特性和DEFAULT池是有一些区别的。KEEP池的使用十分简单,设置DB_KEEP_CACHE_SIZE的值大于0,就可以将其他对象的BUFFER_POOL参数设置为KEEP了。SQL> SHOW PARAMETER DB%CACHE_SIZENAME TYPE VALUE------------------------------------ ----------- ------------------------------db_16k_cache_size big integer 0db_2k_cache_size big integer 0db_32k_cache_size big integer 0db_4k_cache_size big integer 0db_8k_cache_size big integer 0db_cache_size big integer 956301312db_keep_cache_size bi
Oracle 数据库 10g中的分区功能
执行概要Oracle 分区功能可以提高许多应用程序的可管理性、性能与可用性。通过分区功能,可以将表、索引和索引组织表进一步细分为段,从而能够更精确地管理和访问这些数据 库对象。Oracle 提供了种类繁多的分区方案以满足每种业务要求。而且,因为在 SQL 语句中分区是完全透明的,所以该功能几乎可应用于任何应用程序。分区功能的优势分区功能通过改善可管理性、性能和可用性,从而为各式应用程序带来了极大的好处。通常,分区可以使某些查询以及维护操作的性能大大提高。此外,分区还可以极大简化常见的管理任务。通过分区,数据库设计人
EXCEPTION里捕捉行号
Tracing Lines By Steven Feuerstein Find and report your errors—by line number—in Oracle Database 10g. PL/SQL offers a powerful and flexible exception architecture. Of course, there is always room for improvement, and in Oracle Database 10g, exception handling takes a big step forward with the introduction of the DBMS_UTILITY.FORMAT_ERROR_BACKTRACE function. This article explores the problem that this function solves and how best to use it. Who Raised That Exception? When an exception is rai
用OMF来简化数据库管理
Oracle9i带来了许多令人兴奋的新特性,操作系统级别上的Oracle的自动管理文件——即Oracle Managed Files(OMF)——就是其中之一。在Oracle9i出现之前,DBA必须在卸载表空间时手工移除数据文件(datafile)并在创建新的表空间 之前仔细检查文件的位置。为了理解OMF是如何工作的,让我们首先定义一个叫着DB_CTEATE_FILE_DEST的新参数。alter system set db_create_file_dest='/u01/oradata/PROD'; 一旦设置好了DB_CTEATE_FILE_DEST参数,我们就可以创建表空间而无须指定文件名。createtablespace omf1datafile size 100mlocally manag
oracle数据文件最大值
因为oracle 的dba(data block address)是32 bits的,其中block id占了22bits,file id占了10bits,所以datafile能达到的最大size就是2^22*db_block_size也就是4194304*db_block_size,4k的blocksize那么它的datafile max size就是16G8k的blocksize那么它的datafile max size就是32G[@more@]
隐含参数_allow_resetlogs_corruption
环境是:win98+orawin95;某天死机后,数据库打不开,现象如下:Oracle Server Manager Release 3.0.4.0.0 - Production(c) Copyright 1997, Oracle Corporation. All Rights Reserved.Oracle8 Personal Edition Release 8.0.4.0.0 - ProductionPL/SQL Release 8.0.4.0.0 - ProductionSVRMGR> connect internal已连接SVRMGR> startup;已起动 ORACLE 事例全部系统全局区域 22993044 字节Fixed Size 47252 字节Variable Size 6488064 字节Database Buffers 16384000 字节Redo Buffers 73728 字节已装入数据库ORA-01589: ??????????RESE
Oracle Freelist和HWM原理探讨及相关性能优化(3)
4.优化4.1手工回收存储空间在HIGH WATER MARK以上的块对性能没有影响,但是会耗费空间。如何空间大小是一个考虑的问题,就可以决定回收空块。假设表T1的存储示意图如图2.5所示,使用ALTER TABLE ... DEALLOCATE UNUSED语句可以回收HWM以上的空间。比如:alter table t1 deallocate unused;回收后T1的存储示意如图4.1.1如果在ALTER TABLE ... DEALLOCATE UNUSED语句中使用了KEEP关键字,则可以在HWM之后保留指定大小的空闲空间,比如:alter table t1 deallocate unused keep 10K;回收后T1的存储示意如图4.1.24.2删减表根据3.2.1可以得到HW
Oracle Freelist和HWM原理探讨及相关性能优化(2)
3.分析方法存储参数基本上属于oracle internal的东西,因此oralce并没有提供很好的手段来分析。但是对于DBA来说,还是可以通过block dump和DBMS_SPACE等手段来获取部分信息。3.1 提取block和free list信息创建dbms_space使用的存储过程show_spaceSQL>create or replace procedure show_space( p_segname in varchar2,p_owner in varchar2 default user,p_type in varchar2 default 'TABLE',p_partition in varchar2 default NULL )asl_free_blks number;l_total_blocks number;l_total_bytes number;l_unused_blocks number;l_unused_b
Oracle Freelist和HWM原理探讨及相关性能优化(1)
近期来,FreeList的重要作用逐渐为Oracle DBA所认识,网上也出现一些相关的讨论。本文以FreeList为线索对Oracle的存储管理的原理进行较深入的探讨,涉及Oracle段区块管理的原理,FreeList算法等。而与FreeList密切相关的一个重用特性HWM,与sql性能密切相关,本文也作了原理分析介绍。在原理探讨的基础上,介绍了常用的存储参数分析方法,并对所涉及的存储优化、HWM的优化和Freelist竞争优化作了说明。缩略语:ASSM:auto segement space managementHWM:high water markDBA:data block addressOLTP:online transaction processOPS:ora
基于等待事件的性能诊断
等待事件(wait event)是oracle核心代码的一个命名部分,有两种类型的等待事件:空闲事件(idle event)与非空闲事件(non-idle event),空闲事件指oracle正在等待某种工作,常见的空闲等待事件:client message、null event、pipe get、pmon/smon timer、rdbms rpc message及sql*net等;非空闲等待事件:buffer busy waits、db file scattered read、db file sequential read、enqueue、free buffer waits、latch free、log file sync、log file paralle write等。什 么是瓶颈?一旦熟悉了系统的等待事件,就能够把握问题的关键,
oracle tune
1. Course Intraduction 02. Tuning overview 1(1) 调整的先后次序1. Tune the design. -- Application designers2. Tune the application. -- Application developers3. Tune memory. --|4. Tune I/O. |-- DBA5. Tune contention. |6. Tune the operating system. --|(2) 调整的基点和主要的可测量的目标Database hit percentages 命中率是base lineSQL statements access the smallest possible number of Oracle blocks 访问尽可能少的数据块response time, database availability, memory utilization(页面交换)等3. Oracle Alert and
Oracle数据库联机日志文件丢失处理方法(5)
试验五:丢失当前日志组的成员1、SQL>; select * from v$logfile;GROUP# STATUS TYPE---------- ------- -------MEMBER--------------------------------------------------------------------------------3 ONLINE /T3/ORACLE/oradata/ORA9/redo03.log2 ONLINE /T3/ORACLE/oradata/ORA9/redo02.log1 ONLINE /T3/ORACLE/oradata/ORA9/redo01.logGROUP# STATUS TYPE---------- ------- -------MEMBER--------------------------------------------------------------------------------1 ONLINE /T3/ORACLE/oradata/ORA9/redo01a.log2
Oracle数据库联机日志文件丢失处理方法(4)
方法四:修改系统参数方法1、 插入数据SQL>; select * from test;TEL----------1 2 3 4SQL>; insert into test values(5);1 row created.SQL>; commit;Commit complete.SQL>;2、 强行关闭SQL>; shutdown abort ORACLE instance shut down.SQL>;3、 手工模拟删除redo4、 启动dbSQL>; startup ORACLE instance started.Total System Global Area 353862792 bytesFixed Size 730248 bytesVariable Size 285212672 bytesDatabase Buffers 67108864 bytesRedo Buffers 811008 bytes Database mounted.ORA- 00
Oracle数据库联机日志文件丢失处理方法(2)
方法二:用cancel模式恢复数据库 前面的出错提示,步骤都一样,唯独恢复的方法不一样SQL>; startupORACLE instance started.Total System Global Area 353862792 bytesFixed Size 730248 bytesVariable Size 285212672 bytesDatabase Buffers 67108864 bytesRedo Buffers 811008 bytes Database mounted.ORA- 00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/T3/ORACLE/oradata/ORA9/redo01.log'看看丢失了哪些redoSQL> host ls /T3/ORACLE/oradarta/ORA9/redo* /T3/ORACLE/o
Oracle数据库联机日志文件丢失处理方法(3)
实验三:通过重新生成控制文件来恢复redo 前面的都一样,只是处理方法不一样SQL>; startup ORACLE instance started.Total System Global Area 353862792 bytesFixed Size 730248 bytesVariable Size 285212672 bytesDatabase Buffers 67108864 bytesRedo Buffers 811008 bytes Database mounted.ORA- 00313: open failed for members of log group 1 of thread 1 ORA-00312: online log 1 thread 1: '/T3/ORACLE/oradata/ORA9/redo01.log'SQL>; alter database backup controlfile to trace;Database altered.SQL>; shu
Oracle数据库联机日志文件丢失处理方法(1)
试验一:用命令清空日志组方法 1、查看原来表中数据SQL>; conn test/test Connected. SQL>; select * from test;TEL----------1 2 3 2、插入新数据SQL>; insert into test values(4);1 row created.SQL>; commit;Commit complete.SQL>3、 正常关闭数据库4、 利用os command删除所有redo文件5、 启动数据库SQL>; startupORACLE instance started.Total System Global Area 353862792 bytesFixed Size 730248 bytesVariable Size 285212672 bytesDatabase Buffers 67108864 bytesRedo Buffers 811008 bytesDat
Oracle内存结构(二)----Shared Pool的详细信息
The Shared Pool The Shared Pool在SGA中是SIZE较大的一个部分.有很多DBA没搞明白Shared Pool是用来做什么的,不知道怎么定Shared Pool的合适的SIZE.就随意的将它的SIZE搞得很大.有时候可能是不够大,但更多的时候是在浪费内存空间.而且太大的Shared Pool会影响性能. 块(Chunk):要更好的理解Shared Pool,得对X$KSMSP表多做点研究.这个表中的每一个记录行对应的是Shared Pool内存中的一个Chunk(块).SQL> select ksmchcom, ksmchcls, ksmchsiz from x$ksmsp;KSMCHCOM KSMCHCLS KSMCHSIZ---------------- -------- ----------K
Oracle内存结构(一)----SGA的区域信息
SGA(system global area)系统全局区跟一些必须的后台进程合进来称为实例(Instance).说它是全局区是包含了全局变量和数据结构,是系统区是包含了进入整个Oracle Instance的数据结构而不是特定的进程结构.SGA区域:SGA大概包括下面四到五种区域:The fixed areaThe variable areaThe database blocks areaThe log bufferThe instance lock database(for parallel server instances)----OPS&RAC根据内存的大小,我们可以把The fixed area和The log buffer设为很小.The fixed area:SGA 中的The fixed area包含了数千个原子变量,以及如latches和
Oracle内存结构(三)----Process Memory的详细信息
The Process Memory:除了SGA(System Global Area)之外,Oracle进程还使用下面三个全局区:The Process Global Area (PGA)The User Global Area (UGA)The Call Global Area (CGA) 很多人都搞不清楚PGA和UGA两者之间的区别,实际上两者之间的区别跟一个进程和一个会话之间的区别是类似的.尽管说进程和会话之间一般都是一对一的关 系,但实际上比这个更复杂.一个很明显的情况是MTS配置,会话往往会比进程多得多.在这种配置下,每一个进程会有一个PGA,每一个会话会有一个 UGA.PGA所包含的信息跟会话是无任何关联的,而UGA包含的信息是以特定的