Oracle 体系结构
ORA
Linux/Unix上,Oracle是多个进程实现的,每一个主要函数都是一个进程;在Windows上,则是一个单一进程,进程中包含多个线程。
Oracle把一系列物理文件,如数据文件(Data file)、控制文件(Control file)、联机日志(Redo log file)、参数文件(spfile or pfile)等物理结构及与之对应的逻辑结构,如表空间(Tablespace)、段(Segment)、块(Block)等组成的集合,称为数据库(Database)。
Oracle内存结构和后台进程被做成数据库的实例(Instance),一个实例最多只能安装(Mount)或打开(Open)在一个数据库上,负责数据库的相应操作并与用户交互。一般情况下,一个数据库对应一个实例,但是在特点的情况下,如OPS/RAC的情况下,一个数据库可以对应到多个实例。
Oracle实例(Instance)
Oracle内存结构
Oracle内存结构主要可以分共享内存区与非共享内存区,共享内存区主要由SGA(System global area)组成,非共享内存区主要由PGA(Program global area)组成
SGA
这里的数据可以被Oracle的各个进程共用,如果有互斥的操作,如锁定一个内存对象,则需要通过Latch与Enqueue来控制。
每个Oracle实例(Instance)只能启动一个SGA,除非通过RAC等一些特殊的全局管理方式,否则不同的实例只能访问自己的SGA区域。
SQL> show sga;
Total System Global Area 2058981376 bytes
Fixed Size 1300968 bytes
Variable Size 822085144 bytes
Database Buffers 1224736768 bytes
Redo Buffers 10858496 bytes
以上是典型的OLTP(联机事务处理)环境中的SGA的分配情况。
Fixed Size
包括了一些数据库与实例的控制信息、状态信息、字典信息等,启动的时候就固定在SGA中,而且不会改变。
Variable Size
包含了shared pool、large pool、java pool、streams pool、游标区和其它结构等。
Database buffers(Data buffer)
它是数据库中数据块缓冲的地方,数据块在内存中就缓存在这里。所以,在OLTP环境中,Data buffer是SGA中最大的缓冲区,是数据库性能高低的关键所在。
Redo buffers
它是为了加快日志写进程的速度而设立的缓冲区,在一般OLTP环境中,因为提交很频繁,所以一般不会很大。
SGA的大小信息也可以从v$sga中获得,与show sga的结果一样。v$sgastat记录了SGA的一些统计信息,v$sga_dynamic_components则保存了SGA中可以动态调整的区域的一些动态或者手工调整记录。
共享池(Shared pool)
共享池
相关文档:
本实例已完全通过测试,单向,双向同步都可使用.
--名词说明:源——被同步的数据库
目的——要同步到的数据库
前6步必须执行,第6以后是一些辅助信息.
--1、在目的数据库上,创建dblink
drop public database link dblink ......
几个简单的步骤大幅提高Oracle性能--我优化数据库的三板斧。
数据库优化的讨论可以说是一个永恒的主题。资深的Oracle优化人员通常会要求提出性能问题的人对数据库做一个statspack,贴出数据库配置等等。还有的人认为要抓出执行最慢的语句来进行优化。但实际情况是,提出疑问的人很可能根本不懂执行计划,更不要说statspac ......
Oracle傻瓜手册
Oracle8以8.1.5为界分为普通版本和internet版本。普通版版本号8.0.x,接触较多的是8.0.5;internet版版本号包括8.1.5(Release 1),8.1.6(Release 2),8.1.7(Release 3)。普通版简称Oracle 8,internet版简称Oracle 8i。假如不作非凡说明,文中凡出现Oracle 8i均指8.1.7版。
Oracle9 ......
Oracle中用Rowid查找和删除重复记录
平时工作中可能会碰到当试图对库表中的某一列或几列创建唯一索引时,系统提示 ORA-01452 :不能创建唯一索引,发现重复记录。
下面总结一下几种查找和删除重复记录的方法(以表CZ为例):
表CZ的结构如下:
SQL> desc cz
Name Null? Type
---------- ......