16_Oracle_Admin_什么是表空间以及如何创建表空间

一、什么是表空间(Tablespace)和数据文件(Data File

Data File是具体的物理文件,Linux系统上通过ls命令,Windows系统上使用dir命令可以查看得到,体积相应比较大;一个或多个Data File只属于一个Tablespace;用户的物理对象都存储在Data File里。

Tbalespace则是一个逻辑概念,一组(一个或多个)datafile组成一个tablespace;而一个或多个tablespace在同一时间只属于一个数据库;Tablespace能进一步划分为其他的逻辑单元,如segement、extent和block。

逻辑关系:

Database —(一对多)—>Tablespace —(一对多)—> Segment—(一对多)—>

Extent —(一对多)—>连续的Oracle data block

物理关系:

Data file —(一对多)—>操作系统的block

逻辑<—>物理关系:

Tablespace —(一对多)—>Data file

Oracle data block —(幂的整数倍,一对多)—>操作系统的block

注:操作系统的block是个物理概念,比如一个block是4k,它在内存中也占4页;而Oracledata block是个逻辑概念,它是OSblock的幂的整数倍,可以是4k,8k或16k等等。

Segment包括table,index等等,它有一个或多个extent组成,它可以跨越多个datafile;而extent是由多个连续的block组成,它不可以跨多个datafile;block是数据库进行I/O传输的最小单元。

二、表空间的类型

 

Tablespace可以从用途的角度,划分为两种:

A. SYSTEM Tablespace:

1.数据字典存储在SYSTEMTablespace中;

2.SYSTEM undo segment 存储在SYSTEMTablespace中。

B. NON-SYSTEM Tablespace:是用户真正用来存储数据库的表空间。

更为科学的划分,是将tablespace划分为三种:

A.Permanent 永久表空间——即包括了SYSTEMTablespace,也包含了用户用来存储数据         的NON-SYSTEMTablespace

B.Undo 表空间

C.Temporary 临时表空间

Undo 和 Temporary表空间都是用来管理数据库的,存储的是临时文件。

三、创建表空间

CREATE TABLESPACE这个命令可以用来创建Tablespace,具体的用法可以查看联机文档SQL LanguageReference。

从10g以后,引入了BIGFILE这一类型,用来满足一些超大数据存储的需求,一个tablespace的体积最大可以支持128TB,但它需要操作系统的支持。

不同的Tablespace可以指定不同的block size,可以和database的block size 不一致。Tablespace中的数据发生了改变,通常会记录在online redo logfile中,指定logging_clause (开启或关闭),能够决定是否记录,从而提高性能。

/*======创建表空间的过程演示=====*/

=====查询当前的表空间====

SQL> select * from v$tablespace;

-- v$tablespace记录了该数据库中有哪些表

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
         0 SYSTEM                         YES NO  YES
         1 SYSAUX                         YES NO  YES
         2UNDOTBS1                       YESNO  YES
         4 USERS                          YES NO  YES
         3 TEMP                           NO  NO  YES
         6EXAMPLE                        YESNO  YES
 
6 rows selected.

=====查询每个表空间中都有哪些文件=====

SQL> desc dba_data_files;

 Name                                     Null?    Type
 ------------------------------------------------- ----------------------------
 FILE_NAME                                         VARCHAR2(513)
 FILE_ID                                            NUMBER
 TABLESPACE_NAME                                   VARCHAR2(30)
 BYTES                                             NUMBER
 BLOCKS                                            NUMBER
 STATUS                                             VARCHAR2(9)
 RELATIVE_FNO                                       NUMBER
 AUTOEXTENSIBLE                                    VARCHAR2(3)
 MAXBYTES                                          NUMBER
 MAXBLOCKS                                          NUMBER
 INCREMENT_BY                                       NUMBER
 USER_BYTES                                         NUMBER
 USER_BLOCKS                                        NUMBER
 ONLINE_STATUS                                     VARCHAR2(7)

SQL> col file_name format a40;

SQL> select file_name, tablespace_name from dba_data_files;

FILE_NAME                                TABLESPACE_NAME
----------------------------------------------------------------------
/oracle/oradata/orcl/users01.dbf         USERS
/oracle/oradata/orcl/undotbs01.dbf       UNDOTBS1
/oracle/oradata/orcl/sysaux01.dbf        SYSAUX
/oracle/oradata/orcl/system01.dbf        SYSTEM
/oracle/oradata/orcl/example01.dbf       EXAMPLE
-- 可以看出,一个数据文件只属于一个表空间

========增加一个表空间==========

SQL> create tablespace mickey datafile

  2 ‘/oracle/oradata/orcl/mickey01.dbf‘ size 20M;

 -- 增加了一个名为mickey的表空间
Tablespace created.

====查看磁盘变化=======

[[email protected] ~]$ cd /oracle/oradata/orcl

[[email protected] orcl]$ ll

total 1641120
-rw-r-----. 1 oracle oinstall   9748480 Sep 10 10:12 control01.ctl
-rw-r-----. 1 oracle oinstall   9748480 Sep 10 10:12 control03.ctl
-rw-r-----. 1 oracle oinstall  20979712 Sep 10 10:11 mickey01.dbf
# 可以看到多了一个文件mickey01.dbf
-rw-r-----. 1 oracle oinstall   5251072 Sep 10 05:42 users01.dbf

=====查看数据库表空间信息=======

SQL> select * from v$tablespace;

       TS# NAME                           INC BIG FLA ENC
---------- ------------------------------ --- --- --- ---
         0 SYSTEM                         YES NO  YES
         1 SYSAUX                         YES NO  YES
         2UNDOTBS1                        YES NO  YES
         4 USERS                          YES NO  YES
         3 TEMP                           NO  NO  YES
         6EXAMPLE                         YES NO  YES
         7 MICKEY                         YES NO  YES
-- 新增了一个表空间MICKEY
 
7 rows selected.

SQL> select file_name, tablespace_name from dba_data_files;

FILE_NAME                                TABLESPACE_NAME
----------------------------------------------------------------------
/oracle/oradata/orcl/users01.dbf         USERS
/oracle/oradata/orcl/undotbs01.dbf       UNDOTBS1
/oracle/oradata/orcl/sysaux01.dbf        SYSAUX
/oracle/oradata/orcl/system01.dbf        SYSTEM
/oracle/oradata/orcl/example01.dbf       EXAMPLE
/oracle/oradata/orcl/mickey01.dbf        MICKEY
-- 新表空间及其对应的数据文件
 
6 rows selected.
时间: 2024-11-05 06:11:34

16_Oracle_Admin_什么是表空间以及如何创建表空间的相关文章

Oracle12c:安装后新建用户及其默认表空间,并创建表测试

环境: 操作系统:Windows Server2008 R2 X64 Oracle版本:12c 如何安装? -- oracle 12c在oracle linux 6.6 x64上的安装 -- Windows x64位下完美安装winx64_oracle_12c_database 如何使用DataBase Cofiguration Assistant 创建数据库? -- oracle12c dbca方式创建数据库实例(多图) 如何使用PL/SQL Developer连接? -- PL/SQL De

Oracle 10g创建表空间的完整步骤详解

本文我们主要介绍了Oracle 10g创建表空间的完整步骤,包括表空间的创建与删除.为应用创建用户以及权限的授予等操作,希望能够对您有所帮助. AD:WOT2014:用户标签系统与用户数据化运营培训专场 Oracle 10g数据库中,当在数据库中创建用户时,基于应用性能和管理方面的考虑,最好为不同的用户创建独立的表空间. 那么创建表空间的步骤是怎样实现的呢?本文我们主要就介绍了这一部分内容,接下来就让我们一起来了解一下这部分内容吧. 1.创建表空间 不论是Lnux环境,还是Wndows环境,都要

Oracle 如何创建表空间

在Oracle中如何创建表空间呢?主要有两种方式:一种是用SQL命令的方式,另外一种是通过Oracle客户端Enterprise Manager Console来创建.下面分别介绍一下: 1 通过SQL命令创建表空间 1.1 创建表空间 create tablespace 表空间名称 logging datafile 'D:\oracle\oradata\Oracle9i\user_data.dbf' size 50m autoextend on next 50m maxsize 20480m

Oracle数据创建表空间

一.直接在服务器端通过sqlplus命令行创建: 如果您用的是Linux系统,那么Oracle用户名为oracle.同时,您是在oracle服务器上操作. 如果是在Windows系统下, 请先点击"开始",然后点"运行",输入cmd并点击"确定",打开命令行窗口 如果是在Linux的图形窗口,请右键点击桌面并点击"打开终端",然后输入    su  -   oracl 做好上述准备工作以后,输入以下命令: sqlplus  

oracle 创建表空间用户

1.创建普通表空间和用户 //创建临时表空间create temporary tablespace oa_temptempfile 'D:\app\Administrator\oradata\orcldjoa_temp.dbf'size 32mautoextend onnext 32m maxsize 20480mextent management local; //创建数据表空间create tablespace oaloggingdatafile 'D:\app\Administrator\

--使用oracle数据先要创建表空间

one\--创建表空间 CREATE TABLESPACE 表空间的名字DATAFILE 'E:\oracle\app\userdata\java5space.dbf' --表空间物理文件路径SIZE 5m --初始大小AUTOEXTEND ON --是否自动增长 --创建用户create user java5user --用户名identified by "java5user" --密码default tablespace "JAVA5SPACE" --默认管理的

Oracle创建表空间和表

创建表空间和表ORACLE物理上是由磁盘上的以下几种文件:数据文件和控制文件和LOGFILE构成的oracle中的表就是一张存储数据的表.表空间是逻辑上的划分.方便管理的.数据表空间 (Tablespace)         存放数据总是需要空间, Oracle把一个数据库按功能划分若干空间来保存数据.当然数据存放在磁盘最终是以文件形式,所以一盘一个数据表空间包含一个以上的物理文件数据表         在仓库,我们可能有多间房子,每个房子又有多个货架,每架又有多层. 我们在数据库中存放数据,最

oracle表空间与用户创建

-------------------------创建表空间与用户 创建临时表空间 CREATE TEMPORARY TABLESPACE test_temp TEMPFILE '/u01/oracle/product/10.2.0/oradata/orcl/test_temp01.dbf ' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 2048M EXTENT MANAGEMENT LOCAL; 创建用户表空间 CREATE TABLESPACE test_

Oracle11g创建表空间

/* Formatted on 2008/11/04 15:44 (Formatter Plus v4.8.0) *//* 创建表空间脚本,该脚本将创建以下表空间: 1.数据表空间 2.索引表空间 3.临时表空间 创建之前需要定义下列变量(只考虑一个表空间对应一个数据文件情形,如对应多个数据文件请用alter tablespace add datafile命令): data_tablespace_name 数据表空间名称 index_tablespace_name 索引表空间名称 temp_ta