oracle

1 、oracle服务器:

        一个Oracle服务器包括一个Oracle数据库和一个Oracle服务器实例。

       每当数据库启动的时候,系统全局区(SGA)被分配,并启动了Oracle后台进程。系统全局区是用于数据库用户共享数据库信息的内存区域。后台进程和内存缓冲区称为Oracle实例。

       Oracle实例包含两种类型的进程:用户进程和Oracle进程。用户进程执行应用操作的代码。Oracle进程是执行用户进程和后台进程,对Oracle进行维护的服务器进程。

       数据库的物理结构和存储结构之间的关系由后台进程来维持。数据库拥有多个后台进程,其数量取决于数据库的配置。这些进程由数据库管理,它们只需要进行很少的管埋。

       每个后台进程创建一个跟踪文件。Oracle在实例操作期间保存跟踪文件。排除数据库故障时,跟踪文件就显得非常重要。

       Oracle 10g数据库是第一个为企业级网格计算而设计的数据库。数据库服务器主要提供信息管理服务,使得多用户能够同时访问一致的数据 ,还提供了高可靠性和安全特性,

2 、oracle数据库的应用体系结构:

      构造数据库应用具有两种最常用的方式:客户/服务器模式和多层模式。随着Internet应用的普及,越来越多的数据库管理系统移植到多层环境中。

      1、Oracle数据库系统通过使用客户/服务器体系结构,很容易利用分布式处理能力、减少了对单个处理器的负载。在这种体系结构中,数据库系统分为两个部分,前端客户和后端服务器。

      2、多层体系结构具有构件:启动操作的客户或者初始进程;执行操作的一个或者多个服务器。应用服务器提供了对客户数据的访问能力,同时能够执行一些查询进程,减少了对数据库服务器的负载;后端数据库服务器,存储操作所需要的数据:

    这种体系结构能够充分使用应用服务器的特性,能够验证用户身份、连接到Oracle数据库服务器和对客户执行请求操作。

3 、oracle物理数据库结构:

    具体如下:

    数据文件:用于存放所有的数据库数据。Oracle数据库由一个或多个数据文件组成,数据文件结合在一起形成表空间(Tablespace).
    控制文件: 每个数据库中必须至少有一个控制文件,极力建议用户使用两个或更多的控制文件,并存放在不同的磁盘上。因为在数据库操作过程中,将不可避免地出现控制文件损坏的情况,这时如果只有一个控制文件,则无法使用户访问数据库。在丢失所有数据库控制文件的情况下,oracle提供了一个建立控制文件的命令,大多数情况下可以用来重建控制文件。

        它存放一些与Oracle数据库所有文件相关的关键信息。Oracle系统通过控制文件保持数据库的完整性(Integrily)以及决定恢复数据时使用哪些重做日志。数据库系统在运行前要首先转至控制文件,以检查数据库是否良好。当出现数据库校验点(Checkpoint)或者修改数据库结构后,都要修改控制文件。
    重做日志文件重做日志文件最主要的功能是记录数据库的所有修改操作。如果发生故障,如停电,当数据没有一写到数据文件中,可以从重做日志文件中获得,从而不会去失数据。
    归档日志文件
    参数文件
    报警和跟踪日志文件
如上所述
    备份文件:备份文件是将数据库的信息保存到单独的文件中,能够在数据库发生故障的时候恢复数据库。如果备份文件是管理员自己维护的,在执行数据库时,要求管理员手动恢复备份文件。

0racle逻辑数据库结构

    数据库空间分配的单元是数据块、盘区和段。

   

         段和它的所有盘区都存储在一个表空间中。

        表空间

         表空间(Tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用(有关达方面的情况在本节后面推述)。一个表空间只能属于一个数据库

 4、方案对象

       视图

       视图是由一个或多个表导出的虚表,所以视图和表存在许多类似,视图最多可定义254列。视图可以被查询,而在修改、插入或删除时具有一定的限制,在视图上执行的全部操作真正地影响视图的基本表中的数据,受到基本表的完整性约束和触发器的限制

    视图与表不同,一个视图不分配任何存储空闻,视图不真正地包含数据。由查询定义的视图相应于视图引用表中的数据。视图只在数据字典中存储其定义

      序列生成器

      序列生成器(Sequence Generator)产生序列号。序列号生成是独立于表的,所以同一序列生成器可用于一个和多个表。所生成序列号可用于生成唯一的主码

      数据库链

      数据库链是一个命名的对象,说明从一个数据库到另一个数据库的一条路径(Path)。分布式数据库中,对全局对象名引用时,数据库链隐式地使用。

      等等

5、Oracle 数据字典

    数据字典,是只读类型的表的集合,提供数据库的信息。一个数据字典包括:

    数据库对象所有的框架对象的定义〔表、视图、索引、群集、同义词、序列、过程、函数、包、触发器等)。为框架对象如何分配和使用空间。

    数据字典的结构是表和视图,就像其他数据库数据一样,一个给定数据库的所有数据字典表的和视图都存储数据库的SYSTEM表空间中。

    Oracle用户SYS拥有数据字典所有的基表和用户可访问的视图。任何Oracle用户能够修改包含在SYS框架中的框架对象,因为这些操作可能会影响数据的完整性,安全管理员必须严格控制这个重要账号。

