Oracle的表空间

1. oracle表空间:数据库的逻辑存储空间。

2. 表空间分类:

  (1), 永久表空间:用于存放数据库中要永久花存储的对象,比如表,视图等。

  

  (2),临时表空间: 中间存储过程,比如临时变量。

  (3),UNDO表空间: 用于保存事务所修改的备份。防止事务的回滚等操作。

3. 查看用户的表空间:

两个数据字典:

  (1),dba_tablespaces:针对系统管理员用户。

  

SQL> desc dba_tablespaces
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
 BLOCK_SIZE                                NOT NULL NUMBER
 INITIAL_EXTENT                                     NUMBER
 NEXT_EXTENT                                        NUMBER
 MIN_EXTENTS                               NOT NULL NUMBER
 MAX_EXTENTS                                        NUMBER
 MAX_SIZE                                           NUMBER
 PCT_INCREASE                                       NUMBER
 MIN_EXTLEN                                         NUMBER
 STATUS                                             VARCHAR2(9)
 CONTENTS                                           VARCHAR2(9)
 LOGGING                                            VARCHAR2(9)
 FORCE_LOGGING                                      VARCHAR2(3)
 EXTENT_MANAGEMENT                                  VARCHAR2(10)
 ALLOCATION_TYPE                                    VARCHAR2(9)
 PLUGGED_IN                                         VARCHAR2(3)
 SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)
 DEF_TAB_COMPRESSION                                VARCHAR2(8)
 RETENTION                                          VARCHAR2(11)
 BIGFILE                                            VARCHAR2(3)
 PREDICATE_EVALUATION                               VARCHAR2(7)
 ENCRYPTED                                          VARCHAR2(3)
 COMPRESS_FOR
SQL> select tablespace_name from dba_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX    作为example的辅助表空间。
UNDOTBS1  存储撤销表空间的。
TEMP
USERS    永久性表空间
EXAMPLE    

已选择6行。

SQL>

  (2),user_tablespaces:普通用户。

SQL> desc user_tablespaces
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
 BLOCK_SIZE                                NOT NULL NUMBER
 INITIAL_EXTENT                                     NUMBER
 NEXT_EXTENT                                        NUMBER
 MIN_EXTENTS                               NOT NULL NUMBER
 MAX_EXTENTS                                        NUMBER
 MAX_SIZE                                           NUMBER
 PCT_INCREASE                                       NUMBER
 MIN_EXTLEN                                         NUMBER
 STATUS                                             VARCHAR2(9)
 CONTENTS                                           VARCHAR2(9)
 LOGGING                                            VARCHAR2(9)
 FORCE_LOGGING                                      VARCHAR2(3)
 EXTENT_MANAGEMENT                                  VARCHAR2(10)
 ALLOCATION_TYPE                                    VARCHAR2(9)
 SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)
 DEF_TAB_COMPRESSION                                VARCHAR2(8)
 RETENTION                                          VARCHAR2(11)
 BIGFILE                                            VARCHAR2(3)
 PREDICATE_EVALUATION                               VARCHAR2(7)
 ENCRYPTED                                          VARCHAR2(3)
 COMPRESS_FOR                                       VARCHAR2(12)

SQL>
SQL> select tablespace_name from user_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE

已选择6行。

SQL>
SQL> connect scott/910214
已连接。
SQL> select tablespace_name from dba_tablespaces;
select tablespace_name from dba_tablespaces
                            *
第 1 行出现错误:
ORA-00942: 表或视图不存在

SQL> select tablespace_name from user_tablespaces;

TABLESPACE_NAME
------------------------------
SYSTEM
SYSAUX
UNDOTBS1
TEMP
USERS
EXAMPLE

已选择6行。

SQL>

  (3),dba_users数据字典:系统管理员级别的;

  

