Oracle:表空间

本节总结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 

可以看到如下:
这里写图片描述

这里写图片描述

《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;

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值