Oracle学习笔记之表空间管理

        表空间用于存放数据库对象(如表、索引等)。一个数据库逻辑上由一个或者多个表空间组成。表空间由一个或者多个数据文件(物理结构)组成。数据库对象实际上存放在数据文件中,数据文件是数据的物理载体。表空间的尺寸是组成这个表空间的所有数据文件的尺寸之和。 数据库中有以下类型的表空间:永久表空间(常规表空间)、临时表空间、回滚表空间。

1、创建表空间

CREATE TABLESPACE userdb DATAFILE ‘F:/NEWDB\ZDB\userdata1’ SIZE 200M  AUTOEXTEND ON NEXT 20M MAXSIZE UNLIMITED LOGGING EXTENT MANAGEMENT LOCAL SEGMENT SPACE MANAGEMENT AUTO DEFAULT;

注:

EXTENT MANAGEMENT LOCAL表示这是一个本地管理的表空间。使用位图对区进行管理,是oracle推荐使用的方式。

SEGMENT SPACE MANAGEMENT AUTO DEFAULT标识使用段的自动管理,使用位图来管理段中的数据块。

一个数据库有多个数据文件。每个数据文件都是一个操作系统文件。数据文件是真正存放数据库的数据。数据库中的表(table)、索引(indexes)的数据,物理上存放在数据文件中。一个数据文件有多个操作系统块组成。一个数据文件只能属于一个表空间,一个数据文件只能属于一个数据库。数据文件可以被设置成自动扩展,当文件上的空间使用完以后,它可以根据需要自动扩展。

2、 扩展表空间

增加表空间中数据文件的大小

ALTER DATABASE DATAFILE ‘d:\new\product1’ RESIZE 1000M;

将数据文件设置成自动扩展

ALTER DATABASE DATAFILE ‘d:\new\product’ AUTOEXTEND ON NEXT 5M MAXSIZE UNLIMITED;

往表空间中增加数据文件

ALTER TABLESPACE userdb ADD DATAFILE ‘d:\new\p2.ora’ SIZE 100M;

3、 表空间离线\在线

表空间离线的三种方式:

NORMAL:常规离线方式,会执行校验点(checkpoint),是一种比较安全的方式。

ALTER TABLESPACE userdb OFFLINE NORMAL;

TEMPORARY:数据文件有错误时,应使用这种方式。

ALTER TABLESPACE userdb OFFLINE TEMPORARY;

IMMEDIATE:离线数据文件,但是不会产生校验点,表空间重新在线时,需要执行恢复。

ALTER TABLESPACE userdb OFFLINE IMMEDIATE.;

使表空间在线

ALTER TABLESPACE userdb ONLINE;

注意:SYSTEM表空间不能离线,并且表空间离线具有一定的风险性。

4、 表空间重命名

ALTER TABLESPACE userdb RENAME TO userdb2;

注意:

不能重命名SYSTEM、SYSAUX表空间

 如果表空间离线或者表空间中有数据文件离线,表空间不能被重命名。

5、 使表空间只读\读写

ALTER TABLESPACE userdb READ ONLY;

ALTER TABLESPACE userdb READ WRITE;

6、 删除表空间

删除表空间必须具有DROP TABLESPACE权限。如果表空间中有内容,必须使用选项INCLUDING CONTENTS.

DROP TABLESPACE userdb [INCLUDING CONTENTS AND DATAFILES]

7、 大文件表空间

CREATE BIGFILE TABLESPACE biguserdb DATAFILE ‘F:\NEWDB\ZDB\userdata! SIZE 50G;

8、 表空间加密

加密算法:3DES168、AES128、AES192、AES256.

CREATE TABLESPACE securespace DATAFILE ‘F:\NEWDB\ZDB\userdata1’ SIZE 100M ENCRYPTION USING ‘AES256’ DEFAULT STORAGE(ENCRYPT);

9、 其他

查询数据库中表空间

SELECT TABLESPACE_NAME FROM DBA_TABLESPACE;

查询表空间的数据文件

SELECT FILE_NAME FROM DBA_DATA_FILES WHERE TABLESPACE_NAME=’SYSTEM’;

查询创建表空间的sql语句

SELECT DBMS_METADATA.GET_DDL(‘TABLESPACE’, ‘SYSTEM’) FROM DUAL;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值