签到成功

知道了

CNDBA社区CNDBA社区

DM7 达梦数据库 DEM 添加数据库守护(DW) 备库失败 解决方法

2019-09-21 14:59 5507 0 原创 DM 达梦
作者: dave

在DM 的DEM 系统中,添加数据守护的备库之后,一致显示异常,但备库在主机层看是正常的。 库连接也没有问题。

查看DEM Tomcat 日志,显示如下:http://www.cndba.cn/dave/article/3715

Caused by: java.sql.SQLException: Try to modify user database at standby mode
    at dm.jdbc.dbaccess.DBError.throwSQLException(DBError.java:44)
    at dm.jdbc.dbaccess.Request_Response.resp_checkErr(Request_Response.java:2503)
    at dm.jdbc.dbaccess.Request_Response.resp_prepare(Request_Response.java:699)
    at dm.jdbc.dbaccess.DmdbCSI.prepareSQL(DmdbCSI.java:329)
    at dm.jdbc.driver.DmdbStatement_bs.directExec(DmdbStatement_bs.java:1745)
    at dm.jdbc.driver.DmdbPreparedStatement_bs.initialize(DmdbPreparedStatement_bs.java:249)
    at dm.jdbc.driver.DmdbPreparedStatement_bs.<init>(DmdbPreparedStatement_bs.java:170)
    at dm.jdbc.driver.DmdbConnection_bs.prepareStatement(DmdbConnection_bs.java:1909)
    at dm.jdbc.driver.DmdbConnection_bs.prepareStatement(DmdbConnection_bs.java:1524)
    at dm.jdbc.driver.DmdbConnection.do_prepareStatement(DmdbConnection.java:1662)
    at dm.jdbc.filter.FilterChain.Connection_prepareStatement(FilterChain.java:594)
    at dm.jdbc.driver.DmdbConnection.prepareStatement(DmdbConnection.java:634)
    at com.dameng.common.persistence.jdbc.SQLExecute.execute(SQLExecute.java:94)
    at com.dameng.common.persistence.jdbc.JdbcSupport.execute(JdbcSupport.java:89)
    at com.dameng.dem.server.dao.BaseDao.execute(BaseDao.java:49)
    at com.dameng.common.persistence.jdbc.JdbcSupport.execute(JdbcSupport.java:50)
    at com.dameng.dem.server.dao.BaseDao.execute(BaseDao.java:37)
    at com.dameng.dem.server.dao.dma.impl.DatabaseDao.createTable(DatabaseDao.java:2776)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:616)
    at com.dameng.common.aop.DefaultMethodInvocation.proceed(DefaultMethodInvocation.java:77)
    at com.dameng.common.persistence.transaction.TransactionInterceptor.invoke(TransactionInterceptor.java:130)
    ... 37 more
[dmdba@monitor logs]$

从这里看,是DEM 需要对备库进行一些修改,但在备库下无法执行:

Caused by: java.sql.SQLException: Try to modify user database at standby modehttp://www.cndba.cn/dave/article/3715

http://www.cndba.cn/dave/article/3715

在监视器中将主备库进行切换:http://www.cndba.cn/dave/article/3715http://www.cndba.cn/dave/article/3715

show
2019-09-21 14:31:32 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP_DW           453331      TRUE            MANUAL          FALSE     

IP              INST_PORT  MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RTYPE     RSTAT    N_OPEN   N_TASK   TASK_MEM_USED  FLSN           CLSN           SSLSN          SLSN           
192.168.56.191  5236       5239         2019-09-21 14:31:32  GLOBAL    VALID     OPEN           OK        DW1              OPEN        PRIMARY   REALTIME  VALID    2        0        0              47397          47397          47397          47397          
192.168.56.192  5236       5239         2019-09-21 14:31:29  GLOBAL    VALID     OPEN           OK        DW2              OPEN        STANDBY   REALTIME  VALID    2        0        0              46878          46878          46878          46878          

#================================================================================#

switchover grp_dw.dw2
[monitor]         2019-09-21 14:32:05: Not login dmmonitor or server public key changed, please try to login again!

login 
username:sysdba
password:
[monitor]         2019-09-21 14:32:11: Login dmmonitor success!

