Oracle备份失败处理,看这一篇就够了!

作者:IT邦德
中国DBA联盟(ACDU)成员,10余年DBA工作经验,
Oracle、PostgreSQL ACE
CSDN博客专家及B站知名UP主,全网粉丝10万+
擅长主流Oracle、MySQL、PG、高斯及Greenplum备份恢复,
安装迁移,性能优化、故障应急处理

文章目录

  • 前言
    • 1.RMAN配置错误
      • 1.1 故障现象
      • 1.2 故障排查
      • 1.3 故障处理
    • 2.物理删除归档
      • 2.1 故障现象
      • 2.2 故障处理
      • 2.3 故障分析
    • 3.Oracle坏快
      • 3.1 故障现象
      • 3.2 故障分析
      • 3.3 故障处理
    • 4.数据库结构错误
      • 4.1 故障现象
      • 4.2 故障分析
      • 4.3 故障处理
    • 5.总结

前言

因为最近故障频发,这里带大家盘点生产运维中Oracle备份失败的一些原因

1.RMAN配置错误

1.1 故障现象

客户反馈备份失败,因为使用第三方的备份软件,从备份的报错信息来看,报ORA-00234: error in identifying or opening snapshot or copy control file

1.2 故障排查

首先排查是否是由于带库引起备份问题,
尝试直接在磁盘上备份,执行如下命令
run {
allocate channel c1 type disk;
backup current controlfile format '/tmp/db_ctl_%d_%T_%s_%p.bak'; 
release channel c1;
}

执行后发现报同样报错,该报错指向控制文件快照文件
查询 RMAN 相关文件快照路径
查看发现控制文件快照路径为ASM 磁盘组,
未写文件名,怀疑是未写文件名引起

1.3 故障处理

修改控制文件快照路径
RMAN> CONFIGURE SNAPSHOT
CONTROLFILE NAME TO ‘+oradata/snapcf_orcl.f’;
调整后发现备份恢复正常

注意:
1.控制文件的快照文件必须能够被所有节点的数据实例访问到,
并且必须放在共享的位置。否则,使用RMAN进行备份控制文件的时候会报错
2.建议对参数调整后,建议经各方面测试验证无误后再修改

2.物理删除归档

2.1 故障现象

根据客户反馈,因为岁修产生了大量的归档,手动物理删除归档后,备份就失败,
报错如下:ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory

2.2 故障处理

进行归档日志的校验;
RMAN>crosscheck archivelog all;
删除失效的归档日志;
RMAN>delete expired archivelog all;

2.3 故障分析

数据库的archivelog文件被手工删除,但是控制文件仍然记录了归档日志的备份信息,rman做归档备份时还是要备份被无意删除的文件,但文件已经被物理删除,磁盘上找不到就会报错,通过rman crosscheck archivelog all也可以看到文件已经失效,所以备份之前先将归档文件从控制文件中删除,然后备份就会成功;

–正确删除归档的命令应该是
1.删除指定日期前日志
delete archivelog all completed before ‘SYSDATE - 3’;
2.删除log sequence为36及36之前的所有归档日志
delete archivelog until sequence 36;
3.删除所有归档
delete noprompt archivelog all;

3.Oracle坏快

3.1 故障现象

使用的是第三方的备份软件,近期备份一直失败,造成归档无法删除,归档磁盘空间岌岌可危,从备份软件的日志来看,抛出了如下的报错
ORA-19566: exceeded limit of 0 corrupt blocks for file
+INDEX/ods_hist_idx_tbs_07.dbf

3.2 故障分析

