初识Oracle表空间设置与管理

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

前言

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

初识 Oracle 表空间设置与管理

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

一、***表空间管理

1.  创建表空间

初识 Oracle 表空间设置与管理

参数说明:

  • 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’; 

二、临时表空间管理

初识 Oracle 表空间设置与管理

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
责任编辑:赵宁宁 来源: 今日头条
相关推荐

2010-04-28 17:59:19

Oracle表空间

2010-11-19 15:53:28

oracle管理表空间

2022-01-18 08:29:58

Oracle数据库后端开发

2009-06-24 10:26:41

Oracle约束分区表

2009-11-02 18:03:25

Oracle用户表空间

2009-11-24 17:20:48

Oracle查看用户表

2009-10-26 16:13:29

Oracle使用UND

2009-10-29 16:57:05

Oracle传输表空间

2010-11-15 11:40:44

Oracle表空间

2010-11-16 10:32:01

Oracle创建表空间

2010-11-16 11:32:54

ORACLE增加表空间

2010-05-10 18:46:14

Oracle更改表空间

2010-05-10 11:34:38

Oracle系统表空间

2010-10-27 14:41:45

Oracle查询用户表

2010-04-15 14:18:30

Oracle创建

2009-10-28 16:31:37

Oracle传输表空间

2009-11-05 17:53:05

Oracle用户表空间

2010-10-29 10:22:21

Oracle表空间

2010-11-16 11:17:41

Oracle表空间大小

2009-10-22 16:25:53

Oracle UNDO
点赞
收藏

51CTO技术栈公众号