Oracle表空间怎么设置和管理

    作者:课课家教育更新于: 2019-07-23 15:58:19

    我们使用sql数据库其实就是使用很多表,数据库是由表组成的,而数据也是以表的形式展现出来的,表是列的集合也是信息数据的容器,很多表就构成了数据库。这篇文章讲解如何使用表组织数据,使数据库的结构完整性。下面我们采用个案例:建立学生数据库表来讲解如何创建数据库使用表组织数据。

    今天小编就从永久表空间管理和临时表空间管理两个维度,详细介绍 Oracle表空间管理的具体操作。

    前言

    表空间是 Oracle 特有的一种逻辑结构,是管理和组织 Oracle 数据文件一种方式,一个Oracle 数据库能够有一个或多个表空间,而一个表空间则对应一个或多个物理的数据库文件。Oracle 的表空间分为永久空间和临时表空间,同时又分为 smallfile tablespace和 bigfile tablespace。表空间管理是 Oracle dba的一项重要日常工作。

    Oracle表空间怎么设置和管理_数据库_数据分析_数据管理_课课家

    今天小编就从永久表空间管理和临时表空间管理两个维度,详细介绍 Oracle表空间管理的具体操作。

    一、永久表空间管理

    1.  创建表空间

    参数说明:

    • EXTENT MANAGEMENT LOCAL AUTOALLOCATE:区大小由系统自动分配。
    • BLOCKSIZE 8K:块大小为8K。
    • SEGMENT SPACE MANAGEMENT AUTO:段管理是自动的。
    • FLASHBACK ON:开启闪回。

    2. 修改表空间

    (1) 修改数据文件大小

    1. SQL> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/TSH1/users01.dbf' 
    2. RESIZE 10M; 

    (2) 增加表空间数据文件

    1. ALTER TABLESPACE USERS ADD DATAFILE '/u01/app/oracle/oradata/TSH1/users02.dbf' SIZE 20M AUTOEXTEND ON NEXT 1280K MAXSIZE UNLIMITED; 

    注:日常工作中建议通过增加数据文件的方式给表空间扩容,因为对于在线业务系统来说,通过修改数据文件大小的方式,对业务会产生一定的影响。

    3. 重命名表空间

      • 设置表空间脱机
    1. SQL> ALTER TABLESPACE USERS OFFLINE NORMAL; 
      • 用一个操作系统实用程序重新命名此文件如UNIX的cp或mv,或者Windows的copy命令
    1. $cp /u01/app/oracle/test01.dbf /u02/app/oracle/test01.dbf 
      • 在数据文件在线之前使用以下命令重命名数据库中的数据文件
    1. SQL> ALTER TABLESPACE USERS RENAME DATAFILE 
    2. '/u01/app/oracle/oradata/TSH1/users01.dbf' 
    3. TO 
    4. '/u02/app/oracle/oradata/TSH1/users01.dbf' 
      • 设置表空间online
    1. SQL> ALTER TABLESPACE USERS ONLINE ; 

    4. 设置表空间只读

      • 设置表空间只读
    1. SQL> ALTER TABLESPACE USERS READ ONLY; 
      • 设置表空间再次可写
    1. SQL> ALTER TABLESPACE USERS READ WRITE; 

    5. 设置表空间脱机、联机

      • 设置表空间脱机
    1. SQL> ALTER TABLESPACE USERS OFFLINE NORMAL; 
      • 设置表空间联机
    1. SQL> ALTER TABLESPACE USERS ONLINE; 

    6. 删除表空间

    1. SQL> DROP TABLESPACE USERS INCLUDING CONTENTS AND DATAFILES; 

    7. 修改表空间为默认永久表空间

      • 修改表空间为默认永久表空间
    1. SQL>ALTER DATABASE DEFAULT TABLESPACE users; 
      • 查询当前数据库默认的永久表空间
    1. SQL>SELECT property_value from database_properties where property_name=’DEFAULT_PERMANENT_TABLESPACE’; 

    二、临时表空间管理

    1. 创建临时表空间

    1. SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE  
    2.  '/u01/app/oracle/oradata/TSH1/temp01.dbf' SIZE 31M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED 
    3. EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M; 

    参数说明:EXTENT MANAGEMENT LOCAL UNIFORM SIZE 1M:区管理为本地管理,且区大小为1M。

    2. 修改临时表空间

    1. SQL> ALTER DATABASE TEMPFILE '/u01/app/oracle/oradata/TSH1/temp01.dbf' 
    2. RESIZE 60M; 

    3. 删除临时表空间

    1. SQL> DROP TABLESPACE TEMP INCLUDING CONTENTS AND DATAFILES; 

    4. 临时表空间组管理

    (1) 创建临时表空间组

    1. SQL> CREATE TEMPORARY TABLESPACE TEMP TEMPFILE  
    2.  '/u01/app/oracle/oradata/TSH1/temp01.dbf' SIZE 31M AUTOEXTEND ON NEXT 640K MAXSIZE UNLIMITED 
    3. TABLESPACE GROUP tmpgrp1; 

    说明:

    增加一个名为tmpgrp1的临时表空间组。

    (2) 给临时表空间组增加表空间

    1. SQL> ALTER TABLESPACE temp02 TABLESPACE GROUP tmpgrp2; 

    (3) 将一个组设置为默认临时表空间

    1. SQL> ALTER DATABASE DEFAULT TEMPORARY TABLESPACE tmpgrp1; 

    表空间管理涉及的视图

    为了管理ORACLE数据库的表空间,要熟悉几个关键的字典视图:

    • DBADATAFILES
    • DBA_TABLESPACES
    • DBAFREESPACE
    • DBA_SEGMENTS
       SQLite 是一个被大家低估的数据库,但有些人认为它是一个不适合生产环境使用的玩具数据库。事实上,SQLite 是一个非常可靠的数据库,它可以处理 TB 级的数据,但它没有网络层。接下来,本文将与大家共同探讨 SQLite 在过去一年中最新的 SQL 功能。

课课家教育

未登录