Latch free等待事件一
Latch free等待事件的三个参数:p1-latch的地址;p2-latch编号;p3-请求次数。从oracle10g起,latch free不再包含所有的latch等待,有些latch等待可能表现为单独的等待事件,这个后面有提到一些这样的等待事件,一般情况下我们还是统称为latch free等待事件。在处理latch free等待事件时,需要注意以下几点:n Latch只是用来保护sga中的内存结构。对数据库中的对象的保护,使用的lock而不是latch。Oracle sga中有许多latch,用来保护sga中各种内存结构不会因为并发访问而损坏。n 等待latch的是oracle会话。不同的latch类型会导致会话采
Latch free等待事件二
Latch产生的原因,诊断以及对策Latch争用通常意味这某个进程持有latch的时间过长。如果latch争用明显,系统性能将显著下降。在高并发的环境中,latch争用经常发生,并且你无法完全消除latch争用。在v$system_event中总会出现latch free等待事件。只有当time_waited相对实例启动以来的总时间比较明显时,你才需要关注latch争用。当latch在系统范围内的等待时间比较显著时,你可以通过v$latch中的sleeps列来发现争用显著的latch:Select name, gets, misses, immediate_gets, immediate_misses, sleeps from v$latch order by sleeps;
Latch free等待事件四
尽量减每个块中的记录数。首先需要dump一些数据块来分析现在每个块中的记录数。Dump出来的跟踪文件中,nrow就是块中的记录总数。然后exp表,再truncate表,在表中插入你想要在每个块中保存的条数的记录,然后使用alter table table_name minimize records_per_block,再truncate表,最后imp回数据即可。n 可以考虑减少块的大小。从oracle9i开始,数据库可以支持不同的块大小。例如当前块大小为16k,你可以将表及其索引移动块大小为8k的表空间中。这也会对全表扫描造成负面影响。并且,多个块大小也会使得管理更复杂。另外,从orac
调整缓冲区高速缓存(Buffer Cache)的性能(3)
调整闩(latch)和锁定(lock) 1. 调整闩(latch) 闩可以作为内存性能的另一个指标。 1.闩:等待闩和立即闩(V$lacth。共239个)。 数据库中是否存在闩争用V$system_event("latch free")。 几个重要的闩:shared pool、library cache、cache buffers lru chain、 cache buffers chains、redo allocation、redo copy。 select * from V$latch where misses!=0; 2.自由列表:V$system_event("buffer busy waits")。 V$waitstat。 测量哪些段
Latch free等待事件三
Oracle 10g 操作系统solaris Db_cache_size32m64m128m256m512m1024m2048m_ksmg_granule_size4m4m4m4m4m16m16m_db_block_buffers39767952159043180863616127232254464_db_block_hash_buckets8192163843276865536131072262144524288_db_block_hash_latches1024102410241024102410242048Oracle9i 操作系统solarisDb_cache_size32m64m128m256m512m 1024m2048m_ksmg_granule_size4m4m16m16m16m16m16m_db_block_buffers40008000160163203264064128128256256_db_block_hash_buckets8009160013205164067128147256279512521_db_block_hash_la
调整缓冲区高速缓存(Buffer Cache)的性能(2)
调整磁盘I/O的性能 哪些操作会导致磁盘I/O: 将Buffer cache中的内容写到数据文件。 写回退段。 将数据文件的内容读到Buffer cache中。 将Redo log Buffer中的内容写到online redo log中。 将online Redo log中的内容归档到 archive log中。 1. 调整表空间和数据文件 测量数据文件I/O:使用V$filestat。 使用STATSPACK来测量数据文件I/O。 使用REPORT.TXT来测量数据文件I/O。 使用Performance Manager(I/O)来测量数据文件I/O。 建议:
调整缓冲区高速缓存(Buffer Cache)的性能(1)
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 Cache Hit Ratio” from V$SYSSTAT physical, V$SYSSTAT dire
Oracle时间信息特性
在监控、诊断、处理数据库性能问题的时候,时间信息往往是非常重要的判断依据。有时候可能我们会使用一些比例来判断性能,但是使用比例而不使用时间往往会将我们带向错误的方向。在Oracle9i的第一版中关于时间的信息被进行了增强,提供了更多更有益的时间信息。除了9i的外貌发生了变化,在一些并没有被我们注意或者不为人知得一些v$视图的相关字段也发生了变化。这里提到的主要是他们发生了那些改变以及对DBA有什么帮助。这里也列出了零星的一些Oracle内部的未公开的信息。Second 1 秒Centi-second 1/100 百分之一秒 厘秒Milli Second 1/1
深入理解Linux操作系统下的守护进程(2)
二、守护进程工作原理和方式 在 Client/Server模式下。服务器监听(Listen)在一个特定的端口上等待客户连接。连接成功后服务器和客户端通过端口进行数据通信。守护进 程的工作就是打开一个端口,并且等待(Listen)进入连接。如果客户端产生一个连接请求,守护进程就创建(Fork)一个子服务器响应这个连接,而主 服务器继续监听其他的服务请求。 守护进程工作方式: (1)运行独立的守护进程 独 立运行的守护进程由init脚本负责管理,所有独立运行的守护进程的脚本在/etc/rc.d/init.d/目录下。系统服务都是独立运行的守护进程包 括:
深入理解Linux操作系统下的守护进程(1)
Linux服务器在启动时需要启动很多系统服务,它们向本地和网络用户提供了Linux的系 统功能接口,直接面向应用程序和用户。提供这些服务的程序是由运行在后台的守护进程(daemons)来执行的。守护进程是生存期长的一种进程。它们独立 于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。他们常常在系统引导装入时启动,在系统关闭时终止。linux系统有很多守护进程,大多数 服务器都是用守护进程实现的。同时,守护进程完成许多系统任务,比如,作业规划进程crond、打印进程lqd等。有些书籍和资料也把守护进程称作:“服 务”
统计字符串中某个字符出现的次数
统计字符串中 E 出现的次数:SELECT LENGTHB(TRANSLATE('ABCDEFGEFGDBE','E'||'ABCDEFGEFGDBE','E')) FROM DUAL;SELECT LENGTHB('ABCDEFGEFGDBE')-LENGTHB(REPLACE('ABCDEFGEFGDBE','E','')) FROM DUAL;[@more@]
删除LINUX分区
请问如何删除LINUX分区记录而重新建立分区? Linux分区安装在硬盘上,使用DOS系统下的FDISK一般是无法删除 Linux分区的。这时可以选择一种类似于pqmagic的分区软件删除类型为ext2和linux swap类型的分区就可以了。如果您想在Linux系统下删除Linux类型的分区,您可以使用系统命令fdisk。比如Linux分区安装在第一块硬盘 的/dev/hda2,执行:fdisk /dev/hda在运行fdisk命令之后,按下d键,d键执行删除分区的操作。然后您选择待删除分区正确的分区编号就可以了。上例中选择的分区编号为 2。最后按下w键,操作存盘退出。这时fdisk命令执行
ASSM管理(BMB段管理)的内部机理(1)
在920以前,表的剩余空间的管理与分配都是由链接列表freelist来完成的,因为freelist存在串行的问题因此容易引起往往容易引起段头的争 用与空间的浪费(其实这一点并不明显),最主要的还是因为需要DBA 花费大量的精力去管理这些争用并监控表的空间利用。 自动段空间管理 (ASSM),它首次出现在Oracle920里。有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,能够迅速有效地管理存储 扩展和剩余区块(free block),因此能够改善分段存储本质,ASSM表空间上创建的段还有另外一个称呼叫Bitmap Managed Segments(
ORACLE备份&恢复案例(8)
4.4.2 RMAN备份下的基于改变的恢复以上用OS备份说明了一个基于时间的恢复,现在用RMAN说明一个基于改变的恢复1、连接数据库,创建测试表并插入记录SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003(c) Copyright 1999 Oracle Corporation. All rights reserved.SQL> connect internal/password as sysdba;Connected.SQL> create table test(a int);Table createdSQL> insert into test values(1);1 row insertedSQL> commit;Commit complete2、备份数据库C:>rmanRecovery Manager: Release 8.1.6.0.
ORACLE备份&恢复案例(6)
4.3.2 RMAN备份方案RMAN备份归档模式下损坏(丢失)多个数据文件,进行整个数据库的恢复1、连接数据库,创建测试表并插入记录SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003(c) Copyright 1999 Oracle Corporation. All rights reserved.SQL> connect internal/password as sysdba;Connected.SQL> create table test(a int);Table createdSQL> insert into test values(1);1 row insertedSQL> commit;Commit complete2、备份数据库DOS下 C:> rman cmdfile=bakup.rcv msglog=backup.log;以下是back
ORACLE备份&恢复案例(7)
4.4 不完全恢复案例4.4.1 OS备份下的基于时间的恢复不完全恢复可以分为基于时间的恢复,基于改变的恢复与基于撤消的恢复,这里已基于时间的恢复为例子来说明不完全恢复过程。基于时间的恢复可以不完全恢复到现在时间之前的某一个时间,对于某些误操作,如删除了一个数据表,可以在备用恢复环境上恢复到表的删除时间之前,然后把该表导出到正式环境,避免一个人为的错误。1、连接数据库,创建测试表并插入记录SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003(c) Copyright 1999 Oracle Corporation. All rights res
ORACLE备份&恢复案例(4)
4.2.2 RMAN备份方案RMAN也可以进行联机备份,而且备份与恢复方法将比OS备份更简单可靠。1、连接数据库,创建测试表并插入记录SQL*Plus: Release 8.1.6.0.0 - Production on Tue May 6 13:46:32 2003(c) Copyright 1999 Oracle Corporation. All rights reserved.SQL> connect internal/password as sysdba;Connected.SQL> create table test(a int) tablespace users;Table createdSQL> insert into test values(1);1 row insertedSQL> commit;Commit complete2、备份数据库表空间usersC:>rmanRecovery Manager: Release 8
ORACLE备份&恢复案例(2)
第三章. 了解与恢复相关的信息1、理解报警日志文件报警日志文件一般记载了数据库的启动/关闭信息,归档信息,备份信息,恢复信息,常见错误信息,部分数据库修改记录等。一般令名规则为<SID>Alrt.log或Alrt<SID>.log,如我的测试数据库的报警日志文件的名称为testalrt.log。报警日志文件的路径是根据初始化参数background_dump_dest来决定的,如在我的机器上,该参数值为 D:Oracleadmintestbdump,那么,你就可以在该路径下找到该文件2、后台进程跟踪文件后台进程跟踪文件的路径与报警日志文件的路径一致,在某些情况下,你可
ORACLE备份&恢复案例(1)
第一章. 理解什么是数据库恢复当 我们使用一个数据库时,总希望数据库的内容是可靠的、正确的,但由于计算机系统的故障(硬件故障、软件故障、网络故障、进程故障和系统故障)影响数据库系 统的操作,影响数据库中数据的正确性,甚至破坏数据库,使数据库中全部或部分数据丢失。因此当发生上述故障后,希望能重构这个完整的数据库,该处理称为数 据库恢复。恢复过程大致可以分为复原(Restore)与恢复(Recover)过程。数据库恢复可以分为以下两类:1.1实例故障的一致性恢复当实例意外地(如掉电、后台进程故障等)或预料地(发出SHUTDOUM
查看所有reference于当前表的外键
select * from user_constraints where R_CONSTRAINT_NAME in (select constraint_name from user_constraints where table_name = 'DEPT') ;查看所有 reference DEPT表的外键[@more@]