表空间

表空间

 表空间是数据库的逻辑组成。从物理上面讲数据库中的数据放在磁盘的数据文件中。(数据文件存放在Oracle安装路径下:D:\app\JSJ\oradata\orcl中,**.ctl 控制文件,**.dbf 数据文件,**.log 日志文件);

从逻辑上讲,数据库文件放在表空间中,表空间是由一个或者多个数据文件组成。

 

Oracle中逻辑结构包括表空间、段、区、块。数据库是由表空间组成,表空间是由段组成,段是由区,区由块组成。

 

表空间是从逻辑上组织和管理数据库的数据。表空间可以达到以下效果:

表空间的作用帮助DBA用户完成以下工作:

1. 决定数据库实体的空间分配;

2. 设置数据库用户的空间份额;

3. 控制数据库部分数据的可用性;

4. 分步数据于不同的设备之间以改善性能;

5. 备份和恢复数据;

 

表空间的使用

Systemsys默认使用system表空间;

普通用户默认是使用users表空间;

如果用户想要创建表空间,必须具备create tablespace权限。

 

创建表空间:

 Create tablespace 表空间名字 datafile ‘数据文件地址’ size 空间大小 uniform size 区的大小;

Egcreate tablespace a datafile ‘D:\oraTest.dbf’ size 10m uniform size 256k;

 

 

使用表空间

在表空间中创建表

 

create table people(

   no number(5),

   name varchar2(20),

job varchar2(20)

) tablespace a;

改变表空间的状态

当创建好表空间后,表空间默认是联机状态,此时表空间是可以被读写的。

表空间一般常用四种状态:联机online、脱机offline、只读read only、可读可写状态read write

 

使表空间脱机(表空间脱机后,无法对表空间中的数据进行读写)

SQL> conn sys/system as sysdba;

SQL> alter tablespace a offline;

 

使表空间脱机之后,再向里面插入数据,提示:此时无法读取文件。

 

 

使表空间连接(表空间联机后,可以对表空间中数据进行读写)

SQL> conn sys/system as sysdba;

SQL> alter tablespace a online;

 

使表空间只读(表空间为只读时,用户只可以在该表空间上执行select操作)

SQL> conn sys/system as sysdba;

SQL> alter tablespace a read only;

 

只可以进行select 操作,不可以进行insert之类的操作。

 

 

使表空间可读可写(表空间为可读可写时,用户可以在该表空间上执行所有操作)

SQL> conn sys/system as sysdba;

SQL> alter tablespace a read write;

 

 

表空间相关 数据字典查询

Ø 根据表名查询该表所在的表空间;emp

Select * from user_tables where table_name=’EMP’;

注:一定要在该表所在的用户下查询

 

Ø 根据表空间的名字查询该表空间中有些表

Select* from all_tables where tablespace_name=’A’;

 

根据数据文件名确定该数据文件和哪个表空间管理

SQL> conn sys/system as sysdba;

SQL>Select * from dba_data_files where file_name=’D:\ORATEST.DBF’;

 

根据表空间名字确定该表空间中有哪些数据文件

Select * from dba_data_files where tablespace_name=’A’;

 

查询当前用户所有的表空间。

Select tablespace_name from user_tables;

 

表空间的删除

删除表空间一般都要是dba权限的用户,或者具备drop tablespace权限的用户。

drop tablespace 表空间名 including contents and datafiles;

including contents :删除表空间时删除表空间中的所有数据对象。

datafiles:删除表空间时把数据文件也删除。

 

案例:

drop tablespace a including contents and datafiles;

 

表空间的拓展

拓展表空间的常用方法:

更改表空间数据文件大小

SQL> conn sys/system as sysdba;

SQL > alter database datafile ‘D:\ORATEST.DBF’ resize 20m;

 

给表空间增加数据文件

SQL> conn sys/system as sysdba;

SQL> alter tablespace a add datafile ‘D:\oraTest2.dbf’ size 20m;

 

设置文件自动增长

SQL> conn sys/system as sysdba;

SQL> alter database datafile ‘D:\ORATEST.DBF’ autoextend on next 10m maxsize 500m;

 

移动数据文件

 

第一步:确定数据文件属于哪个表空间。

SQL> conn sys/system as sysdba;

SQL> select * from dba_data_files where file_name=’D:\ORATEST.DBF’;

SQL> select tablespace_name from dba_data_files where file_name=’D:\ORATEST.DBF’;

 

第二步:使表空间脱机

SQL> alter tablespace a offline;

 

第三步:移动数据文件

1) 在操作系统中直接移动

2) cmd窗口中输入。move D:\ORATEST.DBF E:\ORATEST.DBF

 

 

第四步: alter tablespace 命令

SQL> alter tablespace a rename datafile ‘D:\ORATEST.DBF’  to E:\ORATEST.DBF;

 

第五步: 使表空间联机

SQL> alter tablespace a online;

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值