注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

饥民2011

一直在搬砖

 
 
 

日志

 
 
 
 

Oracle 存储结构_表空间简介  

2013-03-23 23:15:19|  分类: Oracle |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
1.什么是表空间
        
表空间是Oracle 1个虚拟概念,它用于存放数据文件dbf, 也就是说表空间是oracle表数据存放到数据文件的一个中间结构。一般来讲,oracle 一张表(非分区表)只属于1个表空间, 它的数据可以分散存储在这个表空间内多个数据文件中。
         如下图:
         

Oracle 存储结构_表空间简介 - 饥民 - 饥民2011
 
         当然上图还包括 block, extend, segment的信息,将就看吧..



2.查看oracle的表空间
          
可以用如下视图来查看oracle的表空间:
           select * from dba_tablespaces;
          

Oracle 存储结构_表空间简介 - 饥民 - 饥民2011
 
           可以见到有6个表空间。
           2.1 System 表空间.
                   system 表空间存放的是Oracle数据库本身的信息, 我们知道oracle包含大量的数据字典,这些数据字典是已表的形式存放在数据库中的,这些表就存放在system表空间。

           2.2 Sysaux 表空间
                    sysaus 表空间可以看成system表空间的一个附属表空间, 它里面也是存放数据库的相关信息,sysaus和system表空间一样必须同时在线,否则oracle数据库不能启动。
 
           2.3 undo 表空间
                    可以看成是回滚表空间, 当server process修改1个data buffer时, 会将修改前的状态放入这个表空间中.
          
           2.4 TEMP 表空间
                   
Temp里面存放的是临时数据, 例如1个server process PGA里面空间不够用,那么它很可能会占用临时表空间。
                    Temp表空间内的数据并不重要, 但是Temp表空间必须存在,而且必须有一定的空间,否则运行大型sql语句时很可能会出错


                    上面4个表空间都可以看作Oracle数据本身的系统表空间, 正常来讲每个数据库都应该存在上述4个表空间。
                  
                    而其他表空间就是用来存放用户数据的表空间了。
          
3.查看oracle的表空间内的数据文件
                    
利用dba_data_files可以查看数据库的数据文件分别属于哪个表空间.
      

Oracle 存储结构_表空间简介 - 饥民 - 饥民2011
                     
                      可以看到上面只有5个数据文件, 并没有temp表空间的数据文件, 是不是temp 表空间不需要数据文件呢?
                      其实temp表空间也有文件,但是并不是叫数据文件, 而是叫临时文件。
                      可用如下命令来查看临时文件
                    

Oracle 存储结构_表空间简介 - 饥民 - 饥民2011


4.oracle是多表空间数据库
       
其他常见的数据库,例如sybase, sql server 是多数据库结构, 也就是1个实例里可以包含多个数据库,其中有系统数据库,tem数据库,用户数据库等。
     
        而oracle 1个实例只有1个数据库, 但是有多个表空间。
        可以这样理解, sybase 利用多数据库将表归类, 而oracle 利用多表空间将表归类..

 
5.介绍下schema的概念。
      
oracle的大概逻辑和物理结图如下图所示:
 

Oracle 存储结构_表空间简介 - 饥民 - 饥民2011

          如上图的逻辑部分, 从上到下都是1对多的关系。
          其中,方案的原单词是schema, 也可以译成模式啦.
           那么schema是什么呢. 教材上的定义如下:
          schema 是数据库用户(users)拥有的数据库对象的集合。 schema对象是直接引用数据库的逻辑结构,schema对象包括table,view,sequence,stored procedure, index..等结构。 一般而言, schema对象包括应用程序在数据库中创建的任何内容。

            简单解析下:
           oracle数据库中, 每1个数据库对象(表,索引,过程等)都必须属于某1个用户, 那么某1个用户名下所有的对象就组成了1个模式,假如数据库中有20个用户, 那么这个数据库所有的对象可以看成由20个模式组成的。

            所以上图这中数据库与模式也是一对多的关系啦,有多少个用户就有多少个模式。


 
  评论这张
 
阅读(216)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018