ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

oracle 表空间Tablespaces

2022-03-19 02:33:47  阅读:209  来源: 互联网

标签:fp Tablespaces dbf 空间 oradata oracle u01


一、表空间

1、oracle创建的一个数据库fp可以包含多个表空间,一个表空间里可以有多张表,每个表空间对应多个数据文件。



结合着上面的pl/sql工具远程访问的fp数据库看到的即 
oracle---->数据库fp--->实例fp2(sid)--->sh表空间---->a1表 a2表 B表空间----->b1表 b2表

引申一下,目前该oracle是单机版安装,有两个数据库,这里的模型就是
oracle---->数据库fp--->实例fp2(sid)--->sh表空间---->a1表
                                                 a2表
                                     B表空间------>b1表
                                                 b2表
oracle---->数据库prd--->实例prd(sid)--->pr1表空间---->p表
                                                   d表
                                      pr2表空间----->c表
                                                   r表

2、一个表空间包含多个数据文件

sql>select file_id,file_name,tablespace_name,AUTOEXTENSIBLE from dba_data_files;
FILE_ID  FILE_NAME                          TABLESPACE_NAME        AUT
 1  /u01/oracle/oradata/fp/system01.dbf     SYSTEM                 YES
 2  /u01/oracle/oradata/fp/sysaux01.dbf     SYSAUX                 NO
 3  /u01/oracle/oradata/fp/undotbs1.dbf     UNDOTBS1               YES
 4  /u01/oracle/oradata/fp/sh01.dbf         SH                     YES
5 /u01/app/oracle/oradata/test/user01.dbf USERS YES

3、一个表空间只能属于一个数据库。一个数据文件只能属于一个表空间。

     表空间就是存多个表的物理空间; 可以指定表空间的大小位置等。理解这个看下下面第7点的oracle创建语句就明白了

4、表空间的大小位置等设定。

创建表空间:CREATE TABLESPACE users  DATAFILE '/u01/app/oracle/oradata/test/user01.dbf' SIZE 100M

自动扩展大小:

  CREATE TABLESPACE users DATAFILE '/u01/app/oracle/oradata/test/user01.dbf' SIZE 100M
  AUTOEXTEND ON;
  ALTER DATABASE DEFAULT TABLESPACE users;
  col file_name for a45
  col tablespace_name for a10 

5、oracle表。

   从逻辑的角度来看,一个数据库(database)下面可以分多个表空间(tablespace);
   一个表空间下面又可以分多个段(segment);一个数据表要占一个段(segment),一个索引也要占一个段(segment )。
   一个段(segment)由多个 区间(extent)组成,那么一个区间又由一组连续的数据块(data block)组成。
   这连续的数据块是在逻辑上是连续的,有可能在物理磁盘上是分散。
   注:Segment(段) :段是指占用数据文件空间的通称,或数据库对象使用的空间的集合;段可以有表段、索引段、回滚段、临时段和高速缓存段等。

6、一个表空间由多个数据文件组成。

   那么从物理的角度上看,一个表空间由多个数据文件组成,数据文件是实实在在存在的磁盘上的文件。
    这些文件是由oracle数据库操作系统的block 组成的

7、我们来看下手工来创建一个oracle库语句

create database fp
 USER SYS IDENTIFIED BY oracle
 USER SYSTEM IDENTIFIED BY oracle 
 LOGFILE GROUP 1 ('/u01/oracle/oradata/fp/redo01.log') SIZE 100M,
         GROUP 2 ('/u01/oracle/oradata/fp/redo02.log') SIZE 100M,
         GROUP 3 ('/u01/oracle/oradata/fp/redo03.log') SIZE 100M 
 MAXLOGFILES 5
 MAXLOGMEMBERS 5 
 MAXLOGHISTORY 1 
 MAXDATAFILES 100 
 MAXINSTANCES 1
 CHARACTER SET AL32UTF8
 DATAFILE '/u01/oracle/oradata/fp/system01.dbf' SIZE 350M REUSE  //对应SYSTEM表空间
 AUTOEXTEND ON NEXT 10240K
 EXTENT MANAGEMENT LOCAL
 SYSAUX DATAFILE '/u01/oracle/oradata/fp/sysaux01.dbf' SIZE 325M REUSE
 DEFAULT TABLESPACE SH
 DATAFILE '/u01/oracle/oradata/fp/sh01.dbf'
 SIZE 500M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED
 DEFAULT TEMPORARY TABLESPACE temp
 TEMPFILE '/u01/oracle/oradata/fp/temp01.dbf'
 SIZE 20M REUSE
 UNDO TABLESPACE undotbs1 
 DATAFILE '/u01/oracle/oradata/fp/undotbs1.dbf'
 SIZE 200M REUSE AUTOEXTEND ON MAXSIZE UNLIMITED;

