Oralce tablespace表空间创建和管理

本文介绍了Oracle数据库中的表空间管理,包括表空间的概念、创建、查询、状态管理、扩展及数据文件移动等内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原文:[url]http://takeme.iteye.com/blog/1622659[/url]

[b]dba_tablespaces.dbf表空间状态扩展表空间移动数据文件[/b]
[b]1.表空间的概述 [/b]

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

[b]2.oracle的逻辑组成[/b]

1.oracle 的逻辑结构包含 表 空间 段 区 块
2.数据库是由表空间构成,表空间又是有段构成,段是由区构成,区是由 oracle的块构成,这样做是为了提高数据库的效率
3.作用
A.控制数据库占用的磁盘空间
B dba 可以将不同数据类型部署到不同的位置,这样 有利于i/0的性能,同时利于备份和恢复等管理

[b]3.查询Oracle的表空间 [/b]

select tablespace_name from dba_tablespaces;  


[b]4.创建表空间的语法和步骤 [/b]

1.创建表空间采用create tablespace命令完成
2.需要注意的是一般情况下,建立表空间,是特权用户和dba来执行的。如果其他用户要创建必须要有 create tablespace 的系统权限

[b]5.案例: 创建一个表空间 [/b]
crate tablesapce  data01 datafile 'd:\test\data01.dbf' size  20m uniform size 128k; // 说明:创建一个名称为 data01 的表空间,并为该表空间建立一个名称为data.01.dbf的数据文件,区的大小为128k  


[b]6.案例: 使用自定义的表空间 [/b]

1.create table mydept(deptno number(4),dname varchar2(14),loc varchar2(13)) tablespace data01;//如果不指定表空间,就默认放在 SYSTEM 表空间下  
2. create table emp(empno,ename) tablespace data01 as select empno,ename from scott.emp; //利用其他方案的表创建自己的表后放在自定义表空间下


[b]7.什么是表空间的状态 [/b]

当建立表空间的时候,表空间处于联机的(online)状态,此时表空间是可以访问的,并且是可以读写,既可以在表空间上执行各种语句。但是在进行系统维护或者数据维护的时候,可能需要改变表空间的状态(脱机,联机,只读)。 一般由特权用户和dba来操作

[b]8.表空间脱机 [/b]

alter tablespace 表空间名 offline;  


[b]9.使表空间联机 [/b]

alter tablespace 表空间名 online; 


[b]10.只读表空间[/b]

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

[b]11.改为读写表空间 [/b]

alter tablespace tbs001 read write; 


[b]12.显示表空间中的所有表 [/b]
select * from user_tables where TABLESPACE_NAME='DATA01';//个人发现在oralce系统中 系统表 或者 视图 是区分大写) 


[b]13.查看某表所在的表空间 (知道表名) [/b]

select tablespace_name,table_name from user_tables where table_name='EMP';  

[b]
14.删除表空间 [/b]
  
drop tablespace DATA01 including contents and datafiles;// 说明: including contents 表示删除表空间时候,删除该表空间的所有数据对象,而datafiles 表示将数据库文件也删除。


[b]15. 扩展表空间 oralce 有3中方法 [/b]

1.添加数据文件  alter tablespace TBS001 add datafile 'd:\tbs002.dbf' size 20m;  
2.增加数据文件的大小 alter database datafile 'd:\tbs001.dbf' resize 20m;
3.设置自动增长 alter database datafile 'd:\tbs002.dbf' autoextend on next 10m maxsize 500m; //9i前每个数据文件是有大小的.之后的版本有人说没有大小限制(取决自己磁盘)


[b]16.移动数据文件(处理磁盘损坏的时候,将数据文件进行迁移) [/b]

1.找出数据文件对应的 表空间
 select tablespace_name from dba_data_files where file_name='D:\TBS001.DBF'; 

2.使表空间脱机 确保数据文件的一致性
 alter tablespacce tbs001 offline; 

3.使用命令移动数据文件到指定的目标位置 (sqlplus中能成功,PL/Sql中不能成功 应是我不知道)
 host move d:\tbs001.dbf c:\tbs001.dbf;  

4.修改表空间对应的数据文体 为新磁盘下的数据文件
 alter tablespace TBS001 rename datafile 'D:\TBS001.DBF' to 'E:\TBS001.DBF'; 

5.使表空间联机
alter tablespace TBS001 online;  


[b]17.查询表空间的信息 [/b]

select * from dba_tablespaces;


[b]18.查询表空间的所有的数据文件 [/b]

select file_name,bytes from dba_data_files where tablesapce_name='TBS001  


[b]19.表空间的状态 [/b]

offline,online, read only, read write;


[b]20.其他常用的表空间 [/b]

1.索引表空间
2.undo表空间
3.临时表空间
4.非标准块的表空间
注:如果你将上面的这个表空间弄清楚了,可以考oracle 初级 或者 中级 证书了 要钱的哦!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值