第二十三讲--Undo表空间概述

本文深入探讨了数据库管理中undo表空间的功能与特性,包括其与普通表空间的区别、如何查看undo表空间及其组成部分,以及undo表空间在数据库操作中的作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

         数据库建好以后自动有undo表空间,undo表空间里自动有undo段(这一点与普通表空间不同)。Undo段里的区是自动分配的(这一点和普通表空间一样),块也是自动使用的。

Undo表空间与普通表空间的不同:

1.      undo段是自动生成的,自动维护的;

2.      oracle自动使用undo段,普通表空间的段是手工创建的也是手工使用的;

 

查看undo表空间:

SQL> showparameter undo_tablespace;

 

NAME                                 TYPE                                          VALUE

------------------------------------               --------------------------------           ------------------------------

undo_tablespace                      string                                             UNDOTBS1

 

查看undo表空间由哪些数据文件组成:

SQL> selectfile_name, bytes/1024/1024 from dba_data_files where tablespace_name like'%UNDOTBS%';

 

FILE_NAME                                                                                                                               BYTES/1024/1024

--------------------------------------------------------------------------------                                     ---------------

/u01/app/oracle/oradata/JIAGULUN/datafile/o1_mf_undotbs1_7p5b155m_.dbf                  35

 

查看undo表空间里有哪些段:

SQL> select * fromv$rollname;

 

       USN NAME

----------------------------------------

         0 SYSTEM

         1 _SYSSMU1$

         2 _SYSSMU2$

         3 _SYSSMU3$

         4 _SYSSMU4$

         5 _SYSSMU5$

         6 _SYSSMU6$

         7 _SYSSMU7$

         8 _SYSSMU8$

         9 _SYSSMU9$

        10 _SYSSMU10$

 

11 rows selected.

有11个段,其中1到10段在UNDOTBS1表空间里,而0号段在系统表空间(system表空间)里面。

当创建一张表的时候,表的各种信息会写到数据字典里面,也就是记录到system表空间里。也就是说,对数据库的对象进行增加和删除的时候,oracle会操作数据字典,此时会用到system表空间,操作system表空间时oracle会用到system里的undo段(0号段)。如果undo表空间坏了,oracle可能会使用system的undo段。

 

查看一个undo段:

SQL> selectsegment_name, blocks, extents from dba_segments where segment_name='_SYSSMU1$';

 

SEGMENT_NAME                                                   BLOCKS                                             EXTENTS

 

------------------                       -------------------------                             --------------

_SYSSMU1$                                                              24                                                         3                       

 

_SYSSMU1$段有3个区,24个块

 

Oracle整个undo这块都是自动管理的。

SQL> show parameter undo;

NAME                                 TYPE                                        VALUE

------------------------------------ --------------------------------           ------------------------------

undo_management                      string                                         AUTO

undo_retention                         integer                                               900

undo_tablespace                                 string                                           UNDOTBS1
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值