记录一次因ASM磁盘组空间不足,导致MAP进程无法启动

生产中 ADG 库出现告警,检查发现 map 进程异常:

检查 alter 日志,出现:

ORA-19504:failed to create file "+DATAC1/casarch/2_162186_1067953047.arc"

ORA-17502:ksfdcre:4 Failed to create file ...

ORA-15041:diskgroup "DATAC1" space exhausted

ORA-16038:log 21 sequence# 213703 cannot be archived

ORA-19504:failed to create file ""

ORA-00312:online log 21 thread 1:'+DATAC1/xx/ONLINELOG/group_21.958.107215771'

ORA-00312:online log 21 thread 1:'+DATAC1/xxx/ONLINELOG/group_21.959.107215847'

检查 ASM 磁盘空间不足,导致无法归档

检查数据库的归档保留时间:

rman target /

show retention policy;

清理归档日志:

复制代码
cat clear_arch.sh

~/.bash profile
rman target / nocatalog <<EOF
delete NOPROMPT archivelog until time "sysdate-2";
crosscheck archivelog all;
exit
EOF

nohup sh clear_arch.sh >> /home/oracle/clear_arch.log &

清理归档后,磁盘空间正常.

再次尝试拉起 map 进程:

复制代码
--启动mrp
ALTER DATABASE recover managed standby database using current logfile disconnect from session;
--查看mrp是否正常
SELECT inst_id,PROCESS, STATUS,SEQUENCE#,BLOCK#,BLOCKS, DELAY_MINS FROM gV$MANAGED_STANDBY where process in ('RFS','MRP0') and SEQUENCE# <>0;

map 进程还是无法正常启动:

ORA-01111:name for datafile 1061:

ORA-01110:data file 1061:

ORA-01157:cannot identify/lock data file 1061 -see DBWR trace file

问题分析:

在备用数据库中创建文件为UNNAMED的原因有很多,此次是因为备库上的磁盘空间不足导致的。

STANDBY_FILE_MANAGEMENT 在启用自动备用文件管理后,将在备用数据库上复制主数据库上的操作系统文件添加和删除。此时,我们在主服务器上添加数据文件,而恢复过程(MRP)正在尝试应用存档,由于该参数设置,它将在$ ORACLE_HOME / dbs中创建一个未命名的文件将导致杀死MRP进程,错误如下所示。

当数据库由OMF管理时,修改路径时也可以使用 new 来代替路径的位置,修改 redo 除外。--这个没有验证

复制代码
alter database recover managed standby database cancel;
alter system set standby_file_management=manual;
alter database create datafile  '/oracle/app/oracle/product/19.0.0.0/db_1/dbs/UNNAMED1061′ as  '/+DATAC1/' AS 32760m;
alter system set standby_file_management=auto;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;

执行完后,mrp 进程正常拉起,本次问题解决.

相关推荐
dishugj3 分钟前
[ORACLE-RMAN]rman备份报错ORA-00245解决
数据库·oracle
herinspace3 分钟前
管家婆软件中如何运用商品副单位
运维·服务器·数据库·windows·电脑
Channing Lewis6 分钟前
zoho crm中如何记录下已删除的子表recordid
运维·服务器·oracle
TDengine (老段)7 分钟前
TDengine 统计函数 VARIANCE 用户手册
大数据·数据库·物联网·时序数据库·tdengine·涛思数据
Lentou10 分钟前
oracle新增历史表
oracle
前进的李工13 分钟前
SQL排序与分页查询技巧
开发语言·数据库·sql·mysql·oracle
gugugu.19 分钟前
MySQL 索引:核心原理、数据结构与优化实践
数据库·mysql
Fortune_yangyang20 分钟前
数据库基础
运维·网络·数据库·mysql
AI架构师易筋23 分钟前
RAG 与向量数据库是如何工作的:从图书馆比喻到系统架构
数据库