一个表空间只能属于一个数据库  

  每个数据库最少有一个控制文件(建议3个,分别放在不同的磁盘上)  

  每个数据库最少有一个表空间(SYSTEM表空间)  

  建立SYSTEM表空间的目的是尽量将目的相同的表存放在一起,以提高使用效率  

  每个数据库最少有两个联机日志文件  

  一个数据文件只能属于一个表空间  

  一个数据文件一旦被加入到一个表空间中,就不能再从这个表空间中移走,也不能再加入到其他表空间中  

  建立新的表空间需要建立新的数据文件  

  数据文件被ORACLE格式化为ORACLE块,ORACLE块的大小是在第一次创建数据库时设定的,并且以后不能改变  

  单独一个事务不能跨越多个回滚段  

  索引表不含ROWID值  

  拥有不同大小的回滚段没有任何益处  

  ORACLE在初始安装时建立一个缺省数据库,实例名为ORCL  

  一个块的最大长度为16KB(有2K、4K、8K、16K) 
  每个数据库最大文件数(按块大小) 
  2K块        20000个文件 
  4K块        40000个文件 
  8K块或以上     65536个文件 


  oracle server可以同时启动多个数据库  

  一套操作系统上只能安装一个版本的ORACLE数据库系统  

  一套ORACLE数据库系统中可以有多个ORACLE数据库  

  每个ORACLE数据库拥有一个数据库实例(INSTANCE)  

  所以,一套操作系统上同时可以有多个oracle数据库实例启动  
Oracle的入门心得(1)
来源:不详 (2005-07-20 19:55:02)

Oracle的体系太庞大了,对于初学者来说,难免会有些无从下手的感觉,什么都想学,结果什么都学不好,所以把学习经验共享一下,希望让刚刚入门的人对Oracle有一个总体的认识,少走一些弯路。

一、定位

    Oracle分两大块,一块是开发,一块是管理。开发主要是写写存储过程、触发器什么的,还有就是用Oracle的Develop工具做form。有点类似于程序员,需要有较强的逻辑思维和创造能力,个人觉得会比较辛苦,是青春饭;管理则需要对Oracle数据库的原理有深刻的认识,有全局操纵的能力和紧密的思维,责任较大,因为一个小的失误就会down掉整个数据库,相对前者来说,后者更看重经验。

    因为数据库管理的责任重大,很少公司愿意请一个刚刚接触Oracle的人去管理数据库。对于刚刚毕业的年轻人来说,可以先选择做开发,有一定经验后转型,去做数据库的管理。当然,这个还是要看人个的实际情况来定。

二、学习方法

    我的方法很简单,就是:看书、思考、写笔记、做实验、再思考、再写笔记。

    看完理论的东西,自己静下心来想想,多问自己几个为什么,然后把所学和所想的知识点做个笔记;在想不通或有疑问的时候,就做做实验,想想怎么会这样,同样的,把实验的结果记下来。思考和做实验是为了深入的了解这个知识点。而做笔记的过程,也是理清自己思路的过程。

    学习的过程是使一个问题由模糊到清晰,再由清晰到模糊的过程。而每次的改变都代表着你又学到了一个新的知识点。

    学习的过程也是从点到线,从线到网,从网到面的过程。当点变成线的时候,你会有总豁然开朗的感觉。当网到面的时候,你就是高手了。

    很多网友,特别是初学的人,一碰到问题就拿到论坛上来问,在问前,你有没有查过书,自己有没有研究过,有没有搜索一下论坛?这就叫思维惰性。由别人来回答你的问题,会让你在短时间内不费劲地弄懂这个知识点,然而通过自己的努力去研究它,不但会更深入的了解这个知识点,更重要的是在研究的过程会提高你解决问题和分析问题的能力。总的来说,没有钻研的学习态度,不管学什么东西,都不会成功的。

    当然,初学的人很多时候是因为遇到问题时,无从下手,也不知道去哪里找资料,才会到论坛上提问题的。但我认为,在提问的时候,是不是可以问别人是如何分析这个问题?从哪里可以找到相关的资料?而不是这个问题的答案是什么?授人以鱼不如授人以渔。

    下面我讲下我处理问题的过程

    首先要知道Oracle的官方网站:www.oracle.com 这里有Oracle的各种版本的数据库、应用工具和权威的官方文档。其次,还要知道http://metalink.oracle.com/这里是买了Oracle服务或是oracle的合作伙伴才可以进去的,里面有很多权威的解决方案和补丁。然后就是一些著名网站:asktom.oracle.com www.orafaq.net, www.dbazine.com。这里有很多经验之谈。

    遇到问题了。如果是概念上的问题,第一时间可以找tahiti.oracle.com,这里会给你最详细的解释。如果在运行的过程中出了什么错误。可以去metalink看看。如果是想知道事务的处理的经验之谈。可以去asktom。当然。这里只是相对而言。
