博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[Oracle学习笔记] 基本表空间的创建,修改和删除
阅读量:4319 次
发布时间:2019-06-06

本文共 3899 字,大约阅读时间需要 12 分钟。

一,创建表空间语法:

CREATE [TEMPORARY | UNDO] TABLESPACE tablespace_name

[DATAFILE | TEMPFILE file_name SIZE K | M [REUSE] [AUTOEXTENT OFF|ON [NEXT number K | M  MAXSIZE UNLIMITED | number K | M  ] ] ]

[BLOCKSIZE number K]

[ONLINE | OFFLINE]

[LOGGING | NOLOGGING]

[FORCE LOGGING]

[DEFAULT STORAGE storage]

[COMPRESS | NOCOMPRESS]

[PERMANENT | TEMPORARY]

[EXTENT MANAGEMENT DICTIONARY | LOCAL [AUTOALLOCATE | UNIFORM SIZE number K | M ] ]

[SEGMENT SPACE MANAGEMENT AUTO | MANUAL]

 

1. TEMPORARY | UNDO 表明表空间用途,临时表空间/撤销表空间,不指定则标识基本表空间。

2. REUSE 文件存在则清除该文件,并重新创建,如果未使用,则当文件存在时将报错

3. BLOCKSIZE  创建非标准数据块表空间

4. DEFAULT STORAGE 只适用于数据字典管理的表空间,一般不用

5. EXTENT MANAGEMENT  盘区管理方式,一般选用LOCAL,字典管理方式存储效率不高,难以管理以及易造成磁盘碎片

6. AUTOALLOCATE,UNIFORM SIZE,盘区管理方式为LOCAL时适用, AUTOALLOCATE表示盘区大小由系统自动分配, UNIFORM设置盘区大小,所有盘区大小相同

7. SEGMENT SPACE MANAGEMENT 段管理方式,一般选用AUTO,这时Oracle采用位图来管理段中已用块和空闲块,如果选用MANUAL,Oracle使用可用列表来管理段中已用块和空闲块 

示例:

SQL> create tablespace tls01

  2  datafile 'f:\tls01.dbf' size 20m autoextend on next 10m maxsize unlimited;

通过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
 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)

示例:

SQL> select tablespace_name, extent_management, segment_space_management

  2  from dba_tablespaces;

TABLESPACE_NAME                EXTENT_MAN SEGMEN

------------------------------ ---------- ------
SYSTEM                         LOCAL      MANUAL
UNDOTBS1                     LOCAL      MANUAL
SYSAUX                         LOCAL      AUTO
TEMP                             LOCAL      MANUAL
USERS                           LOCAL      AUTO
TLS01                           LOCAL      AUTO

已选择6行。

 

二,修改表空间

1. 添加数据文件

ALTER TABLESPACE tablespace_name

ADD DATAFILE datafile_specification

示例:

SQL> alter tablespace tls01

  2  add datafile 'f:\tls02.dbf' size 20m;

 

2. 修改数据文件大小

首先查询dba_data_files了解数据文件的位置,大小等信息

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, file_id, bytes from dba_data_files

  2  where tablespace_name='TLS01';

FILE_NAME        FILE_ID          BYTES

---------- ---------------------------------
F:\TLS01.DBF         5             20971520

F:\TLS02.DBF         6              20971520

注意:数据字典里表空间名是大写

修改数据文件大小:

ALTER DATABASE DATAFILE file_name RESIZE size

示例:

SQL> alter database datafile 'f:\tls01.dbf' resize 50m;

3. 修改数据文件自动扩展

SQL> alter database datafile 'f:\tls01.dbf'  autoextend on;

同样适用于ALTER TABLESPACE ADD DATAFILE

4. 修改表空间状态

表空间状态:OFFLINE, ONLINE, READ ONLY, READ WRITE

SQL> alter tablespace tls01 offline;

5. 移动数据文件

如果数据文件所在磁盘空间不足,则需要将数据文件移到另一个磁盘,方法是:

1. 修改表空间状态offline

2. 复制数据文件到另一个磁盘

3. 使用ALTER TABLESPACE RENAME语句

4. 恢复表空间状态online

示例:

1) SQL> alter tablespace tls01 offline;

2) 通过操作系统命令复制或剪贴数据文件f:\tls01.dbf到e:\tls01.dbf

3) SQL> alter tablespace tls01

  2  rename datafile 'f:\tls01.dbf' to 'e:\tls01.dbf';

4) SQL> alter tablespace tls01 online;

重新查询dba_data_files,数据文件路径发生了变化

SQL> column file_name format a50

SQL> select file_id, file_name from dba_data_files

  2  where tablespace_name='TLS01';

   FILE_ID FILE_NAME

---------- --------------------------------------------------
         5 E:\TLS01.DBF
         6 F:\TLS02.DBF

 

三、删除表空间

DROP TABLESPACE tablespace_name

| [INCLUDING CONTENTS]

| [INCLUDING CONTENTS AND DATAFILES]

示例:

SQL> drop tablespace tls01

  2  including contents and datafiles;

表空间已删除。

转载于:https://www.cnblogs.com/happyking/archive/2013/01/02/2842461.html

你可能感兴趣的文章
Android_三种菜单介绍
查看>>
js常用方法之String对象方法扩展
查看>>
sqlserver 三大范式
查看>>
使用python脚本Telnet 华为交换机备份配置
查看>>
eclipse实现批量修改文件的编码方式
查看>>
Memcache
查看>>
使用Javap
查看>>
操作系统的启动流程
查看>>
Photoshop的评价
查看>>
linear model for classification
查看>>
Git - 基本使用
查看>>
河北民间组织管理系统——课堂讨论结果
查看>>
手把手教你使用node-inspector调试nodejs
查看>>
本地安装gradle-3.3-all.zip
查看>>
JavaScript 事件循环及异步原理(完全指北)(转)
查看>>
python之爬虫
查看>>
靳程旭第一周任务
查看>>
定位问题的一个思路
查看>>
Scoi2010——传送带(三分套三分=九分)
查看>>
【UOJ21】【UR #1】缩进优化(整除分块)
查看>>