Oracle 11g基础学习---------(1)基础入门(一)

2014-11-24 09:16:28 · 作者: · 浏览: 2

 学习Oracle从哪里入手呢,在这里,我将带你走进Oracle的大门,一天一章,7天入门不是梦 

(1)基础入门

1. Oracle 11g 简介Oracle数据库系统是美国Oracle公司(甲骨文)提供的以分布式数据库为核心的一组软件产品

Oracle数据库系统主要包含以下4个特点支持大数据库、多用户、高性能的事务处理 提供了基于角色(ROLE)分工的安全保密管理 提供了新的分布式数据库能力

具有可移植性、可兼容性和可连接性1.2 Oracle发展历史1978年,Oracle 1诞生了,它是使用汇编语言开发的,但它的出现并没有引起太多的关注

1982年,Oracle公司推出了Oracle 3,这是第一个能够运行在大型和小型机上的关系型数据库

1997年,Oracle公司又推出了基于Java语言的Oracle 8 2001年6月,Oracle公司发布了Oracle 9i

2007年7月12日,甲骨文公司在美国纽约宣布推出Oracle 11g,Oracle 11g中的“g”代表“网格”1.3 Oracle与SQL Server比较

SQL Server只能在Windows上运行,没有丝毫的开放性;Oracle能在所有主流平台上运行(包括Windows)

SQL Server很难处理日益增多的用户数和数据卷;Oracle平行服务器通过使一组结点共享同一簇中的工作来扩展Window NT的能力,提供高可用性和高伸缩性的簇的解决方案

SQL Server没有获得任何安全证书,Oracle获得了最高认证级别的ISO标准认证

SQL Server在多用户时性能不佳。Oracle中引入了共享SQL和多线索服务器体系结构,从而减少了Oracle的资源占用,并增强了Oracle的并发处理能力

2. Oracle 11g体系结构内存结构SGA(System Global Area,系统全局区)数据缓冲区(Data Buffer Cache)

用于存储最近从数据库中读取出来的数据块

用户进程查看的数据首先驻留在数据缓冲区中,如果用户进程需要的信息不在该区内,才访问物理磁盘驱动器读取数据块,然后放入该区供其他用户进程或服务器进程使用

重做日志缓冲区(Redo Log Buffer)

当执行INSERT、UPDAE、DELETE等操作时,Oracle都会为这些操作生成重做记录,以便在可能出现的数据库恢复过程中用于回滚事务

但是为了加快访问速度和工作效率,重做记录并不直接写入重做日志文件中,而是首先存入SGA的重做日志缓冲区内,当重做日志缓冲区中的重做记录达到一定数量或到达某个时间点时,再分批写入重做日志文件中

SQL共享池(Shared SQL Pool)SQL共享池是程序的高速缓冲区,存放所有通过SQL语法分析并准备执行的SQL语句

程序全局区(Program Global Area,PGA)

当用户进程连接到Oracle实例时,就会创建一个对应的会话,该会话使用一个服务器进程来完成客户端与Oracle实例之间的通信

每个服务器进程都有一个自己的PGA。PGA由Oracle为服务器进程分配,专门作为当前用户会话的内存区

这个内存区是非共享的,只有服务器进程本身才能访问它自己的PGA区。而SGA区则是所有服务器进程都能共享、可写的内存区

数据库相当于一个柜子,柜子中的抽屉相当于表空间,抽屉中的文件夹相当于数据文件,文件夹中的纸相当于表,写在纸上的信息相当于数据。2.1 进程结构用户进程

用户进程是在客户机内存上运行的程序,它向服务器进程发出数据处理请求 当客户端运行一个应用程序,准备向数据库服务器发送请求时,将会创建用户进程 服务器进程

为了给客户端的用户进程提供服务,Oracle会在客户端成功连接Oracle数据库时,在服务器端创建相应的服务器进程客户端的进程与服务器端的进程是一一对应的

用户进程必须通过服务器进程才能访问数据库后台进程

在同一时刻,Oracle可以处理上百个并发的请求,进行复杂的数据操作,为了提高系统性能并协调多个用户,Oracle使用一些附加的线程,称为后台进程

后台进程存在于操作系统中,在Oracle实例启动时自动启动服务器进程任务 解析并执行用户所提交的SQL语句

搜索SGA区的数据库缓存,决定是否读取数据文件,如果数据块不在SGA区的数据库缓存中,则将其从数据文件中读入将查询或执行后形成的数据返回给用户后台进程任务

在内存和外存之间进行I/O操作监视各个进程的状态协调各个进程的任务维护系统的性能保证系统的可靠性能2.2 内存结构

SGA(System Global Area,系统全局区)SGA是例程内存结构的主要组成部分,每个Oracle实例都只有一个SGA

当多个用户同时连接到一个例程时,所有的用户进程、服务器进程都共享SGA 它是不同用户进程与服务器进程进行通信的中心

可以将SGA看作是Oracle的心脏。当启动Oracle实例时,即分配一个SGA;当终止Oracle实例时,即释放SGA占用的内存

SGA(System Global Area,系统全局区)数据缓冲区(Data Buffer Cache)用于存储最近从数据库中读取出来的数据块

用户进程查看的数据首先驻留在数据缓冲区中,如果用户进程需要的信息不在该区内,才访问物理磁盘驱动器读取数据块,然后放入该区供其他用户进程或服务器进程使用

重做日志缓冲区(Redo Log Buffer)

当执行INSERT、UPDAE、DELETE等操作时,Oracle都会为这些操作生成重做记录,以便在可能出现的数据库恢复过程中用于回滚事务

但是为了加快访问速度和工作效率,重做记录并不直接写入重做日志文件中,而是首先存入SGA的重做日志缓冲区内,当重做日志缓冲区中的重做记录达到一定数量或到达某个时间点时,再分批写入重做日志文件中

SQL共享池(Shared SQL Pool)SQL共享池是程序的高速缓冲区,存放所有通过SQL语法分析并准备执行的SQL语句

程序全局区(Program Global Area,PGA)

当用户进程连接到Oracle实例时,就会创建一个对应的会话,该会话使用一个服务器进程来完成客户端与Oracle实例之间的通信

每个服务器进程都有一个自己的PGA。PGA由Oracle为服务器进程分配,专门作为当前用户会话的内存区

这个内存区是非共享的,只有服务器进程本身才能访问它自己的PGA区。而SGA区则是所有服务器进程都能共享、可写的内存区2.3 逻辑结构

数据块(Data Block)

数据块是最小的数据管理单位,即Oracle中所有的I/O操作都以块为单位。数据块的大小是操作系统块大小的整数倍,常见大小为2KB或4KB

数据区间(Data Extent)数据区间由物理上连续存放的块所构成,它是Oracle存储分配的最小单位,一个或多个块组成一个数据区间

数据段(Data Segment)若干个数据区间构成数据段 表空间(Table Space)

为了提高数据库服务器管理和运行的效率,Oracl