作者: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 LOGMNRTBS1.报错现象
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邦德 ❤️