Oracle学习——表空间管理(一)

表空间基本概念

数据库可以划分为若干的逻辑存储单元,这些存储单元被称为表空间。

主要的表空间有:

(1)大文件表空间(Bigfile Tableplace)

        大文件表空间,它只能包含一个大文件,但文件大小可以达到4GB个数据块。

        大文件表空间可以是数据文件完全透明,即可以直接对表空间进行操作而不考虑底层的数据文件。

        使用大文件表空间可以是表空间成为磁盘空间管理、备份和恢复等操作的主要单元,同时简化了对数据文件的管理。

注意:在创建表空间是,系统默认创建小文件表空间(Simallfile Tablespace),SYSTEM和SYSAUX表空间只能是小文件表空间。一个Oracle数据库中可能同时包含大文件和小文件表空间。

(2)系统表空间(System Tablespace)

        每个Oracle数据库都包含一个SYSTEM表空间,当数据库创立时,SYSTEM表空间会自动创建。当数据库打开时,SYSTEM表空间始终在线。

        SYSTEM表空间中包含整个数据库的数据字典表。

(3)辅助表空间(SYSAUX Tablespace)

        数据库组件将SYSAUX表空间作为存储数据的默认位置,因此当数据库创建或升级时,SYSAUX表空间会自动创建,Oracle数据库服务器不允许删除SYSAUX表空间,也不能对其进行改名操作。

(4)还原表空间(Undo Tablespace)

        每个数据库都可以包含多个undo表空间。

        在自动撤销管理模式中,每个Oracle实例都指定了一个(且只有一个)undo表空间。撤销的数据在undo表空间中用undo区间来管理,undo区间有数据库自动创建并维护。

        在Oracle中,可以对数据库的添加,修改和删除等操作定义在事物(Transcation)中。事物中的数据库是可以撤销的,当事物中的数据库操作运行时,此事物绑定在当前的undo表空间中的一个undo区间中。

        事物中对数据库的改变被保存在undo表空间中,当执行回滚操作时,可以据此恢复数据。

(5)临时表空间(Temporary Tablespace)

        如果系统表空间是本地的,则在创建数据库时至少要创建一个默认的临时表。如果删除所有的临时表空间,则SYSTEM表空间将被用作临时表空间。

(6)在线和离线表空间

        除了 SYSTEM表空间外,数据库管理员可以将其他任何表空间设置为在线(Online)和离线(Offline)状态。无论数据库是否会被打开,都可以设置表空间的在线和离线状态。当数据库打开后,SYSTEM表空间必须始终在线,因为数据字典必须一直有效。

        表空间通常都是在线的,这样表空间中的数据就可以对数据库用户有效。但是在数据库备份、维护、恢复时,数据库管理员可以将表空间设置为离线状态。当表空间处于离线状态时,Oracle不允许任何SQL语句访问数据库表空间中的数据。

        当表空间离线后又重新在线时,此过程将被记录在SYSTEM表空间的数据字典中。如果表空间在关闭数据库时处于离线状态,则重新打开数据库时,他依然保持离线状态。DBA只能在创建表空间的数据库中设置表空间为在线状态,因为必须在数据库SYSTEM表空间中记录表空间的状态信息。

    当发生特定的错误时,Oracle可以自动地将表空间切换到离线状态。例如:数据库的写进程DBWn多次试图写数据文件失败。

对表空间的简单操作:

1、查看表空间:

    使用sys用户以SYSDBA用户的身份登录到SQLPLUS中,执行以下命令:

        (1)查看视图结构:

        desc V$tablespace;

        

   如上图:

字段名

数据类型

说明

TS#

NUMBER

表空间编号

NAME

VARCHAR2(30)

表空间名称

INCLUDED_IN_DATABASE_BACKUP

VARCHAR2(3)

表明该空间是否包含在完整数据库备份中

BIGFILE

VARCHAR2(3)

是否为大文件表空间

FLASHBACK_ON

VARCHAR2(3)

表明该表空间是否参与FLASHBACK DATABASE操作。

ENCRYPT_IN_BACKUP

VARCHAR2(3)

指定备份数据库是否被加密。ON表示表空间级别启动数据库加密功能。OFF表示表空间级别关闭数据库加密功能。NULL表示在表空间级别未明确指定是否启动或关闭数据库加密功能。

CON_ID

NUMBER

容器数据库编号。


       (2)查看表空间信息

            select * from v$tablespace;

            

2.查看表空间组及其所属的表空间信息,可以通过使用视图DBA_TABLESPACE_GROUPS。

3.查看表空间中所包含的段信息,可以通过使用视图DBA_SEGMENTS.

4.查看表空间中空闲区间的信息,可以通过使用视图DBA_FREE_SPACE。























  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值