ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 目前我所了解的oracle

目前我所了解的oracle

原创 Linux操作系统 作者:yanqvwuhen 时间:2012-04-12 21:53:14 0 删除 编辑
         今天我就大概谈一下我所了解的oracle,至少大家看了这篇文章就知道我oracle的水平了,我学oracle也有断断续续也有一年多的时间了,一年多以来都是重开发,轻基础,导致现在oracle基础不是很好,如果说的不是很好,请大家见谅。
        oracle的历史我就不重复了,网上一搜就能搜到,oracle产品目前已经出到了11g了,我认为目前市场上广泛使用的oracle版本还有9i,10g,目前11G使用率已经开始慢慢
上升了。不过目前我还没有学习11G的版本,我认为数据库的基础知识都是一样的,因此等我把10G吃透了,11G就能手到擒来了。
       我要说明的是这篇日志不是技术文章,只是我对数据库的一个感性的认识。刚开始学数据库时,有一个知识点困扰了我很久,就是数据库实例和数据库的区别,当时我认为数据库就是一个软件,一类存储数据的软件的统称。经过了很长时间,看了很多文章之后总算明白了,数据库就是一堆文件集合,通俗点就是一个仓库里存的东西。数据库实例呢,就是存取数据,操作数据库的一个工具。就相当于往仓库里存放拉取粮食的货车。数据库想要正常运行,两者缺一不可。强调一点,之前我很迷惑主要是因为数据库名叫orcl,实例名默认也叫orcl,还有一个oracle_sid=orcl。导致我很长时间分不清谁是谁。后来渐渐的看了一些oracle基础的书籍,慢慢对数据库的结构也有了一些了解。首先讲一下数据库,数据库里都有哪些东西,我就一一列举以下,参数文件、控制文件、数据文件、联机日志文件、重做日志文件等。每种文件都有自己的用处,参数文件里是一些键值对,主要记录了数据库实例启动时的一些参数值,控制文件记录了数据库的表空间、数据文件、重做日志文件、联机日志的路径,以便mount数据库时数据库实例知道去哪里找这些数据文件。按照逻辑分的话,数据库从大往小可分为表空间、分区、段、块。表空间是最大的逻辑单位,大部分的数据库操作都是基于表空间的。块是数据库的最小逻辑单位,也就是oracle I/O的最小单位,块的大小对数据库很重要,其大小是在数据库创建时指定,数据库一旦创建,块的大小就不能改变了。块的大小一般是操作系统存储的块的大小的整数倍,主要是怕产生空间碎片,影响数据库的存取效率。接下来该讲一下数据库实例,什么是数据库实例,说实话,我是花了很长时间才搞明白它是什么东西,按书上说,实例就是一块计算机内存加几个数据库进程。通俗的讲呢,其实我也不知道。这块内存的门道可多了,我没法细讲,大概说一下,这块内存分为SGA和PGA,oracle10G中在参数文件中要设置SGA和PGA的大小。这两块内存又可细分为很多更小的结构,这里每个结构都有它特定的用途,在以前的数据库版本中,应该是9I以前,SGA和PGA的大小,及其里面的结构该如何划分都是由人来控制的,要根据数据库的不同用途和特点,合理的划分,否则数据库的性能就会很差。因此调整内存参数是之前很多数据库调优的一个重要方法。后来数据库可以通过自动的方式分配内存了,我们只需要设置内存总的大小就可以了,至于内存内部如何划分,就是数据库的事了。这为oracle DBA省去了很大一部分工作。但是凡事都有两面性,我们是轻松了,但是我们却会慢慢的不了解数据库是如何划分内存的了,这样我们会有一种无力控制的感觉,一旦出现了性能问题,很难判断是否是内存分配出现了问题。实例的另外一部分就是数据库进程,实例一旦启动后,在操作系统就会产生至少五个进程,SMON,PMON,DBWn,CKPT,LGWR。当然不止这5个进程,但是这5个进程是最重要的,是这5个进程的协调工作,使得数据库能够正常的工作。今天先写这么多了,明天再写。

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26872481/viewspace-721047/ ,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-04-12

  • 博文量
    6
  • 访问量
    4739