Oracle 体系结构

来源:互联网 发布:文联主席砸电脑知乎 编辑:程序博客网 时间:2024/03/29 07:45

1         Oracle体系结构

1.1    Oracle介绍

1)        对象关系型的数据库管理系统 (ORDBMS)

2)        在管理信息系统、企业数据处理、因特网及电子商务等领域使用非常广泛

3)        在数据安全性与数据完整性控制方面性能优越

4)        跨操作系统、跨硬件平台的数据互操作能力

1.2    Oracle数据库的主要特点

1)        支持多用户、大事务量的事务处理

2)        数据安全性和完整性控制

3)        支持分布式数据处理

4)        可移植性

 

1.3    体系结构

1)        数据库的体系结构是指数据库的组成、工作过程与原理,以及数据在数据库中的组织与管理机制

2)        Oracle服务器提供开放、全面和综合的信息管理,它由Oracle数据库和Oracle实例组成

1.         Oracle 数据库是一个数据的集合,该集合被视为一个逻辑单元

2.         管理数据库的后台进程和内存结构的集合称为 Oracle 实例  

 

1.3.1Oracle 实例

1)        Oracle 实例是后台进程和内存结构的集合

如果把Oracle比作一部汽车,instance相当于汽车的发动机一样,启动oracle前提应先启动instance

2)        Oracle实例启动分配内存(SGA),启动后台进程

1.3.2Oracle 数据库

1)        Oracle 数据库由操作系统文件组成,这些文件为数据库信息提供实际物理存储区

2)        Oracle 数据库包括逻辑结构和物理结构

3.         物理结构包含数据库中的一组操作系统文件。

4.         逻辑结构指数据库创建之后形成的逻辑概念之间的关系

1.3.3会话

1)        会话是用户与 Oracle 服务器的单个连接

2)        当用户与服务器建立连接时创建会话

3)        当用户与服务器断开连接时关闭会话

1.3.4Oracle 实例内存结构

内存结构(Memory Structures)的组成:

SGASystem Global Area,系统全局区):当一个Oracle实例启动的时候分配存储空间;

PGAPrograme Global Area,程序全局区):当一个服务器进程启动的时候分配内存空间,PGA不是共享的。

1.3.5系统全局区(SGA)

SGA主要包括三部分,分别为共享池(Shared Pool)、数据库缓冲区(Database Buffer Cache)和回档日志缓冲区(Redo Log Buffer Cache )。

关于SGA,执行SQL语句可以查看SGA

SQL> show sga

Total System Global Area  599785472 bytes

Fixed Size                  1250356 bytes

Variable Size             222301132 bytes

Database Buffers          369098752 bytes

Redo Buffers                7135232 bytes

显示当前sga使用情况:

SQL> show parameter sga

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- --------------

lock_sga                             boolean     FALSE

pre_page_sga                         boolean     FALSE

sga_max_size                         big integer 572M

sga_target                           big integer 572M

1.3.6程序全局区

1     程序全局区(PGA)包含单个服务器进程所需的数据和控制信息

2     PGA是在用户进程连接到数据库并创建一个会话时自动分配的,保存每个与Oracle 数据库连接的用户进程所需的信息

3     PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放

1.3.7共享池

1)        共享池是对SQLPL/SQL程序进行语法分析、编译、执行的内存区域

2)        共享池由库缓存和数据字典缓存组成。

3)        共享池的大小直接影响数据库的性能。

4)        要获得共享池的一些参数,可以执行如下SQL语句:

5)        SQL> show parameter shared;

1.3.8数据缓冲区

1)        用于存储从磁盘数据文件中读入的数据,所有用户共享。

2)        服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。

3)        数据缓冲区的大小对数据库的读取速度有直接的影响

4)        获取数据库的一些参数,可以执行如下所示的SQL语句:

6)        SQL> show parameter db;

 

1.3.9日志缓冲区

1)        日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。

2)        当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。

3)        相对来说,日志缓冲区对数据库的性能影响较小。

4)        要获得数据库缓冲区(Database Buffer Cache)的一些参数,可以执行如下SQL语句:SQL> show parameter db_cache;

1.3.10            Oracle实例进程分类

1)        用户进程

用户进程是一个需要与Oracle服务器进行交互的程序。当用户运行一个应用程序准备向数据库服务器发送请求时,即创建了用户进程

2)        服务器进程

服务器进程用于处理连接到该实例的用户进程的请求。当用户连接至 Oracle 数据库实例创建会话时,即产生服务器进程

3)        后台进程

后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。 Oracle 实例启动时即创建一系列后台进程

1.3.11            后台进程

1)        PMON 进程监控进程

