搜索
首页数据库mysql教程UNDO表空间与Undo的认识

undo的三大作用:1.提供一致性读。2.回滚事务。3.实例恢复 查看表空间是属于temporary,undo还是permanent? select tablespace_name,contents,status from dba_tablespaces where tablespace_name like '%UNDO%'; 1.管理Undo表空间--创建新的Undo表空间CREATE

undo的三大作用: 1.提供一致性读。2.回滚事务。3.实例恢复 查看表空间是属于temporary,undo还是permanent? select tablespace_name,contents,status from dba_tablespaces where tablespace_name like '%UNDO%';
1.管理Undo表空间 --创建新的Undo表空间 CREATE UNDO TABLESPACE UNDOTBS2 datafile '/paic/g2bh8060/dev/xqd/oradata/hd02ntlf/undotbs2_01.dbf' size 500m autoextend on RETENTION NOGUARANTEE; 默认是NOGUARANTEE --为Undo表空间增加文件 alter tablespace undotbs1 add datafile '/u01/oracle/undo01.dbf' size 500m autoextend on; alter tablespace undotbs1 add datafile '+DATA_MIDG' size 500m autoextend on; 查询与更改undo表空间是否retention guarantee select tablespace_name,RETENTION from dba_tablespaces where tablespace_name like '%UNDO%'; ALTER DATABASE UNDOTBS01 RETENTION GUARANTEE|NOGUARANTEE; 更改系统默认表空间 show parameter undo_tablespace alter system set undo_tablespace=undotbs2; undo表空间删除 drop tablespace undotbs1 INCLUDING CONTENTS AND DATAFILES; undo表空间更名 alter tablespace undotbs2 rename to undotbs1; 重建undo表空间 1.因为延迟段创建的原因,可以先将参数取消; show parameter segment alter system set deferred_segment_creation=false; 2.创建undotemp表空间 3.alter system set undo_tablespace=undotemp;(如果延迟段创建特性启用了,会提示表空间不存在) 4.旧的undotbs1 drop掉。 旧的表空间现在是pending offline状态,等待offline,要等其上的事务都结束后才能真正offline。 ORA-30013: undo tablespace 'UNDOTBS1' is currently in use 5.新的rename成旧的。
2.认识UNDO undo相关参数: undo_management AUTO --9i以后我们undo_management都用auto undo_tablespace UNDOTBS2 --可以动态指定系统undo表空间 undo_retention 900 --单位秒,默认900 undo_retention是针对select操作的,比如闪回查询,我们一般希望能闪回查询3小时内的数据。 事务中的undo块都是active的,事务结束后的块是inactive的,inactive的undo块在过了undo_retention 指定的时间后,就会变成expired。 比如DB最长的查询也在5分钟内,那我undo_retention只要设成300,那么这个select会遭遇01555快照太旧的可能性就比较小,但不保证。 ALTER SYSTEM SET undo_retention=10800 SCOPE=BOTH; 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要指定一个UNDO 表空间。 如果设为manual,系统启动后使用rollback segment方式存储undo信息。如果系统没有指定undo_management,那么系统默认以manual方式启动,即使设置了auto方式的参数,这些参数将被忽略。 假如数据库中用RETENTIONGUARANTEE子句配置了保证保留撤销。如果撤销表空间太小不能满足使用它的所有活动事务,那么会发生以下情况: 1、如果撤销表空间用完85%,Oracle将发布一个自动表空间警告 2、当撤销表空间用完97%时,Oracle将发布一个自动表空间严重警告 3、所有DML语句将不允许,并且会接收到一个空间超出错误 4、DDL语句允许继续执行 所以PA数据库undo表空间都是NOGUARANTEE,无论生产还是测试库。 RETENTIONGUARANTEE的情况下,undo_retention秒数内的undo都不能被覆盖,所以如果expired与freed的块几乎没了,Undo表空间也不能自动扩展,就会报上面的错误。 undo_retention参数的作用,在RETENTIONGUARANTEE的情况下,可以作为是否保证undo块不被覆盖的分界线,而在没有设retention的情况下,例如PA的情况,就是作为是否被优先覆盖的分界线。所以此处只有两个优先级,在线的任何一边,都是随机随意地没优先级地覆盖的。 Undo表空间中已经分配给表空间的extend大小。 @tsfree 即 select d.tablespace_name, space "SUM_SPACE(M)", blocks sum_blocks, space - nvl(free_space, 0) "USED_SPACE(M)", round((1 - nvl(free_space, 0) / space) * 100, 2) "USED_RATE(%)", free_space "FREE_SPACE(M)" from (select tablespace_name, round(sum(bytes) / (1024 * 1024), 2) space, sum(blocks) blocks from dba_data_files group by tablespace_name) d, (select tablespace_name, round(sum(bytes) / (1024 * 1024), 2) free_space from dba_free_space group by tablespace_name) f where d.tablespace_name = f.tablespace_name(+) order by 1; 其中USED_SPACE(M)里面,都是已经分配给表空间使用的。里面有4钟状态的undo块。 undo块存在的四种状态 select tablespace_name,status,sum(bytes)/1024/1024 mb from dba_undo_extents group by tablespace_name,status; active:表示正在使用该undo的事务还没有commit或rollback UNEXPIRED(inactive):表示该undo上没有活动的事务,该状态的undo可以被其他事务覆盖。 expired:表示该undo块持续inactive的时间超过undo_retention所指定的时间 freed:表示该undo块内容是空的,从来没有被使用过。 一个事务申请Undo表空间: 1.如果undo表空间是可以自动扩展的,首先自动扩展。 2.如果没得扩展了,就找free的区用。 3.没有free的区了,就找expired的undo区用。 4.没有expired的,就找unexpired的,此时这些区还没过undo_retention时间,所以会导致闪回查询无法保证使用咯。 5.还是没有的话,报错,active的区肯定不会被使用的。 Retention Guarantee模式下,一个事务申请undo表空间只走上述的第1,2,3点。3点走完后也申请不到Undo空间就报错。也就是说undo_retention时间内的undo块一定不会被覆盖。
往数据库中做导数操作,批量DML而又长时间不能commit的操作的时候,要给Undo表空间加几个文件,并且开自动扩展,保持监控
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL:初学者的基本技能MySQL:初学者的基本技能Apr 18, 2025 am 12:24 AM

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL:结构化数据和关系数据库MySQL:结构化数据和关系数据库Apr 18, 2025 am 12:22 AM

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL:解释的关键功能和功能MySQL:解释的关键功能和功能Apr 18, 2025 am 12:17 AM

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL的目的:与MySQL数据库进行交互SQL的目的:与MySQL数据库进行交互Apr 18, 2025 am 12:12 AM

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

