oracle中管理表空间和数据文件

来源:互联网 发布:数据使用承诺书 编辑:程序博客网 时间:2024/06/05 03:50
管理表空间和数据文件


1.表空间:是数据的逻辑组成部分.从物理上讲,数据库数据粗放在数据文件中;
从逻辑上讲,数据库则是存放在表空间中,表空间由一个或是多个数据文件
组成!


2.oracle中的逻辑结构包括表空间,段,区和块;


表空间由区构成,段由区构成,区又是由块组成


3.表空间的作用:


a).控制数据库占用的磁盘空间


b).dba可以将不同的数据类型部署到不同的位置,这样有利于提高i/o性能,
同时利于备份和恢复等管理操作


4.建立数据库表空间(一般是dba权限下):


如:create tablespace data01 datafile 'd:\data01.dbf'size 20m 
uniform size 128k


说明一下上面的代码:执行完上述命令后,会建立名称为data01的表空间,
并为该表空间建立名称为data01.dbf的数据文件,表空间大小为20m;
区的大小为128k


5.使用数据库表空间(在数据库里面创建表):


如:create table mypart(dept number(4)) tablespace data01;


6.改变表空间的状态:(一般是dba权限下)
a).使表空间脱机:
alter tablespace 表空间名 offline


b).使表空间联机:
alter tablespace 表空间名 online;


c)设置只读表空间(只可以对表select)
alter tablespace 表空间名 read only 


d)设置可读写表空间(可以对表进行增删改查的操作)
alter tablespace 表空间名 write


7.扩展表空间(三种常用方法)


a)增加数据文件(如:文件1 文件2 文件3 等等)


如:alter tablespace sp01 add datafile 'd:\sp01.dbf' size 20m


b)增加数据文件的大小:


如:alter tablespace datafile 'd:\sp01.dbf' resize 20m;


这里需要注意的是数据文件的大小不要超过500m


c)设置文件自动增长:


如:alter tablespace datafile 'd:\sp01.dbf' autoextend on next 10m
maxsize 500m;(不能小于10m,但是不能大于500m)


8.移动数据文件:


以sp01dbf为例来说明:


1).确定数据文件所在的表空间:


select tablespace_name from dba_data_files where file_name
='d:\sp001.dbf';


2)使表空间脱机:
确保数据文件的一致性,将表空间转变为offline的状态
alter tablespace sp01 offline


3.)使用命令移动数据文件到指定的目标位置:
host move d:\sp01.dbf c:\sp01.dbf


4)执行alter tablespace 命令:


alter tablespace sp01 rename datafile 'd:\sp001.dbf' to 
'c:\sp001.dbf';


5)使表空间联机:
alter tablespace sp01 online;




9.显示表空间的信息:


select 表空间名 from dba_tablespace;




10.显示表空间所包含的数据文件:


select tablespace_name,table_name from user_tables where table_name='EMP';
原创粉丝点击