Oracle表空间和他的数据文件
//以myspace为例 来源于Oracle 11g数据库应用简明教程 清华出版社
/*创建表空间*/ CREATE TABLESPACE myspace DATAFILE'E:developoradataorclmyspace.dbf' SIZE 20M AUTOEXTEND ON NEXT 5M MAXSIZE 100M; /*通过数据字典dba_tablespaces查看表空间myspace的部分属性*/ SELECT tablespace_name, logging, allocation_type, extent_management, segment_space_management FROM dba_tablespaces WHERE tablespace_name = 'MYSPACE'; /*通过数据字典dba_tablespaces, 查看当前数据库表空间的状态*/ SELECT tablespace_name, status FROM dba_tablespaces; /* 表空间共有4种状态 在线 离线 只读 读写 offline READ ONLY READ WRITE 只能从online 状态改过来 */ ALTER TABLESPACE myspace online ; ALTER TABLESPACE myspace3 offline; ALTER TABLESPACE myspace READ ONLY; ALTER TABLESPACE myspace READ WRITE; /*重命名表空间*/ ALTER TABLESPACE myspace2 RENAME to myspace3; /*通过数据字典dba_free_space查看myspace 表空间的空闲空间信息*/ SELECT tablespace_name , bytes, blocks from dba_free_space where tablespace_name = 'MYSPACE4'; /*通过数据字典dba_data_files查看myspace 表空间的数据文件信息*/ COLUMN file_name FORMAT A35; COLUMN tablespace_name FORMAT A15; SELECT tablespace_name, file_name, bytes FROM dba_data_files WHERE tablespace_name = 'MYSPACE'; /*修改myspace 表空间对应的数据文件的大小*/ ALTER DATABASE DATAFILE 'C:MYSPACE.DBF' RESIZE 40M; /*(表空间和数据文件是两个概念)*/ /*在已有的表空间增加两个数据文件*/ ALTER TABLESPACE myspace ADD DATAFILE 'E:developoradataorclmyspace02.dbf' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 40M, 'E:developoradataorclmyspace03.dbf' SIZE 10M AUTOEXTEND ON NEXT 5M MAXSIZE 40M; /* 删除表空间的数据文件 前提是:数据文件无数据,为空。或者曾有数据,现在没了,也可以。 */ ALTER TABLESPACE myspace DROP DATAFILE'E:developoradataorclmyspace03.dbf'; /* 修改表空间的自动扩展性 AUTOEXTEND ——自动扩展性 数据文件如果有自动扩展性,最好为文件设置大小设置,否则文件体积无限增大 */ ALTER DATABASE DATAFILE'E:developoradataorclmyspace02.dbf' AUTOEXTEND OFF; ALTER DATABASE DATAFILE'E:developoradataorclmyspace02.dbf' AUTOEXTEND ON NEXT 5M MAXSIZE 40M; /* 修改表空间中数据文件的状态 数据文件的状态有3种 :ONLINE、 OFFLINE、 OFFLINE DROP 在OFFLINE DROP状态下无法直接切换到ONLINE状态 ,会出现需要介质恢复这个错误 OFFLINE运行在归档状态, OFFLINE DROP运行在非归档状态下。 */ ALTER DATABASE DATAFILE 'E:developoradataorclmyspace02.dbf' OFFLINE DROP; /*介质恢复*/ RECOVER DATAFILE'E:developoradataorclmyspace02.dbf'; /*移动表空间的数据文件*/ /*1.修应该表空间的状态为OFFLINE*/ ALTER TABLESPACE myspace OFFLINE; /*2.将磁盘中的myspace02.dbf文件移动到新的目录下,并可以手动修改名字。(手动移动,但此时系统不认可)*/ /*3.将表空间的数据文件原名称和路径同时修改*/ ALTER TABLESPACE myspace RENAME DATAFILE'E:developoradataorclmyspace02.dbf' TO 'E:operating platformoraclefilemyspace03.dbf'; /*4.修改表空间的状态为ONLINE*/ ALTER TABLESPACE myspace ONLINE; /*5.查询*/ SELECT tablespace_name, file_name FROM dba_data_files WHERE tablespace_name = 'MYSPACE'; /*删除表空间*/ DROP TABLESPACE sunspace INCLUDING CONTENTS AND DATAFILES;