您的位置:首页 > 数据库 > Oracle

Oracle:表空间

2016-06-15 11:44 453 查看
本节总结oracle数据库表空间的相关内容如下:

表空间:

  表空间用于从逻辑上组织数据库的数据,数据库逻辑上由一个或是多个表空间组成的,通过表空间可以达到以下的作用:

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

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

3.尤其在海量数据时索引表空间会加快io的速度;

  表空间 段 区 块

表空间有多个段组成,每一个段又由区组成,区又由块组成,表空间其实是有数据文件组成而,数据文件其实就是一个磁盘上的空间。

《1》查看ORACLE中自带的EMP表所属的表空间:

  第一种查看方式:

SQL> select tablespace_name,table_name from user_tables where table_name='EMP';
TABLESPACE_NAME                TABLE_NAME
------------------------------ ------------------------------
USERS                          EMP


注释:user_tables:属于静态数据字典中的其中记录中该用户可用的表的信息,例如表名、所属的表空间、表的大小等一些列信息。我们可以通过命令:desc user_tables;进行查看;

可见其归属于users这个表空间:

  第二种查看方式:直接在emp表上查看编辑就可以:



《2》建立自己的表空间:

首先:该用户需要具有dba或者create tablespace的权限;

sql>>create tablespace tab_space datafile 'e:\space001.dbf' size 10m autoextend on next 5m maxsize 25m uniform size 128k;
result>>Tablespace created
cc37


可以看到如下:





《3》删除表空间;

注意including后面的信息;

sql>>drop tablespace tab_space including contents and datafiles;


《4》创建用户并指向表空间:

sql>>create user QIAN identified by qian default tablespace tab_space;
resutl>>User created


《5》使用表空间:

5.1把创建的表放到指定的表空间下:

sql(scott)>>create table stuinfo(id number(5),name varchar2(20),age number(3)) tablespace tab_space;


result:


sql(system)>>create table stuinfo(id varchar2(10),name varchar2(20)) tablespace tab_space;```


result:


5.2:使表空间脱机(连机):

alter tablespace tab_space offline[online];


5.3:改变表空间只读属性,不能执行update delete insert语句

alter tablespace tab_space read only;
alter tablespace tab_space read write;


《6》扩展表空间:

当我我们的表空间满了时候。就需要扩容:比如出现如下信息、就需要扩容

sql>>insert into stuinfo select * from stuinfo;
error>>insert into stuinfo select * from stuinfo
ORA-01653: unable to extend table SCOTT.STUINFO by 16 in tablespace TAB_SPACE


6.1:增加数据文件

sql(system)>>alter tablespace tab_space add datafile 'e:\space002.dbf' size 20m;
result>>Tablespace altered


注释:可以看到在e盘下多了个space002.dbf数据文件,并且在插入数据时就可以了;

6.2:增加文件的大小

alter tablespace tab_space 'e:\space001.dbf' resize 50M;


6.3:设置文件的自动增加

alter tablespace tab_space 'e:\space001.dbf' autoextend on next 10M maxsize 100M


《7》移动数据文件:

比如当磁盘出现损坏或者我们需要备份时,可以移动数据文件

1:确定你想要移动数据文件所在的表空间:
sql>>select tablespace_name from dba_data_files      where file_name='e:\space001.dbf';
2:使表空间脱机:
sql>>alter tablespace tab_space offline;
3.使用命令移动数据文件到指定的目标位置
sql>>host move e:\space001.dbf f:\space001.dbf;
4.移动数据文件:
在物理上移动了数据后,还必须对数据库文件进行逻辑修改
sql>>alter tablespace tab_space rename datafile    'e:\space001.dbf' to 'f:\space001.dbf'
5.使得表空间联机
sql>>alter tablespace spaceName online;


“`
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 表空间