1.         清理出现故障的进程。

2.         释放所有当前挂起的锁定。

3.         释放故障进程使用的资源。

 

2)        SMON 系统监控进程

1.         在实例失败之后,重新打开数据库时自动恢复实例。

2.         整理数据文件的自由空间,将相邻区域结合起来。

3.         释放不再使用的临时段。

 

3)        DBWR 数据写入进程

1.         管理数据缓冲区,将最近使用过的块保留在内存中。

2.         将修改后的缓冲区数据写入数据文件中。

4)         LGWR 日志写入进程

1.         负责将日志缓冲区中的日志数据写入日志文件。

2.         系统有多个日志文件,该进程以循环的方式将数据写入文件

1.3.12            数据字典的使用

1.         数据字典是一组描述数据库系统的表,视图,用户存取权限等等信息的表和视图。

2.         在数据库系统中,要了解有关的信息,就要查询相应的数据字典。数据字典有系统自动维护:

a)         user_  开头的数据字典可以查询用户自己的信息

b)        all_ 开头的数据字典可以查询用户获权查询的信息

c)        dba_开头的数据字典可以查询所有的相关信息

 

1.3.13            Oracle物理组件

物理组件就是Oracle数据库所使用的操作系统物理文件。物理文件可分为三类:

1.         数据文件

数据文件用于存储数据库数据,如表、索引数据等。

2.         控制文件

控制文件是记录数据库物理结构的二进制文件。

3.         日志文件

日志文件记录对数据库的所有修改信息,用于故障恢复

1.3.14            逻辑组件

数据库的逻辑结构是从逻辑的角度分析数据库的组成。Oracle 的逻辑组件包括:

1)        数据库

2)        表空间

3)       

u       段是构成表空间的逻辑存储结构,段由一组区组成。

u       按照段所存储数据的特征,将段分为四种类型,即数据段、索引段、回退段和临时段。

4.        

1)        区为段分配空间,它由连续的数据块组成。

2)        当段中的所有空间已完全使用时,系统自动为该段分配一个新区。

3)        区不能跨数据文件存在,只能存在于一个数据文件中。

 

5.         数据块

1)        数据块是Oracle服务器所能分配、读取或写入的最小存储单元。

2)        Oracle服务器以数据块为单位管理数据文件的存储空间。

6.         模式

1)        模式是对用户所创建的数据库对象的总称。

2)        模式对象包括表、视图、索引、同义词、序列、过程和程序包等。

 

1.3.15            表空间管理

 

1.         表空间是数据库中最大的逻辑单位,一个 Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间。

2.         每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联。

3.         表空间的大小等于构成该表空间的所有数据文件大小之和。

4.         Oracle 数据库中的典型表空间是:

a)         SYSTEM 表空间  (用户缺省表空间)

b)        DATA 表空间

c)        USER 表空间

d)        TOOLS 表空间

e)         TEMP 表空间

 

5.         如何查询数据库所有的表空间?

           SELECT  TABLESPACE_NAME   FROM   DBA_TABLESPACES;

6.         查看表空间的空余大小

          SELECT TABLESPACE_NAME,SUM(BYTES)/1024/1024 MB FROM DBA_FREE_SPACE GROUP BY TABLESPACE_NAME;

7.         查看数据文件放置的路径

           SELECT    TABLESPACE_NAME,  BYTES/1024/1024   FILE_SIZE_MB,  FILE_NAME    FROM DBA_DATA_FILES;

8.         创建表空间的语法

         create tablespace  SALES

             datafile  'c:/SALES_DATA01.dbf' size 10m  autoextend   on next  10m maxsize 100m, 'c:/SALES_DATA02.dbf' size 10m  autoextend   on next  10m maxsize unlimited,

                      'c:/SALES_DATA03.dbf' size 10m

9.         查询数据字典dba_data_files 了解自动扩展属性,为表空间增加数据文件

          alter tablespace  SALES    add

              datafile  'c:/SALES_DATA04.dbf' size 10m  autoextend   on next  10m maxsize 100m, 'c:/SALES_DATA05.dbf' size 10m  autoextend   on next  10m maxsize unlimited,

                       'c:/SALES_DATA06.dbf' size 10m

10.      修改数据文件的大小

          在数据文件中的可用空间未使用完时,允许对数据文件进行压缩,当压缩空间大小超过未使用空间大小时,将会产生错误。

    alter   database datafile 'c:/SALES_DATA04.dbf'   resize 300m

11.     关闭表空间数据文件的自动扩展属性

         alter database

             datafile  'c:/SALES_DATA04.dbf' ,

                            'c:/SALES_DATA05.dbf’,

                             'c:/SALES_DATA06.dbf’

                              autoextend  off;

