【第21期】观点:人工智能到底用 GPU?还是用 FPGA?

UNDO Tablespace

原创 2013年12月05日 17:05:17
UNDO表空间用于存放UNDO数据,当执行DML操作(insert、update、delete)的时候,oracle会将这些操作的旧数据写入到UNDO段。

UNDO数据也称为回滚数据,用于确保数据的一致性。作用包括:
1、回退事务
2、读一致性
3、事务恢复
4、闪回查询


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
☆ 一个undo_segment  <<=============>>  多个undo_block    ☆
☆一个undo_segment <<==============>> 多个transaction      ☆
☆一个transaction       <<==============>>  一个undo_block     ☆
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆

undo管理的参数:
1、UNDO_MANAGEMENT
用于指定undo数据的管理方式。如果使用自动管理,必须设置为AUTO;如果手动管理,必须设置为MANUAL。
使用自动管理的时候,oracle会使用UNDO表空间管理UNDO数据;使用手动管理时,oracle会使用回滚段管理UNDO数据。

2、UNDO_TABLESPACE
用于指定例程所要使用的UNDO表空间。设置的时候,必须保证该表空间存在,否则会导致例程启动失败。
使用RAC的时候,因为一个UNDO不能由多个例程同时使用,所以必须为每个例程配置一个独立的UNDO表空间。

3、UNDO_RETENTION
用于控制UNDO数据的最大保留时间,其默认值为900秒。
即:一个transaction所属的undo_block,在undo_tablespace保留最长的时间是900秒。
     (必须保存900秒后才能被覆盖)
      SQL>Alter system set undo_retention=n;

===================================================================

★UNDO表空间和普通表空间的管理差不多★

建立UNDO表空间
1、使用CREATE DATABASE命令建立UNDO表空间
如果使用的是UNDO管理模式,但是没有指定UNDO TABLESPACE,那么建立数据库的时候oracle会自动生成名称为SYS_UNDOTBS的UNDO表空间。
SQL>create database db01
          . . .
          undo tablespace undo1
          datafile '/u01/oradata/undo1db01.dbf' size 20M
          autoextend on;

2、使用CREATE UNDO TABLESPACE 命令建立UNDO表空间
建立数据库以后,可以使用该命令建立UNDO表空间。
SQL>create undo tablespace undo1
         datafile '/u01/oradata/undo1db01.dbf'
         size 20M;


修改UNDO表空间
当事务用尽UNDO表空间后,增加数据文件
SQL>Alter tablespace undotbs
         add datafile '/u01/oradata/undotbs.dbf'
         size 30M
         autoextend on; 


切换UNDO表空间
启动并打开oracle数据库后,同一时刻只能使用一个UNDO表空间。可以切换UNDO表空间:
SQL>ALTER SYSTEM SET undo_tablespace=undotbs02;



删除UNDO表空间
当前使用的UNDO表空间不能被删除,如果要删除当前实例使用的UNDO,需要先切换,然后删除:
SQL>DROP TABLESPACE undotbs01;


===========================================================================

视图:
v$transaction                   当前活动的transaction
   used_ublk                        一个transaction用了多少block

v$undostat   undo 表空间的历史信息
     end_time             begin_time                    undoblks
     结束时间               开始时间            这段时间所需要的undo_block


☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆
计算undo表空间需要的大小

1.transaction一秒钟所需要的最多块数
①select max(undoblks/((end_time - begin_time)*24*3600)) from v$undostat

2.show parameter undo
②参数undo_retention

3.show parameter block
③参数db_block_size

undo表空间需要的最小空间=①×②×③
版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

ORA-30013: undo tablespace 'UNDOTBS1' is currently in use

有时候会因为超大的事务导致undo表空间太大,需要收缩一下。 create undo tablespace UNDOTBS2 datafile 'F:\APP\ADMINISTRATOR\DATA\...

ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1'

故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃; 问题分析:产生问题的原因主要以下两点: 1. 有较大的事务量让Oracle Undo自动扩展,产生过度占用磁盘空间的情况; 2. 有较大事务没有收缩或者没有提交所导制; 说 明:本问题在ORACLE系统管理中属于比较正常的一现象,日常维护多注意对磁盘空间的监控。 备 份: (如果没有在线事务,可以不做,关闭监听) $>exp vas/vas file=/opt/oracle/data_1.dmp,/opt/oracle/data_2.dmp log=/opt/oracle/date.lo

undo_tablespace

undo_tablespace Property              Description Parameter type        String Syntax               ...
  • royjj
  • royjj
  • 2013-01-28 22:07
  • 324

How to Shrink the datafile of Undo Tablespace

<span class="Apple-style-spa

一次恢复DB的过程:试用隐含参数_allow_resetlogs_corruption和重建undo tablespace

问题:某个现场做数据库恢复的时侯有一个问题:DB恢复需要这个归档日志文件1_33160.dbf,但是在备份中没有。SQL> recover database using backup controlf...

undo_tablespace

undo_tablespace Property &lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt; Description&lt;br&gt; Parameter type &lt;wbr&gt;&lt;wbr&gt;&lt;wbr&gt;&
  • wsql
  • wsql
  • 2013-01-28 22:07
  • 354

undo tablespace

1、查询现有undo表空间   SQL> select tablespace_name,contents from dba_tablespaces; TABLESPACE_NAME         ...

Oracle表空间(Tablespace)

1、查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from dba_tablespaces t, dba_data_files d where t.tablespace_name = d.tablespace_name group by t.tablespace_name; 2、查看表空间物理文件的名称及大小 select tablespace_name, file_id, file_name, rou

undo表空间不足,ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS2'

故障现象:UNDO表空间越来越大,长此下去最终数据因为磁盘空间不足而崩溃; 问题分析:本问题在Oracle系统管理中属于比较正常的一现象,产生问题的原因主要以下两点: 1. 有较大的事务量让Oracl...

undo tablespace

ORA-30036: unable to extend segment by 8 in undo tablespace 'UNDOTBS1' SELECT a.tablespace_name as tablespace_name, to_char(b.total/1024/1024,999999.99) as Total, to_char((b.total-a.free)/1024/1024,999999.99) as Used, to_char(a.free/1024/1024,999999.99) as Free,
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)