ORA-19566报错来看,基本定位为坏快造成的,
确认当前使用的数据库为Oracle 11.2.0.4.0 RAC,
通过以下查询确认坏快信息--1、查询oracle坏快
select * from v$database_block_corruption;--2.分析Oracle坏块对应的对象内容
SELECT e.owner, e.segment_type, e.segment_name, e.partition_name, c.file#, greatest(e.block_id, c.block#) corr_start_block#, least(e.block_id+e.blocks-1, c.block#+c.blocks-1) corr_end_block#, least(e.block_id+e.blocks-1, c.block#+c.blocks-1)- greatest(e.block_id, c.block#) + 1 blocks_corrupted, null descriptionFROM dba_extents e, v$database_block_corruption cWHERE e.file_id = c.file#AND e.block_id <= c.block# + c.blocks - 1AND e.block_id + e.blocks - 1 >= c.block#UNIONSELECT s.owner, s.segment_type, s.segment_name, s.partition_name, c.file#, header_block corr_start_block#, header_block corr_end_block#, 1 blocks_corrupted, 'Segment Header' descriptionFROM dba_segments s, v$database_block_corruption cWHERE s.header_file = c.file#AND s.header_block between c.block# and c.block# + c.blocks - 1UNIONSELECT null owner, null segment_type, null segment_name, null partition_name, c.file#, greatest(f.block_id, c.block#) corr_start_block#, least(f.block_id+f.blocks-1, c.block#+c.blocks-1) corr_end_block#, least(f.block_id+f.blocks-1, c.block#+c.blocks-1)- greatest(f.block_id, c.block#) + 1 blocks_corrupted, 'Free Block' descriptionFROM dba_free_space f, v$database_block_corruption cWHERE f.file_id = c.file#AND f.block_id <= c.block# + c.blocks - 1AND f.block_id + f.blocks - 1 >= c.block#order by file#, corr_start_block#;

3.3 故障处理

Oracle建议的一些最佳实践经验如下:
1.完整记录原始的坏块出错信息,以及遇到坏块的应用模块信息。
2.将首次遇到坏块的几小时至当前时间的log信息抽取出来,
单独保存为一个文件进行重点分析。
3.将log文件中涉及的trace 文件进行保存。
4.了解硬件和操作系统级是否存在报错信息。
5.查询硬件和存储是否采用异步I/O(ASYNC I/O),
磁盘快速写(Fast Write Disk)等技术。
6.查询当前Oracle备份信息,备份时间、备份类型、备份地点等。
7.查询数据库是否是归档或非归档模式。

坏块分类分为2种
物理坏块:也可以称为介质坏块,指的是块格式本身是坏的,块内的数据没有任何意义。
逻辑坏块:指的是块内的数据在逻辑是存在问题。比如说索引块的索引值没有按从小到大排列。
物理坏块一般是由于内存问题、OS问题、IO子系统问题和硬件引起,
逻辑坏块一般是是由于Oracle Bug等原因引起

4.数据库结构错误

4.1 故障现象

客户反馈备份一直失败,因为用的磁带库备份,
所以从alert日志中看到有如下报错
ERROR at line 1:
ORA-01157: cannot identify/lock data file 34 - see DBWR trace file
ORA-01110: data file 34: ‘/u01/app/oracle/product/19.0.0/dbhome_1/dbs/ptho_ts.dbf’

4.2 故障分析

select file_id,tablespace_name,file_name,status from dba_data_files;
通过查询发现,新建的一个表空间建到了本地磁盘,
导致节点2无法发问,备份校验不通过导致备份失败

4.3 故障处理

offline数据文件的方法
sql>alter database datafile 34 offline;
rman> backup as copy datafile 34 format ‘+data’;
rman> switch datafile 34 to copy;
sql>recover datafile 34;
sql>alter database datafile 34 online;

5.总结

数据库可能面临硬件故障、人为错误、恶意攻击、自然灾害等多种潜在风险。如果没有恰当的备份策略,这些事件可能导致数据丢失,从而对业务造成严重影响。所以一定要确保备份的成功,备份恢复演练也必不可少。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/853345.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FLAN-T5模型的文本摘要任务

