- 博客(60)
- 收藏
- 关注
原创 insert /*+ append */ into一定会比insert into好吗?
在速度上面大家都清楚直接加载插入数据确实比insert into快多了,但是如果在业务很麻烦的表这样做,估计会付出很大的性能甚至夯机的代价,也许开发追求快,但是作为DB,要考虑在性能的基础上来追求卓越的速度SQL> explain plan for insert /*+ append */ into t_app select * from t_app;Explained.SQL
2014-11-26 14:56:33
11777
原创 index leaf/branch block说明
-----根据索引的object_id来treedump其信息alter system flush buffer_cache;select object_id from dba_objects where object_name='IDX01_T_OBJECTS' and object_type='INDEX';alter system set events ' immediate t
2014-11-19 19:29:44
1376
原创 enq:TX-index contention等待事件
此等待事件发生的版本从10.2到11.2,在任何平台都会出现产生的原因:在OLTP RAC系统上,高并发应用下,与表相关的索引会发生很高的TX队列的争用。这通常在所有实例并发应用大量的INNSERT或DELETE操作。因为当插入新行到index块里索引块可能需要做splits动作。事物将会有mode 4的TX lock,直到之前的session做完index block splits为止。
2014-11-18 17:23:47
8011
原创 在OLTP中,索引访问的几种常规操作
在OLTP中,索引访问的几种常规操作1、index(unique scan):唯一索引扫描,即对唯一索引进行单一匹配访问。在唯一索引中,每一个非空健值只会存在一条。主键本身是一个没有null值的唯一索引。------------------------------------------------------------------------------------------|
2014-11-13 16:39:17
973
原创 在OLTP中,表访问的几种常规操作
在OLTP中,表访问的几种常规操作1、table access(full):全表扫描,通过扫描全表的方式来访问表,这样的表操作,一般情况下是不想PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Plan hash value: 139135
2014-11-11 16:02:41
2379
原创 log file sync等待事件
概念:1、REDO组件:redolog buffer=>位于SGA中,是一块循环使用的内存区域,保存数据库变更的相关信息并以重做条目redoentries形式存储,包含DML及DDL语句;LGWR=>通过此进程把redo buffer的内容写到redo log file中;redo log file=>(在归档模式下被ARC n最终写入归档日志)。最少两组重做日志,每组最少一个成员
2014-10-30 10:27:14
1583
原创 ORA-00600 [1880]
-----环境信息[oracle@trsen02 bdump]$ uname -aLinux trsen02.yto.com 2.6.18-194.el5 #1 SMP Tue Mar 16 21:52:39 EDT 2010 x86_64 x86_64 x86_64 GNU/LinuxSQL> select * from v$version;BANNER---------
2014-10-23 14:41:05
739
原创 ORA-4031
--ORA-04031是个经典错误,一般情况是由于shared pool被耗尽导致,例如:未绑定变量导致的hard parse或大并发的shared pool本身太小,一般情况ORA-04031发生时会同时又相关等待事件出现cursor: pin S wait on X;library cache lock;latch: library cache;latch: shared pool等。
2014-10-09 16:48:02
1949
原创 RAC+ADG apply PSU+PATCH
---环境------aix rac+adg,off-line方式打补丁----读所有patch,及PSU的readme,很重要,特别是patch,可能有的应用patch方法不应---------停实例,停服务,停集群,disable集群,杀进程-----[oracle@trsendb1 /]srvctl stop instance -d xxxx -i xxxx[oracle
2014-10-09 09:24:15
2318
原创 ORA-31626/ORA-31638/ORA-39077/ORA-6502
导数据遇到ORA-31626/ORA-31638/ORA-39077/ORA-6502报错信息如下:[oracle@vm010148 ~]$ expdp system/oracle directory=dir dumpfile=full.dmp logfile=full.logExport: Release 11.2.0.3.0 - Production on Sun Sep 28
2014-09-28 14:23:19
5003
原创 Stripe data files across multiple physical devices and locations
Stripe data files across multiple physical devices and locations如果在没有做条带的磁盘(即从存储到OS没有做raid),那么就需要手工去做I/O的分布。切记,不应该将频繁使用的table和其index分开,这样会正大I/O;针对tables、indexes、temp tablespace,首先调优SQL,其次如果真心无法再调优
2014-09-12 10:44:29
683
原创 ORA-00600 [504]
ALERT日志:Wed Sep 10 09:00:53 2014Errors in file /u01/app/oracle/diag/rdbms/trsendb/trsendb2/trace/trsendb2_ora_40371414.trc (incident=821340):ORA-00600: internal error code, arguments: [504], [0
2014-09-10 13:50:41
1171
原创 Create and manage temporary, permanent, and undo tablespaces
Create and manage temporary, permanent, and undo tablespaces关于tablespace的操作语句有三大类,分别是create tablespace、alter tablespace、drop tablespace表空间如标题所说,总体也分为三大类,temporary tablespace 、system/sysaux/users t
2014-09-04 15:01:24
1298
原创 工作集、granule、缓冲区、缓冲池概念及关系?
工作集、granule、缓冲区、缓冲池概念及关系?granule:为了让内存在db_chache_size和shared_pool_size之间高效的移动,oracle在9i重构SGA,使用固定大小的内存块即为granule。这个参数就是为什么当你分配给shared pool值的时候,为什么有时候比你分配的值要大一点,但是granule的整数倍。缓冲区:内存存放数据的地方,类似于数
2014-08-25 14:20:21
2986
原创 DD备份script
ora_full.shCONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 91 DAYS;CONFIGURE CONTROLFILE AUTOBACKUP off;run
2014-08-21 13:28:57
1148
原创 锁检查脚本
--用dba用户执行以下语句,可以查看到被锁的语句。select sql_text from v$sql where hash_value in(select sql_hash_value from v$session where sid in(select session_id from v$locked_object WHERE object_id='107181'))--
2014-08-20 11:03:15
613
原创 Server Configuration1
1.1、Create the database1.2、Determine and set sizing parameters for database structures大概步骤:Step 1: Specify an Instance Identifier (SID)==>设置实例id,ORACLE_SID=orclStep 2: Ensure That the Required
2014-08-15 17:46:45
496
转载 11g_OCM提纲
http://education.oracle.com/pls/web_prod-plq-dad/db_pages.getpage?page_id=5001&get_params=p_exam_id:11GOCM Notes about the exam Exam participants work through nine skillsets that are based
2014-08-15 17:45:28
671
原创 ORACLE 12C之CDB与PDB
ORACLE 12C之CDB与PDB北京时间,2013年6月26日,Oracle Database 12c版本正式发布,首先发布的版本号是12.1.0.1.0Oracle Pluggable Database:Oracle PDB体系结构由一个容器数据库(CDB)和多个可组装式数据库(PDB)构成,PDB包含独立的系统表空间和SYSAUX表空间等,但是所有PDB共享CDB的控制文件、日
2014-08-04 17:36:56
6181
1
原创 进程体系结构
进程体系结构oracle数据库是多进程数据库系统进程类型:客户端进程:运行应用程序或oracle工具代码 当用户运行一个应用程序(如Pro*C 程序或 SQL*Plus)时,操作系统会创建一个客户端进程 (有时称为用户进程)来运行用户应用 程序。客户端应用程序具有已链接到进程的Oracle数据库库文件,以提供与数据库进行通信所需的API。oracle进程:
2014-08-01 16:07:10
743
原创 基本内存结构
基本内存结构SGA:SGA是一组称为SGA组件的共享内存结构,其中包含了一个ORACLE数据库实例的数据和控制信息。SGA由所有服务器进程和后台进程共享。例如:SGA中存储的数据包括数据块缓存和共享SQL区。PGA:PGA是一个非共享的内存区域,其中包含专门供某个ORACLE进程使用的数据和控制信息。oracle进程启动时,oracle数据库会为其创建PGA。每个服务器进程和后台进
2014-08-01 14:32:57
1172
原创 常见的文件丢失场景及恢复
常见的文件丢失场景及恢复常见文件丢失包括三大类:1)、控制文件丢失;2)、数据文件丢失;3)、重做日志丢失;一、控制文件的丢失:A:控制文件部分丢失解决方案:复制可用的control file或修改spfile/pfile重新启动。B:控制文件全部丢失解决方案:>恢复物理备份>通过备份的脚本重建ShutdownStartup nomo
2014-07-31 11:22:44
1649
原创 ORA-08104: this index object xxxxx is being online built or rebuilt
create/rebuild index online时会在该索引所在用户下创建一个在线日志中间表SYS_JOURNAL_obj#,和在ind$及online_ind$表里标记256或512(11G里的标记位可能不是);如果服务进程在语句执行过程中意外终止的话,可能会导致相关在ind$标记位信息及在线日志中间表不能及时处理及清除(这个清除动作一般由smon进程来处理)这将导致对该索引的后续
2014-07-29 18:08:03
2416
原创 实例及数据库
数据库实例简单介绍数据库实例时一组用于管理数据文件的内存结构。数据是一组由create database语句在磁盘上创建的物理文件。由实例管理其关联的数据,并为数据库用户提供服务。每个正在运行的ORACLE数据库至少与一个ORACLE数据库实例相关联。因为实例存在于内存中,而数据库存在于磁盘上,所以实例可以在没有数据库时而存在,数据库也可以在没有实例时存在。ORACLE实例结构
2014-07-28 14:08:55
830
原创 HWM&&碎片整理之move操作
针对ASSM segment管理方式的HWM的降法:impdp/expdp,exp/imp,ctas,insert into,move,shrink,在线重定义等方法;前面已经讨论过在线重定义,impdp/expdp的用法,这里不作讨论,至于ctas,不作讨论;前面,已经用tom大师的工具来做hwm的判定了;这里主要说明move用法move操作:SQL> create tabl
2014-07-22 16:06:40
848
原创 事务
事务什么是事务?事务是包含一个或多个SQL语句的逻辑的、原子的工作单元。事务将SQL语句分组,以便它们可以一起被提交,即将其应用到数据库,或者一起被回滚,即将其从数据库中撤消。ORACLE数据库将为每个事务分配一个称为事务ID的唯一标识符。什么是事务的ACID属性?原子性:事务中的所有任务,要么全部执行,要么都不执行。不存在部分完成的事务。例如,事务做删除100
2014-07-22 11:07:36
925
原创 检查表的HWM Script
CREATE OR REPLACE PROCEDURE show_space(p_segname_1 IN VARCHAR2, p_type_1 IN VARCHAR2 DEFAULT 'TABLE', p_space
2014-07-21 16:10:59
646
原创 lock类型介绍
排它锁(exclusive locks,即X锁):当数据对象被加上排它锁时,其他的事务不能对它读取和修改共享锁(share locks,即S锁):加了共享锁的数据对象可以被其他事务读取,但不能修改表级锁TM有5种类型:S,X,RS(SS),RX(SX),SSX(SRX).Value Name(s) Table method (TM lock)0
2014-07-18 14:05:12
1576
原创 索引聚簇因子
索引聚簇因子用于测量相对于某个索引值(如雇员姓氏)的行顺序。被索引值的行存储得越有序,则聚簇因子越低。因为我们常用的表是堆表,数据的存储是“无序”存放在磁盘或存储上;如果所查的数据越无序越分散,查询的逻辑IO虽然一样,但是物理IO的代价就可能很高了。如果聚簇因子较高,则在大型索引范围扫描过程中,数据库将执行相对较高数目的I/O。索引条目指向随机表块,因此数据库可能必须一遍又一遍地来回重读索
2014-07-18 13:25:13
803
原创 ORA-00600[kghstack_underflow_internal_3]
环境:11.2.0.3.6 双节点RAC系统:aix power system 6.1问题:一个节点在凌晨出现ORA-600错误alert日志:Global Enqueue Services Deadlock detected. More info in file /u01/app/oracle/diag/rdbms/trsen/trsen2/trace/trsen2_lmd0
2014-07-17 13:31:00
1976
原创 DataDump基础框架及参数介绍
expdp/impdp工具看起来很像exp/imp,这里郑重的说明,这是两个不同的工具。通过expdp dump出来的文件,imp是无法dump进去库里,反之,亦然。一、oracle数据库泵工具组件1、命令行客户端 expdp和impdp2、data pump api==>dbms_datapump pl/sql包3、metadata api==>dbms_metadata pl/
2014-07-03 15:27:30
3274
原创 分区索引碎片整理Script
第一步、在sys、system用户下执行查询语句并插入到自己创建的表里create table monitor.SPARSE_INDEX_20140627SELECT /*ORACONF*/ /*+ ordered */ u.name, o.name index_name, o.subname partition_name, i.blevel, to_char(100
2014-06-27 18:31:58
802
原创 DataPump关于跨数据库版本remove数据
利用DATAPUMP来做不同版本数据库之间的导入导出在此做出声明:从10g开始就有data pump工具,oracle保留了imp/exp工具,但做支持了(即对此工具不做更新操作);做数据的dump工作,建议用data pump一、学习一下version这个参数在官方文档里的说明及解释version={compatible|lastest|version_string}三个value
2014-06-26 18:29:09
735
原创 修改10G RAC public IP && VIP
修改10G RAC public IP && VIP一、场景:因服务器的网络变更,所有ip地址需要重新分配,oracle RAC下的ip地址就需要做相关的修改,这里需要对public ip地址及VIP地址做修改,至于心跳ip地址,还是延续使用原先的ip地址;二、IP地址:1、原先ip地址分配node1==>[oracle@trsen01 ~]$ more /etc/hosts
2014-06-23 12:30:17
672
原创 SCN&&CHECKPOINT
==>检查点定义当用户提交事务,先写日志文件,再写数据文件。当数据库实例crash时,内存中的Buffer中的数据,没有写入到数据块中;数据库在重新打开时,需要进行恢复,来恢复Buffer中的数据状态,并确保已经提交的数据被写入到数据块中;检查点是这个过程中的重要机制,通过它来确定,恢复时哪些重做日志应该被扫描并应用于恢复.检查点发生后,触发DBWn,CKPT获取发生检查点
2014-06-18 14:28:49
650
原创 相同平台的RAC 到单实例库的clone 迁移
相同平台的RAC 到单实例库的clone 迁移一、场景因一套RAC 库的机器需要更换机房,必须在原先机房保留一套与之一样的数据库,以便应用不断的情形做机器的搬迁:1)、应用暂停为零最好,这种情形用goldengate 做,可以做到零停机,成本太高;2)、利用rman+dg 来做,应用暂停时间大约在切应用和apply 最后一批日志,因为是TB 级库,如果顺利,控制在30 分钟
2014-06-11 16:12:33
688
原创 10GR2两节点RAC搭建及升级至10.2.0.5
一、安装环境简介:1、安装vbox最新版本,可在oracle官网上下载http://www.oracle.com/technetwork/server-storage/virtualbox/downloads/index.html,vbox位于win系统的安装,只要next就ok了,这里不多说了。2、操作系统:redhat 5.5企业版3、相关工具:Xmanager Enterpris
2014-06-11 16:03:11
1286
原创 RMAN组件及概念解释
RMAN==>recovery manager,恢复管理器,是SMR(server-managed recovery)的具体实现可利用rman进行增量备份。备份的大小不取决于数据库大小,而是取决于数据库内的活动程度,因为增量备份将跳过未改动的块。用其他方法不能进行增量备份。可进行增量导出,但并不认为它是数据库的实际备份。目标数据库(target databse)==>是指要执行备份
2014-06-11 15:59:27
1641
原创 TB级别库迁移操作
一、场景因一套RAC库的机器需要更换机房,必须在原先机房保留一套与之一样的数据库,以便应用不断的情形做机器的搬迁:1)、应用暂停为零最好,这种情形用goldengate做,可以做到零停机,成本太高;2)、利用rman+dg来做,应用暂停时间大约在切应用和apply最后一批日志,因为是TB级库,如果顺利,控制在30分钟-50分钟左右;否则启用第二套方案,这里不作说明。二、原理
2014-06-05 09:04:53
2378
原创 基于11GR2的PSU补丁安装
基于11GR2的PSU补丁安装 场景:hp-unix新装数据库11.2.0.4.0,为了便于在线上触发此版本的一些bug而导致停机来维护,在安装后,应用MOS上提供最新的PSU补丁,操作:利用OPatch工具来打GI和ORACLE软件的PSU操作系统版本:$ uname -aHP-UX dbsrv B.11.31 U ia64 3837480657unlimited-use
2014-05-21 19:10:08
2004
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人