DG逻辑备库无法同步日志报错ORA-01658处理

作者:IT邦德
中国DBA联盟(ACDU)成员,目前从事DBA及程序编程
(Web\java\Python)工作,主要服务于生产制造
现拥有 Oracle 11g  OCP/OCM、
Mysql、Oceanbase(OBCA)认证
分布式TBase\TDSQL数据库、国产达梦数据库以及红帽子认证
从业8年DBA工作,在数据库领域有丰富的经验
B站主播Oracle、Mysql、PG实战课程,请搜索:jeames007

擅长Oracle数据库运维开发,备份恢复,安装迁移,性能优化、故障应急处理等。

在这里插入图片描述

前言

最近客户反应,DG的逻辑备库无法同步数据,经过排查发现,逻辑备库表空间不足导致 报错如下: ORA-01658: unable to create INITIAL extent for segment in tablespace LOGMNRTBS

1.报错现象

LOGMINER: SpillScn 0, ResetLogScn 995548
LOGMINER: summary for session# = 1
LOGMINER: StartScn: 1179227 (0x0000.0011fe5b)
LOGMINER: EndScn: 0 (0x0000.00000000)
LOGMINER: HighConsumedScn: 1180640 (0x0000.001203e0)
LOGMINER: session_flag: 0x1
LOGMINER: Read buffers: 16
Sun Nov 07 12:06:56 2021
LOGMINER: session#=1 (Logical_Standby$), reader MS00 pid=39 OS id=6334 sid=151 started
Sun Nov 07 12:06:56 2021
LOGMINER: session#=1 (Logical_Standby$), builder MS01 pid=40 OS id=6336 sid=26 started
Sun Nov 07 12:06:56 2021
LOGMINER: session#=1 (Logical_Standby$), preparer MS02 pid=41 OS id=6338 sid=149 started
LOGSTDBY status: ORA-00604: error occurred at recursive SQL level 1
ORA-01658: unable to create INITIAL extent for segment in tablespace LOGMNRTBS
ORA-06512: at "SYS.LOGMNR_KRVRDLUID3", line 1300
ORA-06512: at line 1
Errors in file /u01/app/oracle/diag/rdbms/11g_st/PRODDG/trace/PRODDG_lsp0_6326.trc:
ORA-00604: error occurred at recursive SQL level 1
ORA-01658: unable to create INITIAL extent for segment in tablespace LOGMNRTBS
ORA-06512: at "SYS.LOGMNR_KRVRDLUID3", line 1300
ORA-06512: at line 1
LOGMINER: session#=1 (Logical_Standby$), reader MS00 pid=39 OS id=6334 sid=151 stopped
LOGMINER: session#=1 (Logical_Standby$), builder MS01 pid=40 OS id=6336 sid=26 stopped
LOGMINER: session#=1 (Logical_Standby$), preparer MS02 pid=41 OS id=6338 sid=149 stopped
Sun Nov 07 12:07:51 2021

在这里插入图片描述

2.处理步骤

2.1 主库LOGMNRTBS表空间新增数据文件或改为自动扩展

SYS@PROD> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/PROD/logmnrtbs1.dbf' AUTOEXTEND ON;

2.2 查询表空间

SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
FROM dba_free_space 
GROUP BY tablespace_name; 
SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name; 

在这里插入图片描述

2.3 备库LOGMNRTBS表空间新增数据文件或改为自动扩展

SYS@PRODDG> ALTER DATABASE DATAFILE '/u01/app/oracle/oradata/PRODDG/logmnrtbs1.dbf' AUTOEXTEND ON;

SELECT SUM(bytes) / (1024 * 1024) AS free_space, tablespace_name 
FROM dba_free_space 
GROUP BY tablespace_name; 
SELECT a.tablespace_name, 
a.bytes total, 
b.bytes used, 
c.bytes free, 
(b.bytes * 100) / a.bytes "% USED ", 
(c.bytes * 100) / a.bytes "% FREE " 
FROM sys.sm$ts_avail a, sys.sm$ts_used b, sys.sm$ts_free c 
WHERE a.tablespace_name = b.tablespace_name 
AND a.tablespace_name = c.tablespace_name; 

在这里插入图片描述

2.4 备库启用SQL应用

SYS@PRODDG> alter database start logical standby apply immediate;

在这里插入图片描述

3 确认数据同步

3.1 主库创建表
在这里插入图片描述
3.2 备库确认信息
在这里插入图片描述
如果觉得文章对你有帮助,点赞、收藏、关注、评论,一键四连支持
您的批评指正是我写作的最大动力!

❤️ 技术交流可以 关注公众号:IT邦德 ❤️

Guess you like

Origin blog.csdn.net/weixin_41645135/article/details/121190190