由 DB_FILES 参数导致的 dg 服务器无法同步问题

由 DB_FILES 参数导致的 dg 服务器无法同步问题

用户反映,dg 服务器数据从昨晚(7月8日)开始停止同步。

连接服务器发现没有 mrp 进程,并且 OPEN_MODE 参数也不正确。具体情况如下所示:

sql 复制代码
SQL> select process, status, sequence# from v$managed_standby;

PROCESS   STATUS	SEQUENCE#
--------- ------------ ----------
ARCH	  CLOSING	  1356467
ARCH	  CONNECTED		0
ARCH	  CONNECTED		0
ARCH	  CLOSING	  2317672
RFS	  IDLE			0
RFS	  IDLE			0
RFS	  IDLE		  2317673
RFS	  IDLE		  1356468
RFS	  IDLE			0
RFS	  IDLE			0

10 rows selected.

SQL> select open_mode,log_mode, database_role from v$database;

OPEN_MODE	     LOG_MODE	         DATABASE_ROLE
-------------------- ------------ -------------------- ----------------
READ ONLY	     ARCHIVELOG        PHYSICAL STANDBY

执行如下命令出现异常(ORA-00059):

sql 复制代码
SQL> alter database recover managed standby database;
alter database recover managed standby database
*
ERROR at line 1:
ORA-00283: recovery session canceled due to errors
ORA-00059: maximum number of DB_FILES exceeded

提示是 DB_FILES 参数的问题。并且昨晚对服务器进行扩容,为多个表空间增加了数据文件。dg 数据库停止同步也是昨天晚上。确认是该参数的问题。

以前已经修改过主库的 DB_FILES 参数为 2000,备库的 DB_FILES 参数为默认值 200。

确定问题的解决方案为,修改 DB_FILES 参数的值为 2000,步骤如下:

步骤一:执行如下命令修改 DB_FILES 参数的值。

sql 复制代码
alter system set db_files=2000 scope=spfile;

步骤二:重启数据库。

sql 复制代码
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.

Total System Global Area 3.4206E+10 bytes
Fixed Size		    2270360 bytes
Variable Size		 5301603176 bytes
Database Buffers	 2.8857E+10 bytes
Redo Buffers		   45649920 bytes
Database mounted.
Database opened.

步骤三:执行如下命令开启同步。

sql 复制代码
SQL> alter database recover managed standby database using current logfile disconnect;

Database altered.

步骤四:查看 dg 备库的进程及数据库状态。

sql 复制代码
SQL> select process, status, sequence# from v$managed_standby;

PROCESS   STATUS	SEQUENCE#
--------- ------------ ----------
ARCH	  CLOSING	  1356468
ARCH	  CONNECTED		0
ARCH	  CONNECTED		0
ARCH	  CLOSING	  2317673
RFS	  IDLE			0
RFS	  IDLE			0
RFS	  IDLE		  2317674
RFS	  IDLE		  1356469
RFS	  IDLE			0
RFS	  IDLE			0
MRP0	  APPLYING_LOG	  1356458

11 rows selected.


SQL> select open_mode,log_mode,database_role from v$database;

OPEN_MODE	     LOG_MODE	      DATABASE_ROLE
-------------------- ------------ -------------------- ----------------
READ ONLY WITH APPLY ARCHIVELOG    PHYSICAL STANDBY

发现备库的进程以及状态已经恢复正常。

测试数据的同步情况,发现已经恢复。

相关推荐
倔强的石头_9 小时前
《Kingbase护城河》——数据库存储空间全景探测与精细化瘦身实战
数据库
冬奇Lab1 天前
每日一个开源项目(第134篇):Zvec - 阿里开源的嵌入式向量数据库,向量搜索界的 SQLite
数据库·人工智能·llm
ClouGence1 天前
Oracle CDC 架构优化:从主库直连到 DataGuard 备库同步
数据库·后端·oracle
无响应de神1 天前
三、用户与权限管理
数据库·mysql
大树882 天前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠2 天前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
霸道流氓气质2 天前
领域驱动设计(DDD)在 Spring Boot 微服务中的实践指南
运维·spring boot·微服务
Inhand陈工2 天前
基于台达PLC与映翰通IG502的智慧水产养殖精准投喂与远程运维解决方案
运维·人工智能·物联网·阿里云·信息与通信
酣大智2 天前
ARP代理--工作原理
运维·网络·arp·arp代理
麦聪聊数据2 天前
数据服务化时代:企业数据能力输出的核心路径
数据库