alter tablespace myspace rename datafile '/u01/oradata/wilson/myspace01.dbf' to '/u01/oradata/
myspace01.dbf';
tablespace altered
b、ALTER DATABASE
准备工作
--数据库必须处于mounted状态
--新数据文件必须已经存在
startup mount
alter database rename file'/u01/oradata/wilson/myspace01.dbf' to '/u01/oradata/myspace01.dbf';
database altered
5、删除表空间
a、删除表空间保留数据文件
drop tablespace myspace including contents;
这时,数据空中的myspace表空间已经被删除了,但是磁盘上面的数据文件还存在。
b、删除表空间同时删除数据文件
drop tablespace myspace including contents and datafiles;
这时表空间和磁盘上面的数据文件都被删除了。
c、删除表空间的主外键约束
如果要删除的表空间中的表和其他表空间中的表有主外键约束关系,我们必须删除其约束关系,否则无法删除表空间。
drop tablespace myspace including contents cascade contraints;
这样我们就可以吧表空间种的约束条件都删除了。
大家可能发现上面的三个删除方式可以写成一条SQL语句
drop tablespace myspace including contents and datafiles cascade contraints;
用这条语句就可以成功地将表空间完全删除。
6、存放表空间信息的数据字典和动态视图
a、表空间信息
dba_tablespace
v$tablespace
b、数据文件信息
dba_data_files
v$datafile
c、临时表空间文件信息
dba_temp_files
v$tempfile
上面我们说的都是permanet类型的表空间,undo和temporary类型的表空间没有什么太大的差异,有机会我再写。
睡觉了(~ o ~)~zZ。
添加一条查看数据库里表空间使用情况的SQL:
select f.tablespace_name,a.total||‘M’,u.used||‘M’,f.free||‘M’,round((u.used/a.total)*100) "% used",
round((f.free/a.total)*100) "% Free"
from
(select tablespace_name, sum(bytes/(1024*1024)) total
from dba_data_files group by tablespace_name) a,
(select tablespace_name, round(sum(bytes/(1024*1024))) used
from dba_extents group by tablespace_name) u,
(select tablespace_name, round(sum(bytes/(1024*1024))) free
from dba_free_space group by tablespace_name) f
WHERE a.tablespace_name = f.tablespace_name and a.tablespace_name = u.tablespace_name;