Text Summarization with FLAN-T5 — ROCm Blogs (amd.com) 在这篇博客中&#xff0c;我们展示了如何使用HuggingFace在AMD GPU ROCm系统上对语言模型FLAN-T5进行微调&#xff0c;以执行文本摘要任务。 介绍 FLAN-T5是谷歌发布的一个开源大型语言模型&#xff0c;相较于之前的…

什么是专业的CRM客户管理系统,介绍crm客户管理系统的功能作用

CRM&#xff08;Customer Relationship Management&#xff09;客户管理系统&#xff0c;是现代企业不可或缺的一款管理工具。它集客户信息管理、销售自动化、客户服务与支持、数据分析与决策支持等多项功能于一身&#xff0c;帮助企业实现客户关系的全方位管理&#xff0c;从而…

浏览器必备插件:最新Allow copy万能网页复制下载,解锁网页限制!

今天阿星给大家安利一个超级实用的小工具&#xff0c;专治那些“禁止复制”的网页文字。学生党、资料搜集狂人&#xff0c;你们有福了&#xff01; 想象一下&#xff0c;你在网上冲浪&#xff0c;突然遇到一篇干货满满的文章&#xff0c;正想复制下来慢慢品味&#xff0c;结果…

CubeMX Keil Configure

// 使用外部高速晶振 外部高速晶振为8M&#xff08;根据开发板上的晶振频率设置&#xff09;&#xff0c;使用 PLLCLK&#xff0c;HSE 选项 USART1 使用 Asynchronous&#xff0c;PA9&#xff0c;PA10引脚&#xff08;USART1 引脚根据开发板上引脚设置&#xff09; 设置MDK AR…

Docker Nginx

Docker官网 https://www.docker.com/https://www.docker.com/ 删除原先安装的Docker sudo yum remove docker \ docker-client \ docker-client-latest \ docker-common \ docker-latest \ …

android13 应用冷启动

1 概述 launcher 通过binder到systemserver中atms中发送startActivity请求 startProcess向zygote发送启动新进程请求 zygote收到请求&#xff0c;fork新进程并调用ActivityThread的main初始化 新进程启动&#xff0c;发送attachApplication给ams&#xff0c;告诉他新进程启动…

希亦、添可、石头洗地机哪款好用?2024洗地机深度测评

今年的洗地机市场竞争异常激烈&#xff0c;各大品牌纷纷推出了自己的旗舰产品。这对消费者来说是个好消息&#xff0c;因为有更多的选择空间。然而&#xff0c;面对如此多的优质洗地机&#xff0c;选择合适的一款也成了一种“幸福的烦恼”。 作为一个专业的测评人士&#xff0…

kaggle竞赛实战10——特征优化

特征优化思路&#xff1a; 在完成常规流程后&#xff0c;如果不知道怎么办&#xff0c;可以针对文本or时间序列特征进行进一步处理 首先&#xff0c;我们注意到&#xff0c;每一笔信用卡的交易记录都有交易时间&#xff0c;而对于时间字段和文本字段&#xff0c;普通的批量创…

AI赋能软件测试

AI赋能软件测试 AI赋能软件测试软件测试分类软件质量模型:用来衡量软件质量的维度AI赋能软件测试 随着AI时代的到来,如何轻松掌握软件测试新趋势,将AI技术应用于软件测试行业,提高测试速度与测试效率~~ 传智星云AI助手:https://nebula.itcast.cn tips:各种AI工具应有尽有…

LeetCode | 66.加一

这道题有多个思路&#xff0c;可以依次取数组的每一位&#xff0c;乘10后加下一位&#xff0c;直到最后一位&#xff0c;就得到我们数组所表示的数字&#xff0c;然后加一&#xff0c;然后把新得到的数字再转化为对应的数组&#xff0c;我的做法是直接取数组的最后一位&#xf…

人工智能GPU互联技术分析,芯片巨头UALink向英伟达NVLink开战