6、oracle内存结构

        两种基本的内存结构:系统全局区和程序全局区

        系统全局区(SGA)是Oracle数据库存放系统信息的一块内存区域。这样设计的主要原因是在内存中通信进程速度快、效率高。所有的用户进程和服务器进程都可以访问这个内存结构。

       程序全局区(Program Global Area,PGA)是存储区中的一个区域,由一个Oracle用户进程所使用,PGA中的内存不能共享。

7、访问Oracle数据库概述

        需要使用Oracle提供的网络工具(安装在客户机器上):oracle网络服务(Oracle Net Services)。能够从客户端启动一个数据库服务器的网络会话。一旦建立了网络会话,它作为客户应用和数据库服务器之间的数据传输者

8、Oracle工作原理

         在运行Oracle的计算机上启动实例。

         运行应用的计算机在用户进程中运行应用。客户应用使用Oracle网络服务驱动程序建立同服务器的连接。

         服务器运行Oracle网络服务驱动程序,检查来自应用的连接请求,对用户进程创建适当的服务器进程。

        用户运行一个SQL语句,提交事务。

        服务器进程接收语句,检查包含类似SQL语句的任何共享SQL区。如果发现共享SQL区,服务器进程检查用户的访问权限,并使用已有的SQL区处理语句。如果没有发现,则为语句分配新的SQL区,使得它能够被编译和执行。

        服务器进程修改系统全局区的数据,DBWn进程将修改的块写到磁盘中。由于提交了事务,LGWR进程立即在重做日志文件中记录事务信息。

        如果成功执行事务,服务器进程将通过网络发送消息给应用,如果没有执行成功,将返回一个错误消息。

        在整个过程中,其他后台进程依然运行,检查中断的条件。而且,数据库服务器管理其他用户事务,防止事务请求相同的数据所产生的冲突。

9、oracle数据库的性能

       首先是共同的并发性、一致性、锁机制等。

       另外:

       真正应用集群

       真正应用集群(真正应用集群,RAC)包含运行在多个集群机器上的Oracle实例,之间彼此保持通信。RAC使用集群软件,访问驻留在共享磁盘上的共享数据库,为用户提供更高的规模、可靠性。RAC同时能够支持大型OLTP和数据仓库系统,为大型企业应用提供更高的性能,同时节省IT投资。

       可移植性

        Oracle能够在多个平台上进行移植,保证应用不需要进行修改,就可以访问不同平台上的数据库系统。保证Oracle能够成功移植,是因为Oracle的代码是跨平台的,用户在需要的时侯,可以对服务器进行升级,而不会对数据库系统和应用产生影响。

       可恢复性

        在执行恢复操作的时候,oracle使用了几种结构:控制文样、重做日志文件、撤销记录和数据库备份文件。

        安全特性

 =========================================

 

导读:oracle数据库是一种大型数据库系统,一般应用于商业,政府部门,它的功能很强大,能够处理大批量的数据,在网络方面也用的非常多。不过,一般的中小型企业都比较喜欢用mysql, SQL server等数据库系统,它的操作很简单,功能也非常齐全。只是比较oracle数据库而言,在处理大量数据方面有些不如
    一、ORACLE实例
    1、ORACLE 实例——包括内存结构与后台进程
    System Global Area(SGA) 和 Background Process 称为数据库的实例。
    2、ORACLE 数据库——物理操作系统文件的集合
    一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等)
    3、系统全局共享区System Global Area(SGA)
    System Global Area是一块巨大的共享内存区域,他被看做是Oracle数据库的一个大缓冲池,这里的数据可以被ORACLE的各个进程共用。其大小可以通过如下语句查看:
    SQL> select * from v$sga;
    NAME VALUE
    -
    Fixed Size 39816
    Variable Size 259812784
    Database Buffers 1.049E+09
    Redo Buffers 327680
    更详细的信息可以参考V$sgastat、V$buffer_pool
    主要包括以下几个部分:
    a、 共享池(Shared pool)
    共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:
    SQL语句缓冲(Library Cache)
    当一个用户提交一个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Sharedpool的LibraryCache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL比第二次运行的SQL要慢一点的原因。
    下面举例说明parse的时间
    SQL> select count(*) fromscpass ;
    COUNT(*)
    --
    243
    Elapsed: 00:00:00.08
    这是在Share_pool 和Data buffer 都没有数据缓冲区的情况下所用的时间
    SQL> alter system flush SHARED_POOL;
    System altered.
    清空Share_pool,保留Data buffer
    SQL> select count(*) from scpass ;
    COUNT(*)
    --
    243
    Elapsed: 00:00:00.02
    SQL> select count(*) from scpass ;
    COUNT(*)
    --
    243
    Elapsed: 00:00:00.00
    从两句SQL 的时间差上可以看出该SQL 的Parse 时间约为00:00:00.02
    对于保存在共享池中的SQL语句,可以从V$Sqltext、v$Sqlarea中查询到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的Sharepool,提高SQL语句的重用率必须先养成良好的变成习惯,尽量使用Bind变量。
    数据字典缓冲区(Data Dictionary Cache)
    显而易见,数据字典缓冲区是ORACLE特地为数据字典准备的一块缓冲池,供ORACLE内部使用,没有什么可以说的。
    上文的内容相对来说还是很基础的,所以对于刚刚入门的初学者来说,学习初期,好好的研究一下本文中介绍的内容,相信对大家的入门学习会很有帮助的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值