1)介绍
表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或是多个数据文件组成。
2)数据库的逻辑结构
oracle中逻辑结构包括表空间、段、区和块。数据库由表空间构成,表空间又是由段构成,段又是由区构成,区又是由oracle块构成的。
3)表空间
表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或是多个表空间组成的。通过表空间可以到达到以下作用:
控制数据库占用的磁盘空间;
dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时利于备份和恢复等管理操作。
①建立表空间(create tablespace)
一般情况下,建立表空间是特权用户或是dba来执行的,或者具有create tablespace的系统权限
②建立数据表空间
create tablespace 表空间名称 datafile 'd:\test\data01.dbf' size 20m uniform size 128k;
说明:建立名称为data01的表空间,并为表空间建立名称为data01.dbf的数据文件,大小为20M,区的大小为128k
③使用表空间
create table mypart(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace 表空间名称;
④改变表空间的状态
当建立表空间时,表空间处于联机(online)状态,此时该表空间是可以访问的,可以读写、查询、执行语句。但是在进行系统维护或是数据维护时,可能需要改变表空间的状态。一般情况下,由特权用户或是dba来操作。
(使表空间脱机:alter tablespace 表空间名 offline;)
(使表空间联机:alter tablespace 表空间名 online;)
(只读表空间(不能执行update,delete,insert操作):alter tablespace 表空间名 read only;)
(可读表空间:alter tablespace 表空间名 read write;)
(查询表空间包括的所有表:select * from all_tables where tablespace_name='表空间名';)
表空间是数据库的逻辑组成部分。从物理上讲,数据库数据存放在数据文件中;从逻辑上讲,数据库则是存放在表空间中,表空间由一个或是多个数据文件组成。
2)数据库的逻辑结构
oracle中逻辑结构包括表空间、段、区和块。数据库由表空间构成,表空间又是由段构成,段又是由区构成,区又是由oracle块构成的。
3)表空间
表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或是多个表空间组成的。通过表空间可以到达到以下作用:
控制数据库占用的磁盘空间;
dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时利于备份和恢复等管理操作。
①建立表空间(create tablespace)
一般情况下,建立表空间是特权用户或是dba来执行的,或者具有create tablespace的系统权限
②建立数据表空间
create tablespace 表空间名称 datafile 'd:\test\data01.dbf' size 20m uniform size 128k;
说明:建立名称为data01的表空间,并为表空间建立名称为data01.dbf的数据文件,大小为20M,区的大小为128k
③使用表空间
create table mypart(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace 表空间名称;
④改变表空间的状态
当建立表空间时,表空间处于联机(online)状态,此时该表空间是可以访问的,可以读写、查询、执行语句。但是在进行系统维护或是数据维护时,可能需要改变表空间的状态。一般情况下,由特权用户或是dba来操作。
(使表空间脱机:alter tablespace 表空间名 offline;)
(使表空间联机:alter tablespace 表空间名 online;)
(只读表空间(不能执行update,delete,insert操作):alter tablespace 表空间名 read only;)
(可读表空间:alter tablespace 表空间名 read write;)
(查询表空间包括的所有表:select * from all_tables where tablespace_name='表空间名';)
(查询表属于哪个表空间:select tablespace_name,table_name from user_tables where table_name='EMP';)
5)删除表空间
特权用户或是dba来操作或者具有drop tablespace的系统权限(including contents表示删除该空间的所有数据库对象、datafiles表示删除数据库文件)。
drop tablespace '表空间' including contents and datafiles;
6)扩展表空间(数据文件的大小不要超过500M)
①增加数据文件:alter tablespace 表空间名 add datafile 'd:\test\space1.dbf' size 20m;
②增加数据文件的大小:alter tablespace 表空间名 'd:\test\.dbf'space1 resize 20m;
③设置文件的自动增长:alter tablespace 表空间名 'd:\test\space1.dbf' autoextend on next 10m maxsize 500m;
7)移动数据文件
①确定数据文件所在的表空间:select tablespace_name from dba_data_files where file_name='d:\test\sp01,dbf';
②使表空间脱机(转变为offline状态):alter tablespace 表空间名 offline;
③移动数据文件到指定的位置:host move d:\test\sp01,dbf c:\test\sp01.dbf;
④执行alter tablespace命令:alter tablespace sp01 rename datafile 'd:\test\sp01,dbf' to 'c:\test\sp01.dbf';
⑤使表空间联机(转变为online状态):alter tablespace 表空间名 online;
8)显示表空间信息(dba_tablespace)
select tablespace_name from dba_tablespaces;
9)显示表空间所包含的数据文件(dba_data_files)
select file_name,bytes from dba_data_files where tablespace_name='表空间名';
10)小结
①了解表空间和数据文件的作用
②掌握常用表空间、undo表空间和临时表空间的建立方法
③了解表空间的各个状态(online、offline、read write、read only)的作用,及如何改变表空间状态的方法
④了解移动数据文件的原因,及使用alter tablespace和alter datatable命令移动数据文件的方法
11)其他表空间
①索引表空间
②undo表空间
③临时表空间
④非标准块的表空间