oracle表空间管理及操作实用案例

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Oracle表空间管理及操作详解(附带案例)一:表空间概述

表空间是数据库的逻辑组成部分,从物理上讲,数据库数据存放在数据文件中;数据库逻辑上讲是由一个或者多个表空间组成,数据文件则是存放在表空间中,表空间有一个或者多个数据文件组成即表空间有数据文件构成的。

数据库,表空间,段,区,块,按大小排列依次是:数据库---》表空间-----》段-----》区----》块。

1.建立表空间的作用:

(1.)控制数据库占用的磁盘空间。(2).dba可以将不同的数据类型部署到不同的位置,这样有利于提高i/o性能,同时有利与备份和恢复等管理操作。

二:管理表空间和数据文件。

(1)建立表空间create tablespace;

一般情况下建立表空间是特权用户或者dba来执行的,如果其他用户来创建表空间,则用户建必须要具有create tablespace的系统权限。(2)建立数据表空间

在建立数据库后,为便于管理表,最好建立自己的表空间。

create tablespace sp02 datafile 'd:\test\sp02.dbf' size 20m uniform size 128k

说明:执行完上述命令后,会建立名称为sp02的表空间,并为该表空间建立名称为sp02.dbf的数据文件,区的大小为128k。

(3.)在表空间建表

create table tablesp02(ID number(5),name varchar2(20)) tablespace sp02

(4)显示当前用户拥有哪些表。

select * from tab;

(5).知道表空间名,显示该表空间包括的所有表。

select * from all_tables where tablespace_name='表空间名'。

注:拥有权限不同的用户在进行以上操作得到的结果可能不同。System可以查看得到某空间的所拥有表。(比如users表空间)

(6)知道表名,查看该表属于那个表空间。

select TABLESPACE_NAME, TABLE_NAME from user_tables where TABLE_NAME='EMP';

(7)知道表名,查看该表属于那个表空间,,属于哪个用户。

select owner,TABLESPACE_NAME, TABLE_NAME from

all_tables where TABLE_NAME='EMP';

(8)改变表空间的状态

使表空间可读写

alter tablespace 表空间名 read write;

删除表空间,一般情况下由特权用户或者dba来操作。具有drop tablespace系统权限。

drop tablespace ‘表空间’includeing contens and datafiles;

说明:includeing contens表示删除表空间时,删除该空间的所有数据库对象而datafiles表示将数据库文件也删除。

(9)改变表空间的状态

(1)使用空间脱机

alter tablespace 表空间名 offline

(2)使用空间联机

alter tablespace表空间名online

(3)只读表空间

建立表空间时,表空间可以读写,如果不希望在表空间上执行update,delete,insert操作。那么可以将表空间修改为只读。

alter talbespace sp01 read only;

三:移动数据文件:

(1)确定数据文件所在的表空间(知道表属于哪个表空间)

Select tablespace_name from dba_data_files where file_name='D:\TEST\05.DBF';

(2)使用表空间脱机

确保数据文件的一致性,将表空间转换为offline的状态。alter tablespace sp01 offline;

(3)使用命令移动数据文件到指定的目标位置。

host move d:\test\sp01.dpf c:\test\sp01.dbf;

(4)执行alter tablespace命令

在物理上移动了数据后,还必须执行alter tablespace命令对数据库文件进行逻辑修改。

alter tablespace sp01 rename datefile ‘d:\sp01.dbf’ to 'c:\sp01.dbf'

(5)使得表空间联机

在移动了数据文件后,为了使用户可以访问该表空间,必须将其变为online状态:

alter tablespace sp01 online;

四:显示表空间信息:

查询数据视图字典dba_tablespace,显示表空间的信息:

select tablespace_name from dba_tablespaces

显示某个表空间的详细信息:

select * from dba_tablespaces where

TABLESPACE_NAME='SP05';

显示表空间所包含的数据文件。查询数据字典视图dba_data_files。可显示表空间所包含的数据文件如下:

select file_name,bytes from dba_data_files where tablespace_name='SP05';

常用表空间,undo表空间和临时表空间,非标准块的表空间。了解表空间的各个状态:如何改变表空间的的状态的方法。(online,offline,read write,read only)

system是系统表空间,不能作为只读,如果是普通表空间,那么我们可以设为只读。

五:附加案例:建一个表空间,在表空间里面建表,并且增加表空间的存储空间。

1.建立表空间

create tablespace sp05 datafile 'd:\test\sp05.dbf' size 20m uniform size 128k

2.建表

create table tablesp05(ID number(5),name varchar2(20)) tablespace sp02

3.insert into tablesp05 select * from tablesp05;(重复多步提示空间不足)

4,拓展表空间,扩大存储空间。

alter tablespace sp05 add datafile 'D:\test\05.dbf' size 20m;

拓展表空间的存储空间这里有三种方法:

(1)增加数据文件alter tablespace sp05 add datafile 'D:\test\05.dbf' size 20m;

(2)修改数据文件大小

alter database datafile 'd:\test\sp05.dbf' resize 50m;数据文件不要超过500m。

相关文档
最新文档