SQL> connect system/910214
已连接。
SQL> desc dba_users;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 USERNAME                                  NOT NULL VARCHAR2(30)
 USER_ID                                   NOT NULL NUMBER
 PASSWORD                                           VARCHAR2(30)
 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)
 LOCK_DATE                                          DATE
 EXPIRY_DATE                                        DATE
 DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)
 TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)
 CREATED                                   NOT NULL DATE
 PROFILE                                   NOT NULL VARCHAR2(30)
 INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)
 EXTERNAL_NAME                                      VARCHAR2(4000)
 PASSWORD_VERSIONS                                  VARCHAR2(8)
 EDITIONS_ENABLED                                   VARCHAR2(1)
 AUTHENTICATION_TYPE                                VARCHAR2(8)

SQL>
SQL> select default_tablespace,temporary_tablespace from dba_users;

DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYSTEM                         TEMP
SYSTEM                         TEMP
SYSTEM                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
USERS                          TEMP
SYSTEM                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP

DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP
SYSAUX                         TEMP

DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------
SYSAUX                         TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP

DEFAULT_TABLESPACE             TEMPORARY_TABLESPACE
------------------------------ ------------------------------
USERS                          TEMP
USERS                          TEMP
USERS                          TEMP

已选择36行。

  (4),user_users数据字典:普通用户级别的。

3. 设置用户的默认或者临时表空间:

设置默认表空间就是用"default"设置临时表空间就是用“temporary”;

普通用户没有修改表空间的权限。要想让它可以修改就必须给它设置权限。

将system的默认表空间更改为system;

SQL>
SQL> alter user system
  2  default tablespace  system;

用户已更改。

SQL>

4. 创建表空间:(永久表空间,临时表空间)

  (1), 创建永久表空间:

  

SQL> create tablespace test1_tablespace
  2  datafile ‘test1file.dbf‘ size 10m;

表空间已创建。

SQL>

  (2), 创建临时表空间:

  

SQL>
SQL> create temporary tablespace temptest1_tablespace
  2  tempfile ‘tempfile1.dbf‘ size 10m;

表空间已创建。

  (3), 查看表空间:

SQL> desc dba_data_files
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 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> select file_name from dba_data_files where tablespace_name=‘TEST1_TABLESPACE‘;

FILE_NAME
--------------------------------------------------------------------------------
F:\APP\WYL\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST1FILE.DBF

默认情况下数据文件存放的位置(临时表空间):

SQL> select file_name from dba_temp_files where tablespace_name=‘TEMPTEST1_TABLESPACE‘;

FILE_NAME
--------------------------------------------------------------------------------
F:\APP\WYL\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE1.DBF

SQL>

5.修改表空间:

  1. 状态:

    设置联机或脱机状态:

  ALTER TABLESPACE tablespace_name ONLINE | OFFLINE;

    

SQL> select file_name from dba_temp_files where tablespace_name=‘TEMPTEST1_TABLESPACE‘;

FILE_NAME
--------------------------------------------------------------------------------
F:\APP\WYL\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEMPFILE1.DBF

SQL> ALTER TABLESPACE test1_tablespace OFFLINE;

表空间已更改。

SQL> desc dba_tablespaces;
 名称                                      是否为空? 类型
 ----------------------------------------- -------- ----------------------------
 TABLESPACE_NAME                           NOT NULL VARCHAR2(30)
 BLOCK_SIZE                                NOT NULL NUMBER
 INITIAL_EXTENT                                     NUMBER
 NEXT_EXTENT                                        NUMBER
 MIN_EXTENTS                               NOT NULL NUMBER
 MAX_EXTENTS                                        NUMBER
 MAX_SIZE                                           NUMBER
 PCT_INCREASE                                       NUMBER
 MIN_EXTLEN                                         NUMBER
 STATUS                                             VARCHAR2(9)
 CONTENTS                                           VARCHAR2(9)
 LOGGING                                            VARCHAR2(9)
 FORCE_LOGGING                                      VARCHAR2(3)
 EXTENT_MANAGEMENT                                  VARCHAR2(10)
 ALLOCATION_TYPE                                    VARCHAR2(9)
 PLUGGED_IN                                         VARCHAR2(3)
 SEGMENT_SPACE_MANAGEMENT                           VARCHAR2(6)
 DEF_TAB_COMPRESSION                                VARCHAR2(8)
 RETENTION                                          VARCHAR2(11)
 BIGFILE                                            VARCHAR2(3)
 PREDICATE_EVALUATION                               VARCHAR2(7)
 ENCRYPTED                                          VARCHAR2(3)
 COMPRESS_FOR                                       VARCHAR2(12)