芯片巨头组团&#xff0c;向英伟达NVLink开战 八大科技巨头——AMD、博通、思科、Google、惠普企业、英特尔、Meta及微软——联合推出UALink&#xff08;Ultra Accelerator Link&#xff09;技术&#xff0c;为人工智能数据中心网络设定全新互联标准。此举旨在打破Nvidia的市场…

Python 小市值股票模型代码及回测分析

目录 一、模型介绍 二、代码详解 2.1 初始化函数 2.2 股票筛选过滤函数 2.3 止损函数 2.4 开盘时运行函数 2.5 调仓函数 三、回测结果分析 3.1 收益净值图与概述 3.2 模型收益概览 3.3 年度收益图 3.4 月度收益的时间序列 3.5 月度收益热力图 3.6 月度收益频次分…

java之IO流和集合框架的笔记

1 File类的使用 1.1 概述 File类及本章下的各种流&#xff0c;都定义在java.io包下。 一个File对象代表硬盘或网络中可能存在的一个文件或者文件目录&#xff08;俗称文件夹&#xff09;&#xff0c;与平台无关。&#xff08;体会万事万物皆对象&#xff09; File 能新建、删…

Java---认识异常

欢迎大家来观看本博课------Java------认识异常。1.异常的概念和体系结构 1.异常的概念和体系结构 1.1 异常的概念 在Java中&#xff0c;在程序执行过程中发生的不正常行为称为异常。如在之前我们经常遇到的算数异常&#xff08;ArithmeticException&#xff09;、数组越界…

GDB:从零开始入门GDB

目录 1.前言 2.开启项目报错 3.GDB的进入和退出 4.GDB调试中查看代码和切换文件 5.GDB调试中程序的启动和main函数传参 6.GDB中断点相关的操作 7.GDB中的调试输出指令 8.GDB中自动输出值指令 9.GDB中的调试指令 前言 在日常开发中&#xff0c;调试是我们必不可少的技能。在专业…

408数据结构-图的遍历 自学知识点整理

前置知识&#xff1a;图的存储与基本操作 图的遍历是指从图的某一顶点出发&#xff0c;按照某种搜索方法沿着图中的边对图中的所有顶点访问一次&#xff0c;且仅访问一次。因为树是一种特殊的图&#xff0c;所以树的遍历实际上也可以视为一种特殊的图的遍历。图的遍历算法是求解…

利用鱼骨图进行项目问题复盘与改进

一、引言 在项目管理中&#xff0c;问题复盘是一个至关重要的环节。它不仅能帮助我们识别项目执行过程中出现的问题&#xff0c;还能促使我们深入探究问题的根本原因&#xff0c;从而采取有效的改进措施。在这个过程中&#xff0c;鱼骨图作为一种强大的工具&#xff0c;为我们…

MEMS:Lecture 16 Gyros

陀螺仪原理 A classic spinning gyroscope measures the rotation rate by utilizing the conservation of angular momentum. 经典旋转陀螺仪通过利用角动量守恒来测量旋转速率。 Coriolis Effect and Coriolis Force 科里奥利效应是一种出现在旋转参考系中的现象。它描述了…

Internet Download Manager ( 极速下载器 ) 序列号注册码 IDM下载器注册机中文激活破解版

IDM下载器(Internet Download Manager)是一款专业的下载管理软件&#xff0c;它通过多线程技术和智能文件分段技术&#xff0c;有效提升下载速度&#xff0c;并支持断点续传&#xff0c;还具有计划下载功能&#xff0c;用户可以设置特定的下载时间&#xff0c;非常适合需要在特…

代码随想录算法训练营刷题复习1 :动态规划背包问题 01背包+完全背包

动态规划刷题复习 一、01背包 416. 分割等和子集1049. 最后一块石头的重量 II494. 目标和474. 一和零 416. 分割等和子集 class Solution { public:bool canPartition(vector<int>& nums) {int sum0;for(int i0;i<nums.size();i) {sumnums[i];}if(sum%2!0)retu…