switchover grp_dw.dw2
[monitor]         2019-09-21 14:32:16: Start to switchover instance DW2
[monitor]         2019-09-21 14:32:16: Notify dmwatcher(DW1) switch to SWITCHOVER status
[monitor]         2019-09-21 14:32:16: Dmwatcher process DW1 status switching [OPEN-->SWITCHOVER] 
[monitor]         2019-09-21 14:32:16: Switch dmwatcher DW1 to SWITCHOVER status success
[monitor]         2019-09-21 14:32:16: Notify dmwatcher(DW2) switch to SWITCHOVER status
[monitor]         2019-09-21 14:32:16: Dmwatcher process DW2 status switching [OPEN-->SWITCHOVER] 
[monitor]         2019-09-21 14:32:16: Switch dmwatcher DW2 to SWITCHOVER status success
[monitor]         2019-09-21 14:32:16: Instance DW1 start to execute sql ALTER DATABASE MOUNT
[monitor]         2019-09-21 14:32:18: Instance DW1 execute sql ALTER DATABASE MOUNT success
[monitor]         2019-09-21 14:32:18: Instance DW2 start to execute sql SP_APPLY_KEEP_BUF()
[monitor]         2019-09-21 14:32:18: Instance DW2 execute sql SP_APPLY_KEEP_BUF() success
[monitor]         2019-09-21 14:32:18: Instance DW2 start to execute sql ALTER DATABASE MOUNT
[monitor]         2019-09-21 14:32:20: Instance DW2 execute sql ALTER DATABASE MOUNT success
[monitor]         2019-09-21 14:32:20: Instance DW1 start to execute sql ALTER DATABASE STANDBY
[monitor]         2019-09-21 14:32:20: Instance DW1 execute sql ALTER DATABASE STANDBY success
[monitor]         2019-09-21 14:32:20: Instance DW2 start to execute sql ALTER DATABASE PRIMARY
[monitor]         2019-09-21 14:32:20: Instance DW2 execute sql ALTER DATABASE PRIMARY success
[monitor]         2019-09-21 14:32:20: Notify instance DW2 to change all arch status to be invalid
[monitor]         2019-09-21 14:32:21: Succeed to change all instances arch status to be invalid
[monitor]         2019-09-21 14:32:21: Notify dmwatcher(DW2) to add ctl record
[monitor]         2019-09-21 14:32:21: Notify dmwatcher(DW2) add ctl record success
[monitor]         2019-09-21 14:32:21: Instance DW1 start to execute sql ALTER DATABASE OPEN FORCE
[monitor]         2019-09-21 14:32:21: Instance DW1 execute sql ALTER DATABASE OPEN FORCE success
[monitor]         2019-09-21 14:32:21: Instance DW2 start to execute sql ALTER DATABASE OPEN FORCE
[monitor]         2019-09-21 14:32:22: Instance DW2 execute sql ALTER DATABASE OPEN FORCE success
[monitor]         2019-09-21 14:32:22: Notify dmwatcher(DW1) switch to OPEN status
[monitor]         2019-09-21 14:32:22: Dmwatcher process DW1 status switching [SWITCHOVER-->OPEN] 
[monitor]         2019-09-21 14:32:22: Switch dmwatcher DW1 to OPEN status
[monitor]         2019-09-21 14:32:22: Notify dmwatcher(DW2) switch to OPEN status
[monitor]         2019-09-21 14:32:22: Dmwatcher process DW2 status switching [SWITCHOVER-->OPEN] 
[monitor]         2019-09-21 14:32:22: Switch dmwatcher DW2 to OPEN status
[monitor]         2019-09-21 14:32:22: Notify group(GRP_DW)'s dmwatcher to do clear
[monitor]         2019-09-21 14:32:22: Clean request of dmwatcher processer DW1 success
[monitor]         2019-09-21 14:32:22: Dmwatcher process DW2 status switching [OPEN-->RECOVERY] 
[monitor]         2019-09-21 14:32:22: Clean request of dmwatcher processer DW2 success
[monitor]         2019-09-21 14:32:22: Switchover instance DW2 success

2019-09-21 14:32:22 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP_DW           453331      TRUE            MANUAL          FALSE     

IP              INST_PORT  MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RTYPE     RSTAT    N_OPEN   N_TASK   TASK_MEM_USED  FLSN           CLSN           SSLSN          SLSN           
192.168.56.192  5236       5239         2019-09-21 14:32:20  GLOBAL    VALID     RECOVERY       OK        DW2              OPEN        PRIMARY   REALTIME  VALID    3        0        0              52394          52394          52394          52394          
192.168.56.191  5236       5239         2019-09-21 14:32:22  GLOBAL    VALID     OPEN           OK        DW1              OPEN        STANDBY   REALTIME  INVALID  2        0        0              47427          47427          47427          47427          

#================================================================================#

[monitor]         2019-09-21 14:32:25: Dmwatcher process DW2 status switching [RECOVERY-->OPEN] 
                  WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN           CLSN           SSLSN          SLSN           
                  2019-09-21 14:32:23  OPEN           OK        DW2              OPEN        PRIMARY   VALID    3        52394          52394          52394          52394          

