由 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

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

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

相关推荐
小五传输11 分钟前
网闸怎么选?新型网闸凭安全高效,成企业优选方案
大数据·运维·安全
C_心欲无痕13 分钟前
nginx - 核心概念
运维·前端·nginx
HABuo17 分钟前
【Linux进程(五)】进程地址空间深入剖析-->虚拟地址、物理地址、逻辑地址的区分
linux·运维·服务器·c语言·c++·后端·centos
AllData公司负责人25 分钟前
AllData数据中台-数据同步平台集成开源项目Seatunnel-Web,完成Mysql到Doris同步流程
数据库·mysql·开源
Mr.Entropy32 分钟前
数据库读写分离介绍
数据库
米高梅狮子34 分钟前
01-Ansible 自动化介绍
运维·自动化·ansible
Codeking__36 分钟前
Redis的value类型及编码方式介绍——string
数据库·redis·缓存
Ha_To39 分钟前
2026.1.12 Linux提升账户权限
linux·运维·服务器
OopspoO44 分钟前
Linux内存分析工具
linux·运维
杭州龙立智能科技1 小时前
好用的物料转运小车价格哪家合理
运维