查询表空间状态:

SQL> select status from dba_tablespaces where tablespace_name=‘TEST1_TABLESPACE‘;

STATUS
---------
OFFLINE

SQL>

修改表空间:

SQL> select status from dba_tablespaces where tablespace_name=‘TEST1_TABLESPACE‘;

STATUS
---------
OFFLINE

SQL> alter tablespace test1_tablespace
  2  online;

表空间已更改。

SQL> select status from dba_tablespaces where tablespace_name=‘TEST1_TABLESPACE‘;

STATUS
---------
ONLINE

SQL>

  设置表空间的只读或者可读写状态:

alter tablespace tablespace_name READ ONLY | READ WRITE(可读写的);

只有联机状态才可以修改;

SQL>
SQL>
SQL> alter tablespace test1_tablespace
  2  read only;

表空间已更改。

SQL> select status from dba_tablespaces where tablespace_name=‘TEST1_TABLESPACE‘;

STATUS
---------
READ ONLY

SQL>

默认的联机状态就是可读写状态:

SQL> alter tablespace test1_tablespace
  2  read write;

表空间已更改。

SQL> select status from dba_tablespaces where tablespace_name=‘TEST1_TABLESPACE‘;

STATUS
---------
ONLINE

SQL>

(2). 修改表空间中的数据文件:

  1. 增加数据文件

    ALTER TABLESPACE tablespace_name ADD DATAFILE ‘xx.dbf‘ SIZE xx;

  

SQL> alter tablespace test1_tablespace
  2  add datafile ‘test2-file.dbf‘ size 10m;

表空间已更改。

SQL> select file_name from dba_data_files where tablespace_name=‘TEST1_TABLESPACE‘;

FILE_NAME
--------------------------------------------------------------------------------
F:\APP\WYL\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST1FILE.DBF
F:\APP\WYL\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST2-FILE.DBF

SQL>

  2. 删除数据文件:

  ALTER TABLESPACE tablespace_name DROP DATAFILE ‘xx.dbf‘;

SQL> alter tablespace test1_tablespace
  2  DROP datafile ‘test2-file.dbf‘;

表空间已更改。

SQL> select file_name from dba_data_files where tablespace_name=‘TEST1_TABLESPACE‘;

FILE_NAME
--------------------------------------------------------------------------------
F:\APP\WYL\PRODUCT\11.2.0\DBHOME_1\DATABASE\TEST1FILE.DBF

SQL>

6. 删除表空间:

  DROP TABLESPACE

  tablespace_name [INCLUDING CONTENTS]

SQL> drop tablespace test1_tablespace including contents;

表空间已删除。

SQL>
时间: 2024-08-02 10:15:07

Oracle的表空间的相关文章

Oracle Temp 表空间切换

一.TEMP表空间作用 临时表空间主要用途是在数据库进行排序运算.管理索引.访问视图等操作时提供临时的运算空间,当运算完成之后系统会自动清理.当 oracle 里需要用到 sort 的时候, PGA 中 sort_area_size 大小不够时,将会把数据放入临时表空间里进行排序,同时如果有异常情况的话,也会被放入临时表空间 , 正常来说,在完成 Select 语句.create index 等一些使用 TEMP 表空间的排序操作后, Oracle 是会自动释放掉临时段的.注意这里的释放,仅仅是

Oracle建立表空间和用户

建立表空间和用户的步骤: 用户 建立:create user username identified by "password"; 授权:grant create session to username; grant create table to username; grant create tablespace to username; grant create view to username; 表空间 建立表空间(一般建N个存数据的表空间和一个索引空间): create tab

