Oracle数据块损坏的应急处理
DBA 最不想接到的一类告警是 ORA-01578: ORACLE data block corrupted。它意味着某个数据块物理损坏,访问到这个块的查询和 DML 全部失败,而同一个表里其他块上的数据看起来完好无损。
添加asm磁盘,rebalance过程报错ORA-27090
前几天给 ASM 磁盘组加盘,本来觉得是 routine 操作:盘怼上去,rebalance power 给上,盯着进度跑完就收工。结果这次栽了个不大不小的跟头,记录一下。事情的经过加完盘,rebalance 正常开跑,前半程都顺。眼看着快完工了,进度不动了——查操作进度,剩余时间已经显示 0。按理说时间归零就差临门一脚,可左等右等,这脚就是踢不进去,状态一直挂着,加盘始终不算成功。rebalan
由于oracle自主事务造成的死锁
在Oracle数据库中,自主事务(Autonomous Transaction)是指一个独立于当前事务执行的事务。它可以在不依赖于外部事务的情况下独立提交或回滚,而外部事务的状态不会受到影响。自主事务通常用于日志记录、触发器中的独立操作或需要在当前事务上下文之外执行的任务。
CHM导致的磁盘空间爆满
“叮!/oracle 目录使用率 100%!”作为一个数据库管理员,这行报警短信绝对比女朋友的“我们谈谈”还要让人心跳骤停。昨天我就经历了这么一遭。正准备摸鱼喝口咖啡,监控系统突然发难。上服务器一看,好家伙,/oracle 目录红得刺眼,直接顶满。这就好比你刚买的 512G 手机,一夜之间被塞满,还不知道是谁干的。01 案发现场:谁吃了我的空间?通常来说,Oracle 目录满了,嫌疑人无非就是那几
ORA-00600 [17114] 错误排查实录:一次由“新排序算法”引发的血案
在一次常规的数据库操作中,我们遇到了一个非常棘手的现象。当尝试为某个表创建索引时,SQL*Plus 会话被意外中断,并抛出了经典的“掉线”错误:ORA-03113。
记一次无备份无归档的数据库异常恢复记录
记一次某客户数据库异常恢复记录(无备份,无归档)数据库运行时异常宕机,并在重新启动后报如下错误:1、开启数据库时,提示ORA-01113,ORA-01110,然后recover这个数据文件报ORA-00742,ORA-003122、尝试设置隐含参数跳过报错alter system set "_allow_resetlogs_corruption"=
集群损坏,如何抢救抽取数据?
重要提示: AMDU是一个非常强大的底层工具,通常只在资深有经验的DBA的指导下使用,不当的操作可能会对存储造成进一步的损害。
GI&DB文件权限批量错误如何处理?
集群和数据库软件所有节点有时候可能被误操作chown -R,那么如何恢复正确的权限呢
1号数据文件坏块处理修复
一、模拟坏块环境:进入bbedcopy file 2 block 20 to file 1 block 520然后强制关闭数据库shutdown abort;再次打开数据库,如下报错(可以看到1号文件的520号块已被损坏):Reading datafile '/oracl
监听故障案例
背景:客户的某个业务系统,一节点监听只能注册VIP,public ip在重启完监听后,就算可以维持一段时间,但是过一会儿就掉了。排查流程:1、开启pmon trace Set PMON tracing to level 3 per the instructions. SQL>alter s
OraInventory目录不存在处理方法
一 oraInventory的作用oraInventory中记录了oracle安装目录的相关信息,通常在oracle软件安装过程中会自动创建,路径通常会在$ORACLE_BASE/oraInventory/,并在/etc/oraInst.loc中记录相关的路径信息,有时候我们的oracle目录是从另一套相似环境中tar过来的,这个时候是不会有oraInventory信息,如果此时数据库需要升级,或
域名解析导致连接故障案例一则
某客户的一个数据库连接卡顿,具体体现在:Lsnrctl status 要很久客户端连接 要很久Tnsping ip 要很久检查操作系统日志,无明显报错检查数据库日志,报错如下:Mon Jun 15 11:35:34 2020 WARN: ARC3: Terminating ARCH (pid 45650)&
ASM磁盘头损坏如何修复
磁盘头信息备份恢复 / 无备份修复一、 kfed 备份 / 恢复1 、备份kfed read /dev/data text=/tmp/data.head2 、模拟破坏[grid@rac1 ~]$ dd if=/dev/zero of=/dev/dat
如何通过GDB推进SCN来打开数据库
GDB是GNU项目开发的命令行调试工具,支持多种编程语言(C/C++、Go、Rust等),主要用于分析程序崩溃、逻辑错误和内存问题。它允许开发者在程序运行时检查内部状态(如变量值、调用栈),动态修改执行流程。在本案例中可用于调整推进数据库的SCN,来处理由于SCN问题无法打开的数据库。不过该方法适用于12C及以上的数据库。经测试发现,数据库 mount 和 open&
如何对DG进行增量恢复?
Rolling forward a standby database using RMAN Incremental Backup.模拟归档丢失的情况一 主库操作:查看当前归档停用归档传输alter system set log_archive_dest_state_2=defer; 切换归档alter system switch 
分区表truncate慢处理
初步分析truncate的实质是在不修改数据块的情况下,通过修改segment header的data_object_id,hwm,extent map,aux map等信息来实现清空表的目的,其中还涉及数据字典基表以及L1、L2位图块的修改,所以说truncate操作只是存储数据的数据块没有产生任何redo和undo,但是segment header,位图块,数据字典基表还是会产生redo和un
磁盘故障处理案例
背景:集群宕机以后,重启报错,DATADG1磁盘组无法启动1.手动挂起DATADG1磁盘组 报错1alter diskgroup datadg1 mount;后台ASM报错根据报错 found 0 disks 怀疑 是磁盘组里的磁盘有问题,没有启动2.查询磁盘状态1select name,path,STATE,MODE_STATUS from&nb