1.表空间概念
在ORACLE数据库中,所有数据从逻辑结构上看都是存放在表空间当中,当然表空间下还有段、区、块等逻辑结构。从物理结构上看是放在数据文件中。一个表空间可由多个数据文件组成。
2.oracle 数据库默认的表空间
- SYSTEM 系统表空间
- SYSAUX 辅助表空间
- USERS 用户表空间
- UNDOTBS1 撤销表空间
- EXAMPLE 安装Oracle数据库示例的表空间
- TEMP 临时表空间
3.表空间的分类
表空间 | 作用 |
---|---|
永久表空间 | 存放永久性数据,如二维表、视图、存储过程、索引等。 |
临时表空间 | 不能存放永久性对象,用于保存数据库排序,分组时产生的临时数据。 |
UNDO表空间 | 保存数据修改前的副本。为了对数据执行回滚、恢复、撤销的操作。 |
4.表空间的管理方法
表空间的管理方式:
字典管理:全库所有的空间分配都放在数据字典中。容易引起字典争用,而导致性能问题。(数据库调优)
本地管理:空间分配不放在数据字典,而在每个数据文件头部的第3到第8个块的位图块,来管理空间分配。
5.创建表空间
1.创建永久表空间
create tablespace testspace datafile 'test.dbf' size 10m autoextend on next 5m;
2.创建临时表空间
create temporary tablespace test_temp tempfile 'c:\oracle\product\10.2.0\oradata\orcl\test_temp01.dbf' size 10m autoextend on next 5m EXTENT MANAGEMENT LOCAL;
6.查询表空间
1.查询表空间描述信息
select * from dba_tablespaces;
2.查询数据文件路径
select * from dba_data_files;
3.查询用户默认表空间和默认临时表空间
select username,default_tablespace,temporary_tablespace from dba_users;
7.删除表空间
drop tablespace testspace INCLUDING CONTENTS AND DATAFILES;
including contents — 删除表空间及对象;
including contents and datafiles — 删除表空间、对象及数据文件;
including contents CASCADE CONSTRAINT — 删除关联;
including contents and datafiles cascade constraint – 含前两项。
8.修改表空间
1.修改用户的默认和临时表空间
ALTER USER xiaoming defalut|temporary TABLESPACE tablespace_name;
2.修改表空间为脱机或联机状态
ALTER TABLESPACE tablespace_name ONLINE|OFFLINE;
注意: 临时表无法设置为脱机状态
3.修改表空间的读写状态
ALTER TABLESPACE tablespace_name [read only][read write];
4.添加表空间的数据文件
ALTER TABLESPACE tablespace_name ADD DATAFILE'xx.dbf' SIZE xx;
5.修改表空间数据文件的大小
ALTER DATABASE DATAFILE 'test1.dbf' RESIZE 15m;
6.删除数据文件
注意:不能够删除表空间中的第一个数据文件,如果将第一个数据文件删除的话,相当于删除了整个表空间。
ALTER TABLESPACE tablespace_name DROP DATAFILE'test1.dbf'; #无法删除物理磁盘文件要手动删除
9.创建用户
CREATE USER xiaoming IDENTIFIED BY admin #创建用户xiaoming,设置密码为admin
DEFAULT TABLESPACE testspace #指定默认表空间为testspace
TEMPORARY TABLESPACE test_temp; #指定临时表空间为test_temp
指定默认表空间以后,用户xiaoming创建的表都在这个表空间下,除非额外指定;当然,要给用户xiaoming授权才能创建表。
1.修改用户的默认的表空间
alter user xiaoming default tablespace oraclespaces;
2.修改用户的默认的临时表空间
alter user xiaoming temporary tablespace temp_oraclespaces;
3.修改数据库的默认的临时表空间
Alter database default temporary tablespace temp;
10.授权
grant dba to xiaoming;