由 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

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

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

相关推荐
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
这个DBA有点耶3 天前
MVCC深入:Read View、版本链与快照读——InnoDB并发控制的内核
数据库·mysql·架构
DBA_G3 天前
从地面到云霄:GBase数据库在民航三大场景的落地实践
数据库
自由能燃气设备3 天前
商用全预混低氮冷凝锅炉免费方案vs付费方案对比+选型避坑指南
大数据·数据库·人工智能
科创致远3 天前
科创致远 ESOP 系统核心效能与实战价值展示
大数据·数据库·人工智能·精益工程
AI职业加油站3 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
此冬歌咏3 天前
K8s 节点故障实战:优雅驱逐 31 秒,硬故障 331 秒,以及那个永远 Pending 的 Pod
运维·k8s
2601_962218613 天前
万象生鲜系统称重自动多退少补算法解决生鲜非标品痛点
大数据·数据库·人工智能·python·算法
-梅3 天前
linux(8) 软硬链接
linux·运维·服务器
张洛闻Eren3 天前
k8s云原生【第十课】:水平 Pod 自动扩缩容
运维·数据库·云原生·kubernetes·github