• 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:APPWYLPRODUCT11.2.0DBHOME_1DATABASETEST1FILE.DBF

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

    SQL> select file_name from dba_temp_files where tablespace_name='TEMPTEST1_TABLESPACE';
    
    FILE_NAME
    --------------------------------------------------------------------------------
    F:APPWYLPRODUCT11.2.0DBHOME_1DATABASETEMPFILE1.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:APPWYLPRODUCT11.2.0DBHOME_1DATABASETEMPFILE1.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:APPWYLPRODUCT11.2.0DBHOME_1DATABASETEST1FILE.DBF
    F:APPWYLPRODUCT11.2.0DBHOME_1DATABASETEST2-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:APPWYLPRODUCT11.2.0DBHOME_1DATABASETEST1FILE.DBF
    
    SQL>

    6. 删除表空间:

      DROP TABLESPACE

      tablespace_name [INCLUDING CONTENTS]

    SQL> drop tablespace test1_tablespace including contents;
    
    表空间已删除。
    
    SQL>
  • 相关阅读:
    Mac sublime text3 安装插件
    趣题记录
    Shadow DOM及自定义标签
    JavaScript 对象部署 Iterator 接口
    JavaScript实现循环链表
    使用JavaScript实现单向链表
    nodejs深入浅出读书笔记(三)
    nodejs深入浅出读书笔记(一)
    nodejs深入浅出读书笔记(二)
    为什么要了解Event loop?(二)
  • 原文地址:https://www.cnblogs.com/blogofwyl/p/4823730.html
Copyright © 2020-2023  润新知