show
2019-09-21 14:32:29 
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
GRP_DW           453331      TRUE            MANUAL          FALSE     

IP              INST_PORT  MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RTYPE     RSTAT    N_OPEN   N_TASK   TASK_MEM_USED  FLSN           CLSN           SSLSN          SLSN           
192.168.56.192  5236       5239         2019-09-21 14:32:26  GLOBAL    VALID     OPEN           OK        DW2              OPEN        PRIMARY   REALTIME  VALID    3        0        0              52394          52394          52394          52394          
192.168.56.191  5236       5239         2019-09-21 14:32:28  GLOBAL    VALID     OPEN           OK        DW1              OPEN        STANDBY   REALTIME  VALID    3        0        0              52394          52394          52394          52394          

#================================================================================#

切换之后备库变成了主库,还是不能识别。 查看新主库的日志,提示socket异常:http://www.cndba.cn/dave/article/3715

[dave@www.cndba.cn_2 log]# cat dmagent.log 
2029-03-21 07:55:24 
[ERROR] Post to (http://192.168.20.190:8080/dem/dem/dma_agent) fail!
java.net.SocketException: Connection reset
    at java.net.SocketInputStream.read(SocketInputStream.java:185)
    at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
    at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
    at org.apache.commons.httpclient.HttpParser.readRawLine(HttpParser.java:77)
    at org.apache.commons.httpclient.HttpParser.readLine(HttpParser.java:105)
    at org.apache.commons.httpclient.HttpConnection.readLine(HttpConnection.java:1115)
    at org.apache.commons.httpclient.HttpMethodBase.readStatusLine(HttpMethodBase.java:1832)
    at org.apache.commons.httpclient.HttpMethodBase.readResponse(HttpMethodBase.java:1590)
    at org.apache.commons.httpclient.HttpMethodBase.execute(HttpMethodBase.java:995)
    at org.apache.commons.httpclient.HttpMethodDirector.executeWithRetry(HttpMethodDirector.java:397)
    at org.apache.commons.httpclient.HttpMethodDirector.executeMethod(HttpMethodDirector.java:170)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:396)
    at org.apache.commons.httpclient.HttpClient.executeMethod(HttpClient.java:324)
    at com.dameng.agent.dem.util.HttpClientUtil.postInner(HttpClientUtil.java:77)
    at com.dameng.agent.dem.util.HttpClientUtil.post(HttpClientUtil.java:52)
    at com.dameng.agent.dem.gather.AbstractGather.REQ_RESP(AbstractGather.java:270)
    at com.dameng.agent.dem.gather.AbstractGather.doSendData(AbstractGather.java:253)
    at com.dameng.agent.dem.gather.AbstractGather.sendData(AbstractGather.java:222)
    at com.dameng.agent.dem.gather.AbstractGather$GatherTask.run(AbstractGather.java:70)
    at java.util.TimerThread.mainLoop(Timer.java:534)
    at java.util.TimerThread.run(Timer.java:484)

重启监控客户端:http://www.cndba.cn/dave/article/3715http://www.cndba.cn/dave/article/3715http://www.cndba.cn/dave/article/3715

[dave@www.cndba.cn_2 log]# /etc/init.d/Dm
DmAPService         DmServicedw         DmWatcherServicedw  
[dave@www.cndba.cn_2 log]# /etc/init.d/DMAgentService restart
Stopping DMAgentService...
Removed stale pid file: /dm/dmdbms/tool/dmagent/wrapper/bin/dmagent.pid
Stopped DMAgentService.
Starting DMAgentService...
.......... running: PID:27569
[dave@www.cndba.cn_2 log]#

正常识别DW环境了:

http://www.cndba.cn/dave/article/3715

版权声明:本文为博主原创文章,未经博主允许不得转载。

用户评论
* 以下用户言论只代表其个人观点,不代表CNDBA社区的观点或立场
dave

dave

关注

人的一生应该是这样度过的:当他回首往事的时候,他不会因为虚度年华而悔恨,也不会因为碌碌无为而羞耻;这样,在临死的时候,他就能够说:“我的整个生命和全部精力,都已经献给世界上最壮丽的事业....."

  • 2262
    原创
  • 3
    翻译
  • 579
    转载
  • 192
    评论
  • 访问:8091558次
  • 积分:4350
  • 等级:核心会员
  • 排名:第1名
精华文章
    最新问题
    查看更多+
    热门文章
      热门用户
      推荐用户
        Copyright © 2016 All Rights Reserved. Powered by CNDBA · 皖ICP备2022006297号-1·

        QQ交流群

        注册联系QQ