初学者的MySQL:开始数据库管理初学者的MySQL:开始数据库管理Apr 18, 2025 am 12:10 AM

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA

MySQL的角色:Web应用程序中的数据库MySQL的角色:Web应用程序中的数据库Apr 17, 2025 am 12:23 AM

MySQL在Web应用中的主要作用是存储和管理数据。1.MySQL高效处理用户信息、产品目录和交易记录等数据。2.通过SQL查询,开发者能从数据库提取信息生成动态内容。3.MySQL基于客户端-服务器模型工作,确保查询速度可接受。

mysql:构建您的第一个数据库mysql:构建您的第一个数据库Apr 17, 2025 am 12:22 AM

构建MySQL数据库的步骤包括:1.创建数据库和表,2.插入数据,3.进行查询。首先,使用CREATEDATABASE和CREATETABLE语句创建数据库和表,然后用INSERTINTO语句插入数据,最后用SELECT语句查询数据。

MySQL:一种对数据存储的初学者友好方法MySQL:一种对数据存储的初学者友好方法Apr 17, 2025 am 12:21 AM

MySQL适合初学者,因为它易用且功能强大。1.MySQL是关系型数据库,使用SQL进行CRUD操作。2.安装简单,需配置root用户密码。3.使用INSERT、UPDATE、DELETE、SELECT进行数据操作。4.复杂查询可使用ORDERBY、WHERE和JOIN。5.调试需检查语法,使用EXPLAIN分析查询。6.优化建议包括使用索引、选择合适数据类型和良好编程习惯。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
1 个月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
1 个月前By尊渡假赌尊渡假赌尊渡假赌
威尔R.E.P.O.有交叉游戏吗?
1 个月前By尊渡假赌尊渡假赌尊渡假赌

热工具

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具

PhpStorm Mac 版本

PhpStorm Mac 版本

最新(2018.2.1 )专业的PHP集成开发工具

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

适用于 Eclipse 的 SAP NetWeaver 服务器适配器

将Eclipse与SAP NetWeaver应用服务器集成。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具