zoukankan      html  css  js  c++  java
  • 达梦双机

    1.命令行工具只能是在本机执行,通过client端连接之后返回的就是mount状态
    2.两边数据库需要是一致的,可以通过拷贝数据文件方式实现的,数据文件是指.dbf文件
    3.除了dbf文件还要拷贝dm_service.prikey文件
    4.如果是命令行启动,需要设置INST_STARTUP_MODE值为1,通过工具安装启动的是服务那么可以是0(通过服务查看器,可以看到工具是以服务方式启动的)
    5.dmwatch.ini文件中的注解头“[GROUP_M010]”一定要和监控配置文件dmwmon.ini里面的MON_GROUP_NAME字段内容保持一致;
    6.配置状态是需要在mount状态下面,进行配置;比如alter database primary/standby;以及首次的设置oguid值(sp_set_oguid);这些操作都是需要数据库首先是启动状态;但是这些参数的修改不能是在打开状态(OPEN)下,只能是在配置(MOUNT)状态下进行,我理解这是因为数据状态需要读取配置信息,为了使得修改能够生效,所以修改只能是在mount状态;使用数据只能是在OPEN状态下;
    7.在状态切换的设计上,状态是不能直接进行切换守护进程的启动是STANDUP,读取配置成功后进入到了OPEN状态,同时设置数据库有MONUT状态变为open状态;
    8.数据库模式:NORMAL,PRIMARY以及STANDBY三种状态,前者是正常数据(没有主备),中间是主机(基于主备模式),最后是备机(基于主备模式);
    9.数据库的状态:MOUNT,配置状态(上面介绍了);OPEN,打开状态,可以对外提供服务;SUSPEND,类似于open,可以对外服务,但是限制用户写入,这个状态用于在执行REDO操作的时候,切换到此状态下;
    10.监控器里面的startup以及stop功能只是守护进程的监控功能的开启和关闭,守护进程饼干不能关闭
    11.MAL的作用其实是很说明哪两台机器要进行主备,MAL是达梦的通信组件,守护进程对外收发消息都是通过MAL组件(配置)
    12.OGUID一定是通过mount之后,手工进行配置;在配置文件中只是在dmwatch.ini中有定义OGUID,但是那个不是配置数据库服务的OGUID,只是告诉守护进程目标服务的OGUID,至于目标数据库的OGUID的配置还是通过sp_set_oguid进行设置;另外理解一下OGUID的本意是唯一标志一个实例,让监控以及守护进程可以直接通过ID来定位实例;主备需要配置成一样的,因为本来他两就是统一对外提供服务;
    13.发现一个问题:因为会数据库删除重来(备份一个数据库zip文件,后来直接覆盖以保证文件一致),如果忘记了设置OGUID,那么在启动dmwatcher的时候,将会碰到不断报错,显示“first child process exit! return 4783, this is parent process...;
    14.曾经一度发生primary频繁的open<->recovery,后来发现file_lsn以及cur_lsn的值主备不一致(初始化时候是一致的,可能是后来在做手工调配的时候发现的);重新做数据调整,搞定;之所以发现不一致是通过在dmwatch窗口,敲入show来查看主备双方的情况是发现的;
    15.可以在应用本机配置一下dm_svc.conf文件,设定serverName=(IP:PORT,IP2:PORT)这样在原主机变为备机后,达梦的driver在访问发现机器状态不对(为STANDBY)会在servername中再找下个IP:PORT进行尝试,直到发现可以的;
  • 相关阅读:
    在vs code中进行本地调试和开启本地服务器
    按highcharts中column形式转对象展现格式
    forEach、for in 、 for of三者的区别
    一位数左边补0,slice也可以
    js判断对象是否为空
    谷歌最佳实践
    谷歌最佳实践
    谷歌最佳实践
    谷歌最佳实践
    企业代码版本管理之争:TrunkBased vs GitFlow vs AoneFlow vs OneFlow vs ExeFlow
  • 原文地址:https://www.cnblogs.com/xiashiwendao/p/7143129.html
Copyright © 2011-2022 走看看