12.     打开表空间数据文件的自动扩展属性

         alter database

             datafile  'c:/SALES_DATA04.dbf' ,

                            'c:/SALES_DATA05.dbf’,

                             'c:/SALES_DATA06.dbf’

                              autoextend  on;

13.     修改表空间属性(离线)

         alter tablespace   sales  offline; 

14.     修改表空间属性(在线)

         alter tablespace   sales  online;

15.     修改表空间属性(只读)

         alter tablespace   sales  read  only;

16.     修改表空间属性(读写)

         alter tablespace   sales  read   write;

         如下系统表空间不得设置为  offline   或者  read only

         system  tempundo  undotbs

17.     移动表空间的数据文件

         1.  使表空间脱机(系统表空间不得脱机,故不得移动)

         2.  修改数据文件的名称

         3.  执行  alter  tablespace  rename  datafile 命令

         4.  使表空间联机

         第一步:alter  tablespace    sales  offline 

         第二步:物理移动数据文件到目的地(可以是表空间的

                        部分数据文件,可以修改数据文件的名称)

         第三步:    逻辑移动,修改控制文件的内容

         alter  tablespace sales  rename

         datafile ‘c:/sales01.dbf’ to ‘d:/sales02.dbf’

         --可以有多个数据文件,但是源文件

         要在to的左边,目的文件要在to 右边,文件名称之间逗号分割.

         第四步: 将表空间联机

         alter   tablespace  sales   online;

         第五步:查询dba_data_files确认

 

1.4    网络配置

Oracle产品安装完成后,服务器和客户端都需要进行网络配置才能实现网络连接。

 服务器端配置监听器,客户端配置网络服务名。

q      服务器端监听器配置信息包括监听协议、地址及其他相关信息。 配置信息保存在名为listener.ora的文件中。在安装服务器软件时自动配置一个监听器

q      客户端的网络服务名配置信息包括服务器地址、监听端口号和数据库SID等,与服务器的监听器建立连接。配置信息保存在名为tnsnames.ora的文件中

q      Oracle中的 Net Configuration AssistantNet Manager工具都能用来配置监听器和网络服务名

1.5    Oracle服务

OracleHOME_NAMETNSListener

q      该服务启动数据库服务器的监听器,监听器接受来自客户端应用程序的连接请求

q      若监听器未启动,则客户端将无法连接到数据库服务器

OracleServiceSID

q      该服务启动系统标识符为SID的数据库实例,其中 SID 是在安装 Oracle 9i 时输入的数据库名称

OracleHOME_NAMEAgent

q      Oracle企业管理器组件智能代理服务,此智能代理用于执行作业和监控 Oracle 服务或对象的性能

q      在使用Oracle管理服务器网络的环境中必须启动此服务

OracleHOME_NAMEHTTPServer

q      该服务用于启动Oracle HTTP服务器,它提供文档信息、基于Web的企业管理器和iSQL*Plus等服务

OracleHOME_NAMEManagementServer

q      该服务启动Oracle管理服务器,它用于维护管理控制台对各个被管理服务器节点之间的集中的、智能的和分布式的控制

q      该服务必须经过企业管理器配置向导配置完成后才创建

 

1.6    数据库的安全性

1)        用户

(一)  要连接到Oracle数据库,就需要创建一个用户帐户

(二)  每个用户都有一个默认表空间和一个临时表空间

(三)  CREATE USER命令用于创建新用户

CREATE USER MARTIN

IDENTIFIED BY martinpwd

DEFAULT TABLESPACE USERS

TEMPORARY TABLESPACE TEMP;

(四)  更改和删除用户

ALTER USER MARTIN IDENTIFIED BY martinpass;

DROP USER MARTIN CASCADE;

2)        授权

1.         权限指的是执行特定命令或访问数据库对象的权利

2.         权限有两种类型,系统权限和对象权限

a)         系统权限允许用户执行某些数据库操作,如创建表就是一个系统权限

b)        对象权限允许用户对数据库对象(如表、视图、序列等)执行特定操作

3.         角色是一组相关权限的组合,可以将权限授予角色,再把角色授予用户,以简化权限管理。

4.         GRANT 命令可用于为用户分配权限或角色

a)         GRANT CONNECT TO MARTIN;

b)        GRANT RESOURCE TO MARTIN;

c)        GRANT CREATE SEQUENCE TO MARTIN;

d)        GRANT SELECT ON TEST TO MARTIN;

e)         GRANT UPDATE ON TEST TO MARTIN;

f)         GRANT ALL ON TEST TO MARTIN;

原创粉丝点击