Oracle 创建表空间,用户,赋值(简装)

一, 1.Oracle 创建表空间,用户,赋值(简装) C:\Documents and Settings\Administrator>sqlplus /nologSQL> conn /as sysdba 2.删除用户drop user username cascade; 3.创建自增表表空间SQL> create tablespace 表空间 datafile 'E:\oracle\product\10.2.0\oradata\表空间.dbf' size 50m autoextend

Oracle的表空间和sqlplus

1.  表空间的概念 以前接触过的数据库都没有听到过表空间这个词,在前一段时间看到Oracle数据库的时候发现表空间无处不在.所以表空间在Oracle数据库中应该是一个很常用并且很重要的概念. 表空间是一种逻辑上的概念,逻辑上的存储单元.那么什么叫做逻辑上的存储单元呢.现在通过两张图来对比 表空间(table space)是Oracle数据库中最大的逻辑结构.从逻辑上说,Oracle数据库是由若干个表空间组成的.表空间与数据库的物理结构有着十分密切的关系,它与磁盘上若干个数据文件相对应. 从物理

第15章 oracle undo表空间管理

2015-10-23 目录 参考资料 [1] 林树泽.Oracle 11g R2 DBA操作指南[M].北京:清华大学出版社,2013 [2] Oracle undo 表空间管理 [3] undo表空间概述 [4] Oracle UNDO表空间的管理 [5] Oracle的UNDO表空间管理总结 [6] UNDO表空间的管理 [7] UNDO表空间的管理 [8] 监控和管理Oracle UNDO表空间的使用 [9] 谈谈undo表空间

基于Cordys C3版平台应用系统维护经验一则——Oracle数据库表空间满了

某日中午,有用户陆续反映系统问题,说流程送出异常.待办不消失.待办打不开等等.维护工程师开始分析问题,后台较为清晰的现象是流转日志记录插入数据失败,人工测试表插入成功,其它现象五花八门,没有规律,经过多位维护工程师的努力,终于由Oracle数据库管理工程师在16:01排除故障,系统基本恢复"正常". 故障原因是"应用系统Oracle数据库中Cordys用户所对应的表空间"满了,导致应用无法正常向数据库写入数据,造成业务数据不完整. 第二日,维护人员根据用户反馈,逐个

oracle之表空间(tablespace)、方案(schema)、段(segment)、区(extent)、块(block)

数据文件和日志文件是数据库中最重要的文件.它们是数据存储的地方.每个数据库至少有一个与之相关的数据文件,通常情况下不只一个,有很多.数据在数据文件中是如何组织的?要了解这些内容我们首先必须理解什么是表空间(tablespace).段(segment).区(extent).块(block),这些都是oracle数据库在数据文件中组织数据的基本单元.现在我们来理解这些概念. 块是数据存储的物理单位,也是数据文件中最基础的单位,数据直接存储在块上.是oracle空间分配的最小单位.oracle中的块大

ORACLE 创建表空间、用户、授权

1.创建表空间 create tablespace TEST logging datafile 'e:\app\administrator\oradata\orcl\TEST.dbf' size 100M autoextend on next 100M maxsize 4096M extent management local; 2.创建用户并指定表空间 create use testuser identified by password default tablespace TEST temp

Oracle更改表空间文件位置

Oracle更改表空间文件位置: set oracle_sid=orcl; sqlplus /nolog conn sys/password as sysdba; shutdown immediate; 复制(移动)数据文件至新路径 startup mount; alter database rename file 'c:\oracle_data\test_data01.dbf' to 'd:\oracle_data\test_data01.dbf'; alter database open;

oracle增加表空间的方法示例

oracle增加表空间的四种方法 增加oracle表空间大小的四种方法1.给表空间增加数据文件 alter tablespace app_data add datafile 'd:\oracle\product\10.2.0\oradata\edwtest\app03.dbf' size 50m; 2.新增数据文件,并且允许数据文件自动增长 alter tablespace app_data add datafile 'd:\oracle\product\10.2.0\oradata\edwte