(http://www.fanqiang.com)

Oracle入门心得(2)
来源:不详 (2005-07-20 19:55:22)

三、Oracle的体系
    Oracle的体系很庞大,要学习它,首先要了解Oracle的框架。在这里,简要的讲一下Oracle的架构,让初学者对Oracle有一个整体的认识。

     1、物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成)

    控制文件:包含维护和验证数据库完整性的必要信息、例如,控制文件用于识别数据文件和重做日志文件,一个数据库至少需要一个控制文件.

    数据文件:存储数据的文件.

    重做日志文件:含对数据库所做的更改记录,这样万一出现故障可以启用数据恢复。一个数据库至少需要两个重做日志文件.

    参数文件:定义Oracle例程的特性,例如它包含调整SGA中一些内存结构大小的参数.

    归档文件:是重做日志文件的脱机副本,这些副本可能对于从介质失败中进行恢复很必要。

    密码文件:认证哪些用户有权限启动和关闭Oracle例程.


    2、逻辑结构(表空间、段、区、块)

    表空间:是数据库中的基本逻辑结构,一系列数据文件的集合。
    段:是对象在数据库中占用的空间.
    区:是为数据一次性预留的一个较大的存储空间.
    块:ORACLE最基本的存储单位,在建立数据库的时候指定.


    3、内存分配(SGA和PGA)

    SGA:是用于存储数据库信息的内存区,该信息为数据库进程所共享。它包含Oracle 服务器的数据和控制信息,它是在Oracle服务器所驻留的计算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写。

    PGA:包含单个服务器进程或单个后台进程的数据和控制信息,与几个进程共享的SGA 正相反PGA 是只被一个进程使用的区域,PGA 在创建进程时分配在终止进程时回收.

    4、后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程)

    数据写进程:负责将更改的数据从数据库缓冲区高速缓存写入数据文件
    日志写进程:将重做日志缓冲区中的更改写入在线重做日志文件
    系统监控:检查数据库的一致性如有必要还会在数据库打开时启动数据库的恢复
    进程监控:负责在一个Oracle 进程失败时清理资源
    检查点进程:负责在每当缓冲区高速缓存中的更改永久地记录在数据库中时,更新控制文件和数据文件中的数据库状态信息。
    归档进程:在每次日志切换时把已满的日志组进行备份或归档
    服务进程:用户进程服务。
    用户进程:在客户端,负责将用户的SQL语句传递给服务进程,并从服务器段拿回查询数据。

    5、Oracle例程:Oracle例程由SGA内存结构和用于管理数据库的后台进程组成。例程一次只能打开和使用一个数据库。

    6、SCN(System ChangeNumber):系统改变号,一个由系统内部维护的序列号。当系统需要更新的时候自动增加,他是系统中维持数据的一致性和顺序恢复的重要标志。

四、深入学习

    管理:可以考OCP证书,对Oracle先有一个系统的学习,然后看Oracle Concepts、Oracle online document,对oracle的原理会有更深入的了解,同时可以开始进行一些专题的研究如:RMAN、RAS、STATSPACT、DATAGUARD、TUNING、BACKUP&RECOVER等等。

    开发:对于想做Oracle开发的,在了解完Oracle基本的体系结构之后,可以重点关注PL/SQL及Oracle的开发工具这一部分。PL/SQL主要是包括怎么写SQL语句,怎么使用Oracle本身的函数,怎么写存储过程、存储函数、触发器等。 Oracle的开发工具主要就是Oracle自己的Developer Suite(Oracle Forms Developer and Reports Developer这些),学会如何熟练使用这些工具。
(http://www.fanqiang.com)


ORACLE数据库简介
来源:不详 (2001-05-14 05:28:00)

一、概论   

  ORACLE 是以高级结构化查询语言(SQL)为基础的大型关系数据库,通俗地 
讲它是用方便逻辑管理的语言操纵大量有规律数据的集合。是目前最流行的客 
户/服务器(CLIENT/SERVER)体系结构的数据库之一。 

二、特点 

   1、ORACLE7.X以来引入了共享SQL和多线索服务器体系结构。这减少了ORACLE


的资源占用,并增强了ORACLE的能力,使之在低档软硬件平台上用较少的资源 
就可以支持更多的用户,而在高档平台上可以支持成百上千个用户。 

  2、提供了基于角色(ROLE)分工的安全保密管理。在数据库管理功能、完整性 


检查、安全性、一致性方面都有良好的表现。 

  3、支持大量多媒体数据,如二进制图形、声音、动画以及多维数据结构等。 



  4、提供了与第三代高级语言的接口软件PRO*系列,能在C,C++等主语言中嵌入


SQL语句及过程化(PL/SQL)语句,对数据库中的数据进行操纵。加上它有许多优 


秀的前台开发工具如 POWER BUILD、SQL*FORMS、VISIA BASIC 等,可以快速开 


发生成基于客户端PC 平台的应用程序,并具有良好的移植性。 

5、提供了新的分布式数据库能力。可通过网络较方便地读写远端数据库里的数 


据,并有对称复制的技术。 

三、存储结构 

1、物理结构 

ORACLE数据库在物理上是存储于硬盘的各种文件。它是活动的,可扩充的,随着


数据的添加和应用程序的增大而变化。 

2、逻辑结构 

  ORACLE数据库在逻辑上是由许多表空间构成。主要分为系统表空间和非系统


表空间。非系统表空间内存储着各项应用的数据、索引、程序等相关信息。我们


准备上马一个较大的ORACLE应用系统时,应该创建它所独占的表空间,同时定义


物理文件的存放路径和所占硬盘的大小。  

四、分布式数据库管理介绍 

1、原理 

    物理上存放于网络的多个ORACLE数据库,逻辑上可以看成一个单个的大数据

库。 
用户可以通过网络对异地数据库中的数据同时进行存取,而服务器之间的协同处


理对于工作站用户及应用程序而言是完全透明的:开发人员无需关心网络的连接


细节、无需关心数据在网络接点中的具体分布情况、也无需关心服务器之间的协


调工作过程。 

2、过程 

    由网络相连的两个ORACLE数据库之间通过数据库链接(DB-LINKS)建立访问机

制, 
相当于一方以另一方的某用户远程登录所做的操作。但ORACLE采用的一些高级管

理 
方法,如同义词(SYNONME)等使我们觉察不到这个过程,似乎远端的数据就在本地

。 
数据库复制技术包括:实时复制、定时复制、储存转发复制。对复制的力度而言

, 
有整个数据库表的复制,表中部分行的复制。在复制的过程中,有自动冲突检测

和 
解决的手段。 

(http://www.fanqiang.com)