管理表空间和数据文件.doc

管理表空间和数据文件 表空间是数据库的逻辑组成部分。物理上讲,数据库数据存放在数据文件中。从逻辑上讲,数据库则是存放在表空间中的,表空间由一个或多个数据文件组成。 数据库的逻辑结构 表空间-段-区-块 表空间用于从逻辑上组织数据库的数据。数据库逻辑上是由一个或多个表空间组成的。通过表空间可以控制数据库占用的磁盘空间;dba可以将不同数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利于备份和恢复等管理操作。 建立表空间,特权用户或者dba执行,具有create tablespace的系统权限 create tablespace data01 datafile ‘d:\test\data01.dbf’ size 20m uniform size 128k 建立名为data01的表空间,为该表空间建立data01.dbf的数据文件,区大小为128k create table mytest(deptno number(4),dname varchar2(20),loc varchar2(20)) tablespace data01; 改变表空间的状态 建立表空间时,表空间是联机状态,此时该表空间可以访问,可读写,可查询该表空间的数据,而且还可以在表空间执行各种语句,但是进行系统维护时,需要改变表空间的状态,一般是特权用户或dba操作。 使表空间脱机 alter tablespace 表空间名 offline; 使表空间联机 alter tablespace 表空间名 online; 只读表空间 如果不希望表空间进行update|delete|insert,可将其修改为只读 alter tablespace表空间名read only; 可读表空间 alter tablespace表空间名read write; 显示表空间下所有表 select * from all_table where tablespace_name=’ 表空间名’ 显示表所属表空间 select tablespace,table_name from user_tables where table_name=’ 表名’ 删除表空间特权用户或dba操作或具有drop tablespace系统权限 drop tablespace 表空间名 including contents and datafiles; including contents 删除表空间时,删除该空间的所有数据库对象 datafiles表示将数据库文件也删除 扩展表空间 表空间由数据文件组成,表空间大小实际就是数据文件大小的总和。 假设表emp建立在表空间data01上,初始大小为2m,当2m空间满后,再插入数据会提示空间不足的错误 案例: 建立表空间 sp01 在该表空间建立与dept表结构一样的表mydept 向表中插入数据 insert into mydept select * from dept; 当一定时候出现无法扩展的问题,怎么解决? 扩展表空间三种方法: 增加数据文件 alter tablespace表空间名add datafile ‘d:\test\sp01.dbf’ size 20m 增加数据文件大小 alter database datafile ‘d:\test\sp01.dbf’ resize 20m; 数据文件大小不要超过500m 设置文件自动增长 alter database datafile ‘d:\test\sp01.dbf’ autoextend on next 10m maxsize 500m; 移动数据文件 当数据文件所在磁盘损坏时,数据文件不能使用,为了能够重新使用,需要将这些文件的副本移动到其它磁盘,然后恢复 移动sp01.dbf 确定数据文件所在的表空间 select tablespace_name from dba_data_files where file_name=’d:\test\sp01.dbf’; 使表空间脱机 确保文件一致性,将表空间转变为offline alter tablespace sp01 offline; 使用命令移动数据文件到指定目标位置 host move d:\test\sp01.dbf c:\test\sp01.dbf alter tablespace命令执行 物理移动数据后,alter tablespace命令对数据库文件进行逻辑修改 alter tablespace sp01 rename datafile ‘d:\test\sp01.dbf’ to ‘c:\test\sp01.dbf’ 使表空间联机 移动数据文件后,为了使用户可以访问该表空间,必须将其转换为online状态 alter tablespace sp

文档评论(0)

1亿VIP精品文档

相关文档