对应产生的文件
oracle@prod:/u01/oracle/oradata/fp$ll
drwxr-xr-x 2 oracle oinstall         10 Dec  2 10:23 archive
-rw-r----- 1 oracle oinstall    9519104 Dec  3 13:35 control01.ctl
-rw-r--r-- 1 oracle oinstall          0 Dec  2 19:29 control01.ctl.bak2
-rw-r----- 1 oracle oinstall    9977856 Dec  2 13:43 control01.ctl.prod
-rw-r----- 1 oracle oinstall   52436992 Dec  3 09:25 fp2.dbf
-rw-r----- 1 oracle oinstall   52436992 Dec  3 09:25 fp.dbf
-rw-r----- 1 oracle oinstall   52436992 Dec  1 20:37 fp_temp.dbf
-rw-r----- 1 oracle oinstall  104858112 Dec  3 13:33 redo01.log
-rw-r----- 1 oracle oinstall  104858112 Dec  3 13:32 redo02.log
-rw-r----- 1 oracle oinstall  104858112 Dec  3 13:32 redo03.log
-rw-r----- 1 oracle oinstall  524296192 Dec  3 13:32 sh01.dbf
-rw-r----- 1 oracle oinstall  340795392 Dec  3 13:32 sysaux01.dbf
-rw-r----- 1 oracle oinstall  367009792 Dec  3 13:32 system01.dbf
-rw-r----- 1 oracle oinstall   20979712 Dec  3 13:32 temp01.dbf
-rw-r----- 1 oracle oinstall  209723392 Dec  3 13:32 undotbs1.dbf
-rw-r----- 1 oracle oinstall 1073750016 Dec  3 09:25 users01.dbf
-rw-r----- 1 oracle oinstall 1073750016 Dec  3 09:25 users02.dbf

  1、SYSAUX表空间是在10g之后引入的一个新的表空间,主要用于减轻对SYSTEM表空间的压力而作为SYSTEM表空间的辅助表空间。

  原来存放于SYSTEM表空间的很多组件以及一些数据库元数据在10g中被移植到SYSAUX表空间,所以这个是必须的
  对应数据文件:/u01/oracle/oradata/fp/sysaux01.dbf

  2、system表空间是个特殊的表空间,数据字典(包含数据库本身以及存储的所有对象的基本信息)存放在SYSTEM表空间中
  对应数据文件:/u01/oracle/oradata/fp/system01.dbf

  3、Oracle临时表空间主要是存储数据库的排序操作、临时表、中间排序结果等临时对象
  对应数据文件: /u01/oracle/oradata/fp/temp01.dbf

8、我们对照着mysql来理解

1、Oracle有表空间,mysql没有表空间
2、Oracle提供的Sql Plus登录
3、MySQL在一个实例中可以创建多个数据库,但Oracle在一个实例中就只有一个数据库,但是一个oracle一个数据库对应多个实例,用实例sid来区分。
   请看我的一篇 https://www.cnblogs.com/aozhejin/p/15859979.html
4、mysql是先建实例,后建库,oracle是先建库,后建实例(看看下面的模型)
    mysql--->实例1---》a库---》a1表
                             a1表
                      b库--->b1表
                             b2表
    oracle---->数据库a--->a实例--->a表空间----》a1表
                                             a2表
                                  b表空间---->b1表
                                             b2表
                                   b实例--->c表空间----》c1表
                                                       c2表
                                           d表空间---->d1表
                                                      d2表

 

标签:fp,Tablespaces,dbf,空间,oradata,oracle,u01
来源: https://www.cnblogs.com/aozhejin/p/16024307.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有