• 达梦主从部署1主2从(主库需要停机)


    环境:
    OS:Centos 7
    DB:DM8
    主库:192.168.1.134 dbname:slnngk instance_name:slnngk01
    备库1:192.168.1.135 dbname:slnngk instance_name:slnngk02
    备库2:192.168.1.85 dbname:slnngk instance_name:slnngk03

    说明:
    主库上安装数据库软件和启动数据库,主库在归档模式
    备库库上只安装了数据库软件

    主备库的数据目录一致
    目录规划(主备一致):
    /dmdbms/product ##数据库软件的安装目录
    /dmdbms/data ##数据目录
    /dmdbms/arch ##归档目录
    /dmdbms/backup ##备份目录

    #############################主库安装数据192.168.1.134################################

    1.初始化数据库
    su - dmdba
    dminit path=/dmdbms/data charset=1 db_name=slnngk instance_name=slnngk01 SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"

    2.注册服务
    我们这里三个数据库使用的服务名都统一使用:DmServiceslnngk

    su - root
    [root@localhost root]#cd /dmdbms/product/script/root
    [root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/slnngk/dm.ini -p slnngk
    Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceslnngk.service to /usr/lib/systemd/system/DmServiceslnngk.service.
    Finished to create the service (DmServiceslnngk)

    3.启动数据库
    [root@localhost root]#systemctl start DmServiceslnngk.service
    [root@localhost root]#systemctl status DmServiceslnngk.service

    4.配置归档模式
    su - dmdba
    disql sysdba/dameng123
    alter database mount;
    alter database add archivelog 'dest=/dmdbms/arch,TYPE=local,FILE_SIZE=2048';
    alter database archivelog;
    alter database open;

    查看是否在归档模式
    SQL> select name,arch_mode from v$database;

    LINEID NAME ARCH_MODE
    ---------- ------ ---------
    1 slnngk Y

    used time: 1.347(ms). Execute id is 55201.

    #############################备库安装数据192.168.1.135################################

    1.初始化数据库,注意实例名与前面的不一样
    su - dmdba
    dminit path=/dmdbms/data charset=1 db_name=slnngk instance_name=slnngk02 SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"

    2.注册服务
    我们这里三个数据库使用的服务名都统一使用:DmServiceslnngk

    su - root
    [root@localhost root]#cd /dmdbms/product/script/root
    [root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/slnngk/dm.ini -p slnngk
    Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceslnngk.service to /usr/lib/systemd/system/DmServiceslnngk.service.
    Finished to create the service (DmServiceslnngk)

    3.启动数据库
    [root@localhost root]#systemctl start DmServiceslnngk.service
    [root@localhost root]#systemctl status DmServiceslnngk.service
    这里尝试下是否可以启动数据库

    然后将其停掉,因为下面我们会使用主库的备份文件进行恢复的
    [root@host135 root]# systemctl stop DmServiceslnngk.service

    #############################备库安装数据192.168.1.85################################

    1.初始化数据库,注意实例名与前面的不一样
    su - dmdba
    dminit path=/dmdbms/data charset=1 db_name=slnngk instance_name=slnngk03 SYSDBA_PWD="dameng123" SYSAUDITOR_PWD="dameng123"

    2.注册服务
    我们这里三个数据库使用的服务名都统一使用:DmServiceslnngk

    su - root
    [root@localhost root]#cd /dmdbms/product/script/root
    [root@localhost root]# ./dm_service_installer.sh -t dmserver -dm_ini /dmdbms/data/slnngk/dm.ini -p slnngk
    Created symlink from /etc/systemd/system/multi-user.target.wants/DmServiceslnngk.service to /usr/lib/systemd/system/DmServiceslnngk.service.
    Finished to create the service (DmServiceslnngk)

    3.启动数据库
    [root@localhost root]#systemctl start DmServiceslnngk.service
    [root@localhost root]#systemctl status DmServiceslnngk.service
    这里尝试下是否可以启动数据库

    然后将其停掉,因为下面我们会使用主库的备份文件进行恢复的
    [root@host85 root]# systemctl stop DmServiceslnngk.service

    #############################主备数据恢复################################

    1.关闭主库,以 dmrman 备份数据库
    [root@host134 data]# systemctl stop DmServiceslnngk.service
    或是登陆到disql,shutdown数据库
    [dmdba@localhost ~]$ disql sysdba/dameng123
    SQL> shutdown immediate;

    2.使用dmrman备份主库

    只有数据库是在关闭状态才能使用dmrman备份

    [root@localhost dmdbms]# su - dmdba
    [dmdba@localhost ~]$ dmrman
    dmrman V8
    RMAN> backup database '/dmdbms/data/slnngk/dm.ini' backupset '/dmdbms/backup';
    backup database '/dmdbms/data/slnngk/dm.ini' backupset '/dmdbms/backup';
    Database mode = 0, oguid = 0
    Normal of FAST
    Normal of DEFAULT
    Normal of RECYCLE
    Normal of KEEP
    Normal of ROLL
    EP[0]'s cur_lsn[41034], file_lsn[41034]
    Processing backupset /dmdbms/backup
    [Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]                                 
    backup successfully!
    time used: 00:00:04.126
    RMAN> 

    3.将备份文件复制到另外两台备库对应目录下(如果是root用户,复制成功需要将备份文件设置属于dmdba:dinstall用户组)
    我这里是使用dmdba账号进行scp传输的
    su - dmdba
    scp -r /dmdbms/backup/* dmdba@192.168.1.135:/dmdbms/backup/
    scp -r /dmdbms/backup/* dmdba@192.168.1.85:/dmdbms/backup/

    这里dmdba账号的密码设置为:dameng123

    4.备库使用dmrman执行数据库还原
    这个时候备库是没有启动的,
    疑惑备库原来初始化的数据目录下的文件是否可以删除掉?

    备库1:192.168.1.135
    若备库是启动的状态,需要将其关闭掉
    [root@localhost ~]#systemctl stop DmServiceslnngk.service
    [root@localhost ~]# su - dmdba
    [dmdba@localhost ~]$ dmrman
    dmrman V8


    按顺序执行3个命令:
    restore database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
    recover database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
    recover database '/dmdbms/data/slnngk/dm.ini' update db_magic;

    备库2:192.168.1.85
    [root@localhost ~]#systemctl stop DmServiceslnngk.service
    [root@localhost ~]# su - dmdba
    [dmdba@localhost ~]$ dmrman
    dmrman V8


    按顺序执行3个命令:
    restore database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
    recover database '/dmdbms/data/slnngk/dm.ini' from backupset '/dmdbms/backup';
    recover database '/dmdbms/data/slnngk/dm.ini' update db_magic;

    #############################配置文件设置################################

    1.dm.ini
    #三个实例主备库实例都需更改下面参数

    su - dmdba
    vi /dmdbms/data/slnngk/dm.ini

    ALTER_MODE_STATUS = 0 ##不允许手工方式修改实例模式/状态/OGUID
    ENABLE_OFFLINE_TS = 2 ##不允许备库 OFFLINE 表空间
    MAL_INI = 1           ##打开 MAL 系统
    ARCH_INI = 1          ##打开归档配置
    ALTER_TABLE_OPT=3     ##加快带默认值的字段添加(看情况需要)

    2.主备配置文件dmmal.ini
    #三个实例主备库配置必须完全一致
    su - dmdba
    vi /dmdbms/data/slnngk/dmmal.ini

    MAL_CHECK_INTERVAL       = 5      #MAL 链路检测时间间隔
    MAL_CONN_FAIL_INTERVAL   = 5      #判定 MAL 链路断开的时间
    [MAL_INST1]
    MAL_INST_NAME       = SLNNGK01        #实例名,和 dm.ini 中的 INSTANCE_NAME 一致
    MAL_HOST            = 192.168.1.134   #MAL 系统监听 TCP 连接的 IP 地址
    MAL_PORT            = 61141           #MAL 系统监听 TCP 连接的端口
    MAL_INST_HOST       = 192.168.1.134   #实例的对外服务 IP 地址
    MAL_INST_PORT       = 5236            #实例的对外服务端口,dm.ini 中的 PORT_NUM 一致
    MAL_DW_PORT         = 52141           #实例对应的守护进程监听 TCP 连接的端口
    MAL_INST_DW_PORT    = 33141           #实例监听守护进程 TCP 连接的端口
    
    [MAL_INST2]
    MAL_INST_NAME       = SLNNGK02
    MAL_HOST            = 192.168.1.135
    MAL_PORT            = 61141
    MAL_INST_HOST       = 192.168.1.135
    MAL_INST_PORT       = 5236
    MAL_DW_PORT         = 52141
    MAL_INST_DW_PORT    = 33141
    
    
    [MAL_INST3]
    MAL_INST_NAME       = SLNNGK03
    MAL_HOST            = 192.168.1.85
    MAL_PORT            = 61141
    MAL_INST_HOST       = 192.168.1.85
    MAL_INST_PORT       = 5236
    MAL_DW_PORT         = 52141
    MAL_INST_DW_PORT    = 33141

    在主库(192.168.1.134)上配置好了,可以scp到另外两个备库
    su - dmdba
    scp /dmdbms/data/slnngk/dmmal.ini dmdba@192.168.1.135:/dmdbms/data/slnngk/
    scp /dmdbms/data/slnngk/dmmal.ini dmdba@192.168.1.85:/dmdbms/data/slnngk/

    3.归档配置文件dmarch.ini


    192.168.1.134主库
    若主库上已经配置了本地归档的,那么只需要添加ARCHIVE_REALTIME部分
    su - dmdba
    vi /dmdbms/data/slnngk/dmarch.ini

    [ARCHIVE_REALTIME1]
    ARCH_TYPE        = REALTIME    #实时归档类型
    ARCH_DEST        = SLNNGK02    #实时归档目标实例名,这里是备库的实例名
    
    [ARCHIVE_REALTIME2]
    ARCH_TYPE        = REALTIME    #实时归档类型
    ARCH_DEST        = SLNNGK03    #实时归档目标实例名,这里是备库的实例名
    
    [ARCHIVE_LOCAL1]
    ARCH_TYPE        = LOCAL          #本地归档类型
    ARCH_DEST        = /dmdbms/arch   #本地归档文件存放路径
    ARCH_FILE_SIZE   = 2024           #单位Mb,本地单个归档文件最大值
    ARCH_SPACE_LIMIT = 0              #单位Mb,0 表示无限制,范围 1024~4294967294M
    ARCH_FLUSH_BUF_SIZE = 0
    ARCH_HANG_FLAG = 1

    192.168.1.135备库
    su - dmdba
    vi /dmdbms/data/slnngk/dmarch.ini

    [ARCHIVE_REALTIME1]
    ARCH_TYPE        = REALTIME    #实时归档类型
    ARCH_DEST        = SLNNGK01    #实时归档目标实例名,这里是备库的实例名
    
    [ARCHIVE_REALTIME2]
    ARCH_TYPE        = REALTIME    #实时归档类型
    ARCH_DEST        = SLNNGK03    #实时归档目标实例名,这里是备库的实例名
    
    [ARCHIVE_LOCAL1]
    ARCH_TYPE        = LOCAL          #本地归档类型
    ARCH_DEST        = /dmdbms/arch   #本地归档文件存放路径
    ARCH_FILE_SIZE   = 2024           #单位Mb,本地单个归档文件最大值
    ARCH_SPACE_LIMIT = 0              #单位Mb,0 表示无限制,范围 1024~4294967294M
    ARCH_FLUSH_BUF_SIZE = 0
    ARCH_HANG_FLAG = 1

    192.168.1.85备库
    su - dmdba
    vi /dmdbms/data/slnngk/dmarch.ini

    [ARCHIVE_REALTIME1]
    ARCH_TYPE        = REALTIME    #实时归档类型
    ARCH_DEST        = SLNNGK01    #实时归档目标实例名,这里是备库的实例名
    
    [ARCHIVE_REALTIME2]
    ARCH_TYPE        = REALTIME    #实时归档类型
    ARCH_DEST        = SLNNGK02    #实时归档目标实例名,这里是备库的实例名
    
    [ARCHIVE_LOCAL1]
    ARCH_TYPE        = LOCAL          #本地归档类型
    ARCH_DEST        = /dmdbms/arch   #本地归档文件存放路径
    ARCH_FILE_SIZE   = 2024           #单位Mb,本地单个归档文件最大值
    ARCH_SPACE_LIMIT = 0              #单位Mb,0 表示无限制,范围 1024~4294967294M
    ARCH_FLUSH_BUF_SIZE = 0
    ARCH_HANG_FLAG = 1

    这里配置的归档日志三个节点基本是一致的,只是实时归档配置为对方2个节点

    4.配置dmwatcher.ini
    三个实例主备库配置一致
    su - dmdba
    vi /dmdbms/data/slnngk/dmwatcher.ini

    [GRP1]
    DW_TYPE       =  GLOBAL     ##全局守护类型
    DW_MODE       =  AUTO       ##手工切换 AUTO自动切换模式必须部署一个确认监视器,在集群中每个节点必须配置一致,不能一个是自动,一个是手动
    DW_ERROR_TIME    =  10      ##远程守护进程故障认定时间
    INST_RECOVER_TIME =  60     ##主库守护进程启动恢复的间隔时间
    INST_ERROR_TIME  =  10      ##本地实例故障认定时间
    INST_OGUID     =  453332    ##守护系统唯一 OGUID 值
    INST_INI      =  /dmdbms/data/slnngk/dm.ini  #dm.ini配置文件路径
    INST_AUTO_RESTART =  1      ##打开实例的自动启动功能,若配置为0的话,数据库shutdown后,dmwatch守护进程不会把数据库拉起来
    INST_STARTUP_CMD  =  /dmdbms/product/bin/dmserver #命令行方式启动
    RLOG_SEND_THRESHOLD =  0    ##指定主库发送日志到备库的时间阀值,默认关闭
    RLOG_APPLY_THRESHOLD =  0   ##指定备库重演日志的时间阀值,默认关闭

    在主库(192.168.1.134)上配置好了,可以scp到另外两个备库
    su - dmdba
    scp /dmdbms/data/slnngk/dmwatcher.ini dmdba@192.168.1.135:/dmdbms/data/slnngk/
    scp /dmdbms/data/slnngk/dmwatcher.ini dmdba@192.168.1.85:/dmdbms/data/slnngk/

    5.监视器配置文件
    #生产环境如果是自动切换需单独一台服务器配置监视器(该机器只安装AP即可),我这里放在主库(192.168.1.134)上面
    su - dmdba
    vi /dmdbms/data/slnngk/dmmonitor.ini

    MON_DW_Confirm    = 1           ## 0表示普通监视器 ,最多配置8个,1 确认监视器模式
    MON_LOG_PATH    = /dmdbms/log   ##监视器日志文件存放路径
    MON_LOG_INTERVAL  = 60          ##每隔 60s 定时记录系统信息到日志文件
    MON_LOG_FILE_SIZE   = 256        ##每个日志文件最大 256M
    MON_LOG_SPACE_LIMIT  = 0        ##不限定日志文件总占用空间
    [GRP1]
    MON_INST_OGUID    = 453332     #组 GRP1 的唯一OGUID 值
    ##配置为监视器到组GRP1的守护进程的连接信息以―IP:PORT‖的形式配置
    ##IP对应dmmal.ini中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
    MON_DW_IP     = 192.168.1.134:52141
    MON_DW_IP     = 192.168.1.135:52141
    MON_DW_IP     = 192.168.1.85:52141

    注意这里需要创建日志文件
    su - dmdba
    mkdir -p /dmdbms/log

    #############################每个实例注册守护进程################################

    主库:192.168.1.134
    su - root
    [root@host134 root]# cd /dmdbms/product/script/root
    [root@host134 slnngk]#./dm_service_installer.sh -t dmwatcher -p GRP1 -watcher_ini /dmdbms/data/slnngk/dmwatcher.ini

    备库1:192.168.1.135
    su - root
    [root@host135 root]# cd /dmdbms/product/script/root
    [root@host135 slnngk]#./dm_service_installer.sh -t dmwatcher -p GRP1 -watcher_ini /dmdbms/data/slnngk/dmwatcher.ini

    备库2:192.168.1.85
    su - root
    [root@host85 root]# cd /dmdbms/product/script/root
    [root@host85 slnngk]#./dm_service_installer.sh -t dmwatcher -p GRP1 -watcher_ini /dmdbms/data/slnngk/dmwatcher.ini


    这里可以查看刚才注册的服务名
    [root@host134 system]# ls -al /usr/lib/systemd/system/Dm*

    #############################实例注册监听器服务################################
    这里只需要在监听服务器上执行,我这里只在192.168.1.134上执行
    su - root
    [root@host134 root]# cd /dmdbms/product/script/root
    [root@localhost ~]# ./dm_service_installer.sh -t dmmonitor -p Monitor -monitor_ini /dmdbms/data/slnngk/dmmonitor.ini

    #############################配置同步################################
    1.启动三个实例,主备库都启动
    这里不能使用系统服务(systemctl)启动数据库,该方式启动的状态是open模式,会破坏主从关系,使用后台命令的方式启动

     

    192.168.1.134

    su - dmdba
    [dmdba@host134 log]$ cd ~
    [dmdba@host134 ~]$nohup dmserver /dmdbms/data/slnngk/dm.ini mount>dmserver.log &

     

    192.168.1.135
    su - dmdba
    [dmdba@host135 log]$ cd ~
    [dmdba@host135 ~]$nohup dmserver /dmdbms/data/slnngk/dm.ini mount>dmserver.log &


    192.168.1.85
    su - dmdba
    [dmdba@host85 log]$ cd ~
    [dmdba@host85 ~]$nohup dmserver /dmdbms/data/slnngk/dm.ini mount>dmserver.log &

    2.配置主从

    这个时候每个实例都启动到mount状态的,可以查询检查下

    192.168.1.134
    disql sysdba/dameng123
    SQL> select status$,mode$ from v$instance;

    LINEID STATUS$ MODE$
    ---------- ------- ------
    1 MOUNT NORMAL


    192.168.1.135
    disql sysdba/dameng123
    SQL> select status$,mode$ from v$instance;

    LINEID STATUS$ MODE$
    ---------- ------- ------
    1 MOUNT NORMAL

    used time: 5.125(ms). Execute id is 0.

    192.168.1.85
    disql sysdba/dameng123
    SQL> select status$,mode$ from v$instance;

    LINEID STATUS$ MODE$
    ---------- ------- ------
    1 MOUNT NORMAL

    used time: 5.392(ms). Execute id is 0.

    下面进行主备库的配置

    A.主库192.168.1.134
    disql sysdba/dameng123
    SQL>sp_set_oguid(453332);
    SQL>alter database primary;

    B.备库192.168.1.135
    disql sysdba/dameng123
    SQL>sp_set_oguid(453332);
    SQL>alter database standby;

    B.备库192.168.1.85
    disql sysdba/dameng123
    SQL>sp_set_oguid(453332);
    SQL>alter database standby;

    这个时候主备库三个实例额度状态都是mount状态的,下面需要启动dmwatcher,把实例状态拉起来

    SQL> select status$ from v$instance;

    LINEID STATUS$
    ---------- -------
    1 MOUNT

    used time: 0.891(ms). Execute id is 601.

    3.启动dmwatcher
    每个实例都启动(root账号)
    192.168.1.134
    [root@host134 dmdba]#systemctl start DmWatcherServiceGRP1

    192.168.1.135
    [root@host135 dmdba]#systemctl start DmWatcherServiceGRP1

    192.168.1.85
    [root@host85 dmdba]#systemctl start DmWatcherServiceGRP1

    这个时候查看每个实例的状态:

    主库192.168.1.134
    su - dmdba
    disql sysdba/dameng123
    SQL> select status$,mode$ from v$instance;
    
    LINEID     STATUS$ MODE$  
    ---------- ------- -------
    1          OPEN    PRIMARY
    
    used time: 0.787(ms). Execute id is 3.
    
    
    
    备库192.168.1.135
    
    SQL> select status$,mode$ from v$instance;
    
    Server[LOCALHOST:5236]:mode is standby, state is open
    connected
    
    LINEID     STATUS$ MODE$  
    ---------- ------- -------
    1          OPEN    STANDBY
    
    used time: 2.098(ms). Execute id is 100.
    
    
    备库192.168.1.85
    
    SQL> select status$,mode$ from v$instance;
    
    Server[LOCALHOST:5236]:mode is standby, state is open
    connected
    
    LINEID     STATUS$ MODE$  
    ---------- ------- -------
    1          OPEN    STANDBY
    
    used time: 1.735(ms). Execute id is 100.

    3.启动监视器进程
    我们的监视器是配置在主库上面的,192.168.1.134
    [root@host134 root]# systemctl start DmMonitorServiceMonitor

     

    疑问:数据库服务(systemctl)什么时候启动呢,备库可以停掉之前进程后启动,但是主库不想切换的时候如何启动
    systemctl status DmServiceslnngk.service

    ############################数据验证###################################################

    1.主库上创建表空间和用户
    创建表空间

    su - dmdba
    disql sysdba/dameng123
    
    create tablespace tps_hxl datafile '/dmdbms/data/slnngk/tps_hxl01.DBF' size 1024 autoextend on maxsize 32768; ##这里单位是M,文件目录存储在/dmdata/dmdb/DAMENG,这里设置文件最大值,不设置的话就是16TB
    create user hxl identified by dameng123 default tablespace tps_hxl default index tablespace tps_hxl;
    grant dba to hxl;

    2.从库查看表空间和用户

    SQL> select tablespace_name from SYS.DBA_TABLESPACES;
    
    LINEID     TABLESPACE_NAME
    ---------- ---------------
    1          SYSTEM
    2          ROLL
    3          TEMP
    4          MAIN
    5          TPS_HXL
    6          MAIN
    
    6 rows got
    
    SQL> select username from SYS.DBA_USERS;
    
    LINEID     USERNAME  
    ---------- ----------
    1          SYSAUDITOR
    2          HXL
    3          SYSSSO
    4          SYSDBA
    5          SYS
    
    used time: 25.592(ms). Execute id is 102.

    3.主库创建表写入数据

    disql hxl/dameng123
    create table tb_test(id number,name varchar(32));
    insert into tb_test values(1,'name1');
    insert into tb_test values(2,'name2');
    insert into tb_test values(3,'name3');
    insert into tb_test values(4,'name4');
    insert into tb_test values(5,'name5');
    insert into tb_test values(6,'name6');
    insert into tb_test values(7,'name7');
    insert into tb_test values(8,'name8');
    insert into tb_test values(9,'name9');
    insert into tb_test values(10,'name10');
    commit;

    从库查询

    disql hxl/dameng123
    SQL> select * from tb_test;
    
    LINEID     ID NAME  
    ---------- -- ------
    1          1  name1
    2          2  name2
    3          3  name3
    4          4  name4
    5          5  name5
    6          6  name6
    7          7  name7
    8          8  name8
    9          9  name9
    10         10 name10
    
    10 rows got

    ###########################监视器监控相关############################

    在监视器上执行如下命令,我这里是在192.168.1.134机器上执行

    1.登陆监视器模式
    [dmdba@host134 ~]$ dmmonitor /dmdbms/data/slnngk/dmmonitor.ini
    Exist multiple CONFIRM dmmonitor, can only startup one!

    这里提示只能配置一个确认监视器,我们拷贝下一份dmmonitor.ini,将MON_DW_Confirm修改为0,改成普通监视器
    [dmdba@host134 ~]$ cp /dmdbms/data/slnngk/dmmonitor.ini /dmdbms/data/slnngk/dmmonitor0.ini

    vi /dmdbms/data/slnngk/dmmonitor0.ini

    如下项修改为0
    MON_DW_Confirm = 0 ## 0表示普通监视器 ,最多配置8个,1 确认监视器模式

    [dmdba@host134 ~]$dmmonitor /dmdbms/data/slnngk/dmmonitor0.ini
    [monitor]         2022-08-10 11:05:41: DMMONITOR[4.0] V8
    [monitor]         2022-08-10 11:05:41: DMMONITOR[4.0] IS READY.
    
    [monitor]         2022-08-10 11:05:42: Received message from(SLNNGK01)
                      WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                      2022-08-10 11:05:41  OPEN           OK        SLNNGK01         OPEN        PRIMARY   VALID    3        40157           40158           
    
    [monitor]         2022-08-10 11:05:42: Received message from(SLNNGK02)
                      WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                      2022-08-10 11:05:41  OPEN           OK        SLNNGK02         OPEN        STANDBY   VALID    3        40157           40157           
    
    [monitor]         2022-08-10 11:05:42: Received message from(SLNNGK03)
                      WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN            
                      2022-08-10 11:05:51  OPEN           OK        SLNNGK03         OPEN        STANDBY   VALID    3        40157           40157          
                      

    2.查看可切换的节点

    show
    2022-08-10 11:07:17 
    #================================================================================#
    GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG  
    GRP1             453332      FALSE           AUTO            FALSE 
    
    choose switchover GRP1
    Can choose one of the following instances to do switchover:
    1: SLNNGK02
    2: SLNNGK03

    这里列出了实例2和实例3是可以切换的

    ###########################应用程序连接############################
    这里我在其中一台从库上连接,这里是在192.168.1.85机器上连接

    1.通过服务名连接,只连接备库
    [root@host85 root]# more /etc/dm_svc.conf
    TIME_ZONE=(480)
    LANGUAGE=(en)
    MYDMDB=(192.168.1.134:5236,192.168.1.135:5236,192.168.1.85:5236)
    LOGIN_MODE=(2) ##只连接备库
    SWITCH_TIMES=(3) ##以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数
    SWITCH_INTERVAL=(100) ##在服务器之间切换的时间间隔,单位为毫秒


    通过服务名连接(大小写都可以)
    disql sysdba/dameng123@MYDMDB
    disql sysdba/dameng123@mydmdb

    SQL> select name,status$,mode$ from v$instance;

    LINEID NAME STATUS$ MODE$
    ---------- -------- ------- -------
    1 SLNNGK03 OPEN STANDBY

    used time: 3.227(ms). Execute id is 101.

    2.通过服务名连接,只连接主库
    [root@host85 root]# more /etc/dm_svc.conf
    TIME_ZONE=(480)
    LANGUAGE=(en)
    MYDMDB=(192.168.1.134:5236,192.168.1.135:5236,192.168.1.85:5236)
    LOGIN_MODE=(1) ##只连接备库
    SWITCH_TIMES=(3) ##以服务名连接库时,若未找到符合条件的库建立连接,将尝试遍历服务名中库列表的次数
    SWITCH_INTERVAL=(100) ##在服务器之间切换的时间间隔,单位为毫秒

    [dmdba@host85 slnngk]$ disql sysdba/dameng123@MYDMDB

    Server[192.168.1.134:5236]:mode is primary, state is open
    login used time : 9.862(ms)
    disql V8
    SQL> select name,status$,mode$ from v$instance;

    LINEID NAME STATUS$ MODE$
    ---------- -------- ------- -------
    1 SLNNGK01 OPEN PRIMARY

    used time: 3.770(ms). Execute id is 1000.

    连接方式说明:
    LOGIN_MODE:指定优先登录的服务器模式.
    0:优先连接 PRIMARY 模式的库,NORMAL模式次之,最后选择STANTBY模式;
    1:只连接主库;
    2:只连接备库;
    3:优先连接STANDBY 模式的库, PRIMARY 模式次之,最后选择NORMAL模式;
    4:优先连接NORMAL 模式的库,PRIMARY 模式次之,最后选择STANDBY模式;

  • 相关阅读:
    (视频)Erich Gamma 与 Visual Studio Online 的一点野史
    三维重建技术概述
    三维重建基础
    用户故事驱动的敏捷开发 – 2. 创建backlog
    用户故事驱动的敏捷开发 – 1. 规划篇
    TFS 10周年生日快乐 – TFS与布莱恩大叔的故事
    【DevOps敏捷开发动手实验】开源文档 v2015.2 stable 版发布
    看见的力量 – (II) 影响地图
    看见的力量 – (I) 解题的思维
    UDAD 用户故事驱动的敏捷开发 – 演讲实录
  • 原文地址:https://www.cnblogs.com/hxlasky/p/16572436.html
Copyright © 2020-2023  润新知