一、表空间和数据文件
创建表空间
可通用database_properties表查询表空间创建时的默认属性;
create [smallfile|bigfile] tablespace <> datafile <> size <> …;
设置表空间创建时默认大文件:
alter database set default bigfile tablespace;
表空间管理方法
- a 数据字典管理表空间,DMT(9i以后逐渐被淘汰)
- b 本地管理表空间,LMT
移植一个DMT表空间
- 数据字典管理表空间不能直接转换本地管理表空间
- 升级老版本数据库到新版本后,大多数表空间可以通过创建新的本地管理表空间,并移动存储对象到新表空间的方式把字典管理表空间替换掉,但是系统表空间却无法这样处理
- 数据字典管理的系统表空间移植到本地管理的表空间的方法:
DBMS_SPACE_ADMIN.TABLESAPCE_MIGRATE_TO_LOCAL(‘SYSTEM’); - 如8i(dmt) --> exp -->10g(lmt),建立表结构 --> imp,ignore=y;
表空间的状态
可以在v$datafile查看表空间状态;
状态分为四种:
online
offline
read write
read only
修改表空间状态:
alter tablespace users read only;
表空间及数据文件重命名
表空间重命名
alter tablespace users rename to userdate;
(有些表空间名称不能修改,例如system或者sysaux)
表空间文件的重命名和重定位
- 数据库为open状态
- a将需要重命名数据文件的表空间离线
- b操作系统级移动数据文件或者改名
- c执行下面的rename命令,执行之前目标数据文件必须存在
alter tablespace datas rename datafile ‘/u01/oradata/orcl/datas01.dbf’ to ‘/u02/oradata/orcl/datas01.dbf’;(此语句只能用于open)或者
alter database rename file ‘/u01/oradata/orcl/datas01.dbf’ to ‘/u02/oradata/orcl/datas01.dbf’; - d将表空间online,online时会校验数据文件的状态是否正确
- 数据库为mount状态
- a操作系统级移动数据文件或者改名
- b执行下面的rename命令,执行之前目标数据文件必须存在
alter database rename file ‘/u01/oradata/orcl/datas01.dbf’ to ‘/u02/oradata/orcl/datas01.dbf’;
表空间大小的改变
查询dba_data_files可以查看数据文件是否启用了自动扩展属性;
自动扩展数据文件大小对性能有一定的影响,所以更建议手动扩展文件;
启动数据文件大小的自动扩展:
alter database datafile ‘/u01/oradata/orcl/datas01.dbf’ autoextend on next 10m maxsize 500m;
或者
alter database datafile 5 autoextend on next 10m maxsize 500m;
手动改变数据文件大小:
alter database datafile ‘/u01/oradata/orcl/datas01.dbf’ resize 200m;
或者
alter database datafile 5 resize 200m;
为表空间增加数据文件:
alter tablespace users add datafile ‘/u01/oradata/orcl/datas01.dbf’ size 100m autoextend on;
删除表空间
drop tablespace datas includin contents and datafile;
includin contents用于删除表空间的同时删除表空间上的所有段;
includin contents and datafile 删除表空间、数据文件以及表空间上段的信息,同时删除操作系统中的数据文件;
获取表空间和数据文件信息
表空间信息:
v$tablespace
dba_tablespace
数据文件信息:
v$datafile
dab_data_files
临时数据文件信息:
v$tempfile
dba_temp_files
二、系统表空间system
待补充
三、系统辅助表空间sysaux
待补充
四、回滚段表空间undo
待补充
五、用户表空间users
查询系统默认表空间:
database_properties;
修改系统默认表空间:
alter database default tablespace users;
查询用户默认表空间:
dba_users;
六、临时表空间temp
查询默认临时表空间:
database_properties;
修改默认临时表空间:
alter database default temporary tablespace temp1;
查询临时表空间:
v$tempfile;
dba_temp_files;
建立temp表空间:
create temporary tablespace temp1 tempfile ‘/u01/oradata/orcl/temp1.dbf’ siz 100m;
查询临时表空间组:
dba_tablespace_groups;
建立temp表空间组:
create temporary tablespace temp1 tempfile ‘/u01/oradata/orcl/temp1.dbf’ siz 100m tablespace group temp11;
临时temp表空间组添加成员:
alter tablespace temp2 tablespace group temp11;
删除temp表空间组成员:
drop all temp tablespace in the tablespace group tempname;
为用户指定临时表空间:
alter user scott temporary tablespace temp11;
临时表空间丢失损坏空间不足:
添加新的,指定默认的,删除旧的