oracle rman权限不足,关系型数据库Oracle之RMAN备份ORA-19625等错误解决办法

29cfd2e97786ea1d81c226e60b67c835.gif

事情是这样的,上周六中午刚要出去吃饭,便看到微信群里备份工程师的微信消息,说某套环境备份失败,让 DBA 检查下环境,我猜想这不是什么大问题,便不慌不忙的登陆到服务器上,打开备份的日志查看,果然不是什么大问题,之前也出现过类似的问题。结果日志中出现很明显、很关键的几个错误,如:RMAN-03002、RMAN-06059、ORA-19625、ORA-17053、ORA-15012,日志报错如下截图:

fa1498c3dbcc98d9f33f0117c50aa492.png

那么,我们来一起扯扯事情发生的经过吧。

起因:

看到这报错,很简单对吧,找不到归档日志,便报错了,基本上没什么可说的,但对于初学者而言,还是记录以下,以便后来者参考。先说说这个错误怎么来的吧,事情的经过是这样的(回忆片段走起),上周四晚上回家途中,马上要下地铁了,手机微信里出现了一大片关于数据库的告警,数一数有 7 套数据库同时告警,感觉出大事了,后来说是存储那边出问题了,经过一天的修复,只剩下一台机器有问题了,操作系统无法启动,也修复不了,幸好修复不了的机器只是我们数据库的一个节点,可这就造成了我们其中的一台数据库由RAC 变成单点了。

经过:

数据库由 RAC 变成单机的了,总不能一直单机跑着啊,于是,上周五晚上便开始停业务起变更,对数据库进行添加节点的操作,方案是这么定下来了,可是明天和意外永远不知道那个先来,停完业务,数据库这边准备的差不多了,可是虚拟化存储那边的工程师可让人无语。五六个小时了虚拟机分不出来,各种问题,等到凌晨两点了,也没搞定。最后,人家领导决定不这么干了,等到周六晚上重建,这就意味着我们数据库需要新搭建一套环境,然后将之前的数据做全备进行恢复,幸好也是数据量不大,之前也出现过这样的案例。那就这么定了,上周六晚上,开始新建环境恢复数据。我们这帮人也就消停了,各回各家撤人了,于是乎,也体验了一把凌晨三点的北京,还特意发了一下朋友圈!

结果:

上周六晚上,虚拟化、操作系统、数据库岗一起协作,经过大半夜的努力,大概凌晨四点多,也没出现什么问题,看到我们同事群里说数据库恢复好了,业务可以验证功能了,也就算重建、恢复完成了。数据库正常使用了,备份工程师需要部署备份,那么,执行备份时就出现了开篇中的问题。

fa1498c3dbcc98d9f33f0117c50aa492.png

问题解决:

由于是新装的机器,旧的备份和归档日志没有复制过来,控制文件里面还有这些归档日志文件信息, RMAN 备份时会去备份这些归档日志,而这些旧的归档日志又不存在了,所以就会出现这个错误。这才是重点,既然知道了这个问题,就先解决了在说吧。两条命令搞定,如下:

rman target /crosscheck archivelog all;delete expired archivelogall;

crosscheck archivelog all; 检查控制文件和实际物理文件的差别,如果一些归档日志已经删除或丢失,那么设置它们为expired。

delete expired archivelog all; 同步控制文件的信息和实际物理文件的信息(it will delete expired archivelog and updates your controlfile)。

问题解决了,说一下如上问题出现的其他可能性,手工删除归档日志或移动了归档日志也会出现如上的错误,需要手工执行 crosscheck 过程后,RMAN备份才能正常进行。

有时候,Oracle  自带的原生态命令也可以帮助我们查看问题,我记得以前面试的时候,居然没有回答上来这个命令的使用,这里大概记录一下,oerr命令是 $ORACLE_HOME/bin 下自带原生态命令,故需要在 OS 层面下的 oracle 用户执行,例如:oerr ora 600 等。

[oracle@JiekeXu~]$ oerr ora 60000600,00000, "internal error code, arguments: [%s], [%s], [%s], [%s], [%s],[%s], [%s], [%s], [%s], [%s], [%s], [%s]"//*Cause: This is the generic internal error number for Oracle program// exceptions. It indicates that aprocess has encountered a low-level,// unexpected condition. The firstargument is the internal message// number. This argument and the databaseversion number are critical in// identifying the root cause and thepotential impact to your system.*Action: Visit My Oracle Support to access the ORA-00600 Lookup tool// (reference Note 600.1) for moreinformation regarding the specific// ORA-00600 error encountered. An Incident has been created for thiserror in the Automatic// Diagnostic Repository (ADR). Whenlogging a service request, use// the Incident Packaging Service (IPS)from the Support Workbench// or the ADR Command Interpreter(ADRCI) to automatically package the// relevant trace information (reference MyOracle Support Note 411.1). The following information should alsobe gathered to help determine// the root cause:// - changes leading up to the error// - events or unusual circumstancesleading up to the error// - operations attempted prior tothe error// - conditions of the operatingsystem and databases at the time// of the error Note: The cause of this message maymanifest itself as different// errors at different times. Be awareof the history of errors that// occurred before this internal error.

d0b88d0188b013d2520bc1297834bda1.png

通过 OS 层面也能查个七七八八,基本的 ora 和 rman 错误均可查看,用好了也是一把利器,让我们一起学习一下吧,出现问题时先通过 OS 的提示看看也很方便。

好了,今天就说这么多吧,对于上文中的  RAC 是怎么重建怎么恢复的,以后有时间再说,最重要的一点就是做好备份,不管冷备,热备,至少有一个,保障数据不丢失就行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值