【Oracle】重做undo表空间
重做undo表空间
场景:
alert日志,报了如下错误:
[oraprod@arpinfo bdump]$ tail -f alert_PROD.log
Errors in file /ora1159/prod/proddb/9.2.0/admin/PROD_arpinfo/udump/prod_ora_8729.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4097], [], [], [], [], [], [], []
Fri Sep 6 10:08:56 2019
Errors in file /ora1159/prod/proddb/9.2.0/admin/PROD_arpinfo/udump/prod_ora_8785.trc:
ORA-00600: internal error code, arguments: [4097], [], [], [], [], [], [], []
Fri Sep 6 10:08:59 2019
Errors in file /ora1159/prod/proddb/9.2.0/admin/PROD_arpinfo/udump/prod_ora_8785.trc:
ORA-00603: ORACLE server session terminated by fatal error
ORA-00600: internal error code, arguments: [4097], [], [], [], [], [], [], []
原因
The following error is occurring in the alert.log right before the database crashes.
ORA-00600: internal error code, arguments: [4194], [#], [#], [], [], [], [], []
This error indicates that a mismatch has been detected between redo records and rollback (undo) records.
ARGUMENTS:
Arg [a] - Maximum Undo record number in Undo block
Arg [b] - Undo record number from Redo block
Since we are adding a new undo record to our undo block, we would expect that the new record number is equal to the maximum record number in the undo block plus one. Before Oracle can add a new undo record to the undo block it validates that this is correct. If this validation fails, then
an ORA-600 [4194] will be triggered.
其核心原因是:undo超过了它最大的量。重建undo表空间,此次unlimited。
1.查看undo的参数
SQL> show parameter undo;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 1800
undo_suppress_errors boolean FALSE
undo_tablespace string UNDOTBS7
2.修改undo_retention参数
SQL> ALTER SYSTEM SET undo_retention=900 SCOPE=BOTH;
ALTER SYSTEM SET undo_retention=900 SCOPE=BOTH
*
ERROR at line 1:
ORA-32001: write to SPFILE requested but no SPFILE specified at startup
3.以spfile的方式启动数据库
-------------------------------以spfile启动数据库
SQL> create spfile from pfile;
File created.
-------------------------------重启数据库
SQL> shutdown immediate;
SQL> startup
-------------------------------修改undo_retention
SQL> ALTER SYSTEM SET undo_retention=900 SCOPE=BOTH;
System altered.
4.创建UNDOTBS8表空间
SQL> create undo tablespace UNDOTBS8 datafile '/ora1159/prod/proddata/UNDOTBS8.dbf' size 256M autoextend on next 128M maxsize unlimited;
Tablespace created.
5.查询历史undo是否还有事务(包含回滚事务)
SELECT a.tablespace_name,a.segment_name,b.ktuxesta,b.ktuxecfl,
b.ktuxeusn||'.'||b.ktuxeslt||'.'||b.ktuxesqn trans
FROM dba_rollback_segs a, x$ktuxe b
WHERE a.segment_id = b.ktuxeusn
AND a.tablespace_name = UPPER('&tsname')
AND b.ktuxesta <> 'INACTIVE';
Enter value for tsname: UNDOTBS7
old 5: AND a.tablespace_name = UPPER('&tsname')
new 5: AND a.tablespace_name = UPPER('UNDOTBS7')
no rows selected
如果没有数据,可以进行undo表空间切换。
6.切换undo表空间
alter system set undo_tablespace='UNDOTBS8';
7.查询回滚段情况
原undo表空间的回滚段全部offline,可以删除相关表空间
SQL> select tablespace_name,segment_name,status from dba_rollback_segs;
TABLESPACE_NAME SEGMENT_NAME STATUS
------------------------------ ------------------------------ ----------------
SYSTEM SYSTEM ONLINE
UNDOTBS7 _SYSSMU2$ OFFLINE
UNDOTBS7 _SYSSMU3$ OFFLINE
UNDOTBS7 _SYSSMU4$ OFFLINE
UNDOTBS7 _SYSSMU5$ OFFLINE
UNDOTBS7 _SYSSMU6$ OFFLINE
UNDOTBS7 _SYSSMU7$ OFFLINE
UNDOTBS7 _SYSSMU8$ OFFLINE
UNDOTBS7 _SYSSMU9$ OFFLINE
UNDOTBS7 _SYSSMU10$ OFFLINE
UNDOTBS7 _SYSSMU11$ OFFLINE
TABLESPACE_NAME SEGMENT_NAME STATUS
------------------------------ ------------------------------ ----------------
UNDOTBS7 _SYSSMU12$ OFFLINE
UNDOTBS7 _SYSSMU13$ OFFLINE
UNDOTBS7 _SYSSMU14$ OFFLINE
UNDOTBS8 _SYSSMU15$ ONLINE
UNDOTBS8 _SYSSMU16$ ONLINE
UNDOTBS8 _SYSSMU17$ ONLINE
UNDOTBS8 _SYSSMU18$ ONLINE
UNDOTBS8 _SYSSMU19$ ONLINE
UNDOTBS8 _SYSSMU20$ ONLINE
UNDOTBS8 _SYSSMU21$ ONLINE
UNDOTBS8 _SYSSMU22$ ONLINE
TABLESPACE_NAME SEGMENT_NAME STATUS
------------------------------ ------------------------------ ----------------
UNDOTBS8 _SYSSMU23$ ONLINE
UNDOTBS8 _SYSSMU24$ ONLINE
24 rows selected.
8.下线原undo表空间
alter tablespace UNDOTBS7 offline;
9.删除原undo表空间
drop tablespace UNDOTBS7 including contents and datafiles;
10.修改undo retention
SQL> ALTER SYSTEM SET undo_retention=1800 SCOPE=BOTH;
参考文献
Step by step to resolve ORA-600 4194 4193 4197 on database crash (文档 ID 1428786.1)
【Oracle】重做undo表空间的更多相关文章
- [Oracle]理解undo表空间
一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中,而多个并行事物可以使用同一个回退段. ...
- 记一次ORACLE的UNDO表空间爆满分析过程
这篇文章是记录一次ORACLE数据库UNDO表空间爆满的分析过程,主要整理.梳理了同事分析的思路.具体过程如下所示: 早上收到一数据库服务器的UNDO表空间的告警邮件,最早一封是7:55发出的(监控作 ...
- 如何让Oracle释放undo表空间
如何让Oracle释放undo表空间 最佳答案 在日常的数据库维护和数据库编程中经常会遇到犹豫对大数据量做DML操作后是得ORACLE的undo表空间扩展到十几个G或者几十个G 但是这些表空间 ...
- oracle的undo表空间
undo表空间是Oracle特有的概念.undo表空间中会自动分配undo段,这些undo段用来保存事务中的DML语句的undo信息,也就是来保存数据在被修改之前的值.在rollback,实例恢复(回 ...
- Oracle中undo表空间的切换
查看操作系统: SQL> !cat /etc/redhat-releaseRed Hat Enterprise Linux Server release 7.4 (Maipo)查看数据库版本: ...
- oracle重建undo表空间
create undo tablespace UNDOTBS2 datafile 'D:\oracle\product\10.2.0\oradata\ttonline\UNDOTBS02.DBF' s ...
- 监控和管理Oracle UNDO表空间的使用
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...
- Oracle undo 表空间管理 (摘DAVID)
Oracle 的Undo有两种方式: 一是使用undo 表空间,二是使用回滚段. 我们通过 undo_management 参数来控制使用哪种方式,如果设为auto,就使用UNDO 表空间,这时必须要 ...
- (转载)undo表空间
对Oracle数据库UNDO表空间的监控和管理是我们日常最重要的工作之一,UNDO表空间通常都是Oracle自动化管理(通过undo_management初始化参数确定):UNDO表空间是用于存储DM ...
随机推荐
- 海关单一窗口程序出现网络/MQ问题后自动修复处理
单一窗口切换了2年多了,由于RabbitMQ或者网络的不稳定,或者升级或者网络调整,等等诸多问题导致了海关单一窗口程序会不定期的出现文件及回执自动处理的作业停止的问题. 最近终于想明白了,把日志监控起 ...
- 英语chrismatite黄蜡石chrismatite单词
黄蜡石chrismatite的原岩均为硅质岩,各种原岩受到构造变动.火山活动.热液作用等影响,产生复杂的物理和化学变化,包括重结晶.热变质等,导致矿物成分及结构构造的变化,后受构造变动的影响,岩石露出 ...
- ES6之Proxy 的巧用
摘要: Proxy的骚操作. 作者:前端小智 原文:Proxy 的巧用 Fundebug经授权转载,版权归原作者所有. Proxy 介绍 使用Proxy,你可以将一只猫伪装成一只老虎.下面大约有6个例 ...
- Hive的数据倾斜
目录 什么是数据倾斜 Hadoop框架的特性 主要表现 容易数据倾斜的情况 产生数据清洗的原因 业务场景 空值产生的数据倾斜 不同数据类型关联产生数据倾斜 大小表关联查询产生数据倾斜 一.什么是数据倾 ...
- MySQL循环日期
DROP PROCEDURE IF EXISTS `insertManyDate`$$ CREATE DEFINER=`root`@`%` PROCEDURE `insertManyDate`(IN ...
- I2C 挂死,SDA一直为低问题分析【转】
转自:https://blog.csdn.net/winitz/article/details/72460775 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...
- Alpha2项目的测试
这个作业属于哪个课程 课程的链接 这个作业的要求在哪里 作业要求的链接 团队名称 西柚三剑客 这个作业的目标 -测试其他团队的作品,并进行体验总结 姓名 学号 团队名称 段小刚 20173106231 ...
- Windows隐藏用户小技巧
0x01 前言 本文目的在于对于Windows账户访问与控制的技术理论进行分析与总结,熟悉了解Windows账户的特性及相关操作,并依此进行Windows账户的相关实验,进行实验记录与总结.通过本文记 ...
- 笔试12:Bootstrap知识
BootStrap Bootstrap,来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,它简洁灵活,使得 Web 开发更加快捷. ...
- fatal error C1083: 无法打开包括文件: “Halcon.h”: No such file or directory
这个文件是有包括的.但编译时报错. 解决方法:我把debug模式改为release模式就好了.