由 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

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

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

相关推荐
酷酷的崽7982 分钟前
Redis 键(Key)的命令
数据库·redis·缓存
1892280486116 分钟前
NW622NW623美光固态闪存NW624NW635
大数据·网络·数据库·人工智能·microsoft·性能优化
云飞云共享云桌面27 分钟前
1台电脑10个画图设计用怎么实现
linux·运维·服务器·网络·数据库·自动化·电脑
三坛海会大神55530 分钟前
LVS与Keepalived详解(一)负载均衡集群介绍
运维·负载均衡·lvs
宇钶宇夕37 分钟前
西门子 S7-200 SMART PLC 编程:转换 / 定时器 / 计数器指令详解 + 实战案例(指令讲解篇)
运维·算法·自动化
艾莉丝努力练剑41 分钟前
【Linux】初始Linux:从计算机历史发展、操作系统历史脉络的角度详谈Linux相关的话题,附Linux安装和用户创建(环境准备)详解
linux·运维·服务器·经验分享
kaixin_啊啊1 小时前
openEuler系统远程管理方案:cpolar实现安全高效运维
运维·安全
努力学习的小廉1 小时前
深入了解linux系统—— 线程池
linux·运维·服务器
TTBIGDATA1 小时前
【Ambari监控】Ambari-Metrics 的分支研究
大数据·数据库·hadoop·ambari·bigtop·edp·hidataplus
不是编程家1 小时前
Linux第十五讲:Socket编程UDP
linux·运维·udp