达梦数据库(主从)

准备阶段

规划

名称IP实例名数据库名
主库192.168.1.120dm1dm
从库192.168.1.121dm2dm
监听器192.168.1.121

涉及端口

MAL_INST_PORT       5236      数据库实例监听端口
MAL_PORT            61141     MAL 系统监听 TCP 连接的端口
MAL_DW_PORT         33141     实例监听守护进程 TCP 连接的端口
MAL_INST_DW_PORT    52141     实例本地的守护进程监听 TCP 连接的端口

创建用户与安装目录

:::tips
数据库软件安装目录 /home/dmdba/dmdbms
实例安装目录 /home/dmdba/dmdata
归档日志存放目录 /home/dmdba/dmarch
备份文件存放目录 /home/dmdba/dmbak
:::

参考达梦数据库安装文档
1. 创建用户组dinstall
  groupadd dinstall
2. 创建安装用户dmdba
  useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
3. 设置DM用户密码。(这里密码我使用的是dameng111)
  passwd dmdba
4. 创建安装程序临时目录
  mkdir -p /home/dmdba/dmdbms
  mkdir -p /home/dmdba/dmdata
  mkdir -p /home/dmdba/dmarch
  mkdir -p /home/dmdba/dmbak
5. 临时目录所有者及所属组变更。
  chown -R dmdba.dinstall /home/dmdba
6. 临时目录权限设置。
  chmod -R 764 /home/dmdba     #放在/home下一定注意 文件权限问题

关闭防火墙

# systemctl status firewalld.service
# systemctl stop firewalld.service
# systemctl disable firewalld.service

安装达梦数据库

下载达梦.iso文件

  1. 官网下载dm8的ios包,上传到服务器 (Linux系统),官网链接:下载ios地址 需登录才能下载。

image.png

  1. 这里我已经上传好了。

image.png

  1. 挂载

**说明:**iso 后缀的文件,需要对文件进行挂载,我们将文件挂载到/mnt目录(哪个目录都可以,这样方便找,之后才是安装过程)下。命令如下:

[root@dm1 mnt]# mount -o loop /dm8_20240408_x86_rh7_64.iso /mnt

image.png

  1. 修改系统配置

     这里修改一下系统限制,否则之后在安装时可能报错。
    
#  vi /etc/security/limits.conf
按i 切换到Insert模式
粘贴之后按Esc,在输入:wq 保存并退出


将一下内容粘贴到最后:
* soft nofile 100001
* hard nofile 100002
root soft nofile 100001
root hard nofile 100002
dmdba        soft    nofile           65536
dmdba        hard    nofile           65536
dmdba        soft    nproc            65535
dmdba        hard    nproc            65535

安装 主备

使用专员用户安装 主备

[root@dm1 /]# cd /mnt/
[root@dm1 mnt]# su dmdba
[root@dm1 mnt]# ls
DM8 Install.pdf  DMInstall.bin
[dmdba@dm1 mnt]# ./DMInstall.bin -i

image.png

安装DmAP 主备

[dmdba@dm1 mnt]$ exit
exit
[root@dm1 mnt]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务
[root@dm1 mnt]#

image.png
image.png

初始化数据库 主备

image.png

# 数据库安装目录
[root@dm1 mnt]# cd /home/dmdba/dmdbms/bin   
[root@dm1 bin]# su dmdba
[dmdba@dm1 bin]$ pwd
/home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./dminit PATH=/home/dmdba/dmdata db_name=its instance_name=dm1
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-03-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /home/dmdba/dmdata/its/its01.log


 log file path: /home/dmdba/dmdata/its/its02.log

write to dir [/home/dmdba/dmdata/its].
create dm database success. 2024-06-05 18:45:11 
# 数据库安装目录
[root@dm1 mnt]# cd /home/dmdba/dmdbms/bin   
[root@dm1 bin]# su dmdba
[dmdba@dm1 bin]$ pwd
/home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./dminit PATH=/home/dmdba/dmdata db_name=its instance_name=dm2
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2025-03-21
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /home/dmdba/dmdata/its/its01.log


 log file path: /home/dmdba/dmdata/its/its02.log

write to dir [/home/dmdba/dmdata/its].
create dm database success. 2024-06-05 18:48:12

前台启动实例,生成实例对应文件,启动后关闭即可。

[dmdba@dm1 bin]$ ./dmserver /home/dmdba/dmdata/its/dm.ini
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 1400
nsql_vm_t = 328
prjt2_vm_t = 176
ltid_vm_t = 216
nins2_vm_t = 1008
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 768
slct2_vm_t = 208
nli2_vm_t = 192
aagr2_vm_t = 280
pscn_vm_t = 216
dist_vm_t = 896
DM Database Server 64 V8 03134284172-20240321-222308-20093 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2025-03-21
file lsn: 0
...
aud sys init success.
aud rt sys init success.

image.png
------------------------------------------------> 主备都操作 <-----------------------------------------

主库脱机备份数据 主库

脱机备份前要关闭数据库实例,否则备份会出错,备份是为了确保主备数据库在自动同步前数据是一致

[dmdba@dm1 bin]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./dmrman
dmrman V8
RMAN> BACKUP DATABASE '/home/dmdba/dmdata/its/dm.ini' FULL BACKUPSET '/home/dmdba/dmbak/its_202406';
BACKUP DATABASE '/home/dmdba/dmdata/its/dm.ini' FULL BACKUPSET '/home/dmdba/dmbak/its_202406';
file dm.key not found, use default license!
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[44638], file_lsn[44638]
Processing backupset /home/dmdba/dmbak/its_202406
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:03.407
RMAN> exit
time used: 0.406(ms)

数据库备份文件

  1. 传到备库进行数据同步
[dmdba@dm1 dmbak]$ scp -r /home/dmdba/dmbak/its_202406 192.168.1.121:/home/dmdba/dmbak/its_202406
dmdba@192.168.1.121's password:
its_202406.bak                                                                                                                         100% 9950KB  32.5MB/s   00:00
its_202406.meta                                                                                                                        100%  102KB   5.7MB/s   00:00
[dmdba@dm1 dmbak]$

备库机器查看

  1. 备库恢复数据
[dmdba@dm2 bin]$ pwd
/home/dmdba/dmdbms/bin
[dmdba@dm2 bin]$ ./dmrman
dmrman V8
RMAN> RESTORE DATABASE '/home/dmdba/dmdata/its/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/its_202406';
RESTORE DATABASE '/home/dmdba/dmdata/its/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/its_202406';
file dm.key not found, use default license!
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
restore successfully.
time used: 00:00:02.530
RMAN> RECOVER DATABASE '/home/dmdba/dmdata/its/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/its_202406';
RECOVER DATABASE '/home/dmdba/dmdata/its/dm.ini' FROM BACKUPSET '/home/dmdba/dmbak/its_202406';
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[44638], file_lsn[44638]
recover successfully!
time used: 577.472(ms)
RMAN> RECOVER DATABASE '/home/dmdba/dmdata/its/dm.ini' UPDATE DB_MAGIC;
RECOVER DATABASE '/home/dmdba/dmdata/its/dm.ini' UPDATE DB_MAGIC;
Database mode = 2, oguid = 0
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
EP[0]'s cur_lsn[44638], file_lsn[44638]
recover successfully!
time used: 00:00:01.178

修改配置文件

实例配置文件:dm.ini
归档配置文件:dmarch.ini
MAL系统配置文件:dmmal.ini
守护进程配置文件:dmwatcher.ini
监视器配置文件:dmmonitor.ini

实例配置文件 dm.ini 主备

[dmdba@dm1 dmbak]$ cd /home/dmdba/dmdata/its
[dmdba@dm1 its]$ vi /home/dmdba/dmdata/its/dm.ini
按i 切换到Insert模式
粘贴之后按Esc,在输入:wq 保存并退出
 从库可以将文件 scp 之后修改实例名
[dmdba@dm1 its]$ scp /home/dmdba/dmdata/its/dm.ini 192.168.1.121:/home/dmdba/dmdata/its/dm.ini
INSTANCE_NAME                   = DM1                          #Instance name
MAL_INI                         = 1                            #打开 MAL 系统
ARCH_INI                        = 1                            #打开归档配置
ALTER_MODE_STATUS               = 0                            #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS               = 2                            #不允许备库 OFFLINE 表空间
INSTANCE_NAME                   = DM2                          #Instance name
MAL_INI                         = 1                            #打开 MAL 系统
ARCH_INI                        = 1                            #打开归档配置
ALTER_MODE_STATUS               = 0                            #不允许手工方式修改实例模式/状态/OGUID
ENABLE_OFFLINE_TS               = 2                            #不允许备库 OFFLINE 表空间

归档配置文件dmarch.ini 主备

[dmdba@dm1 dmbak]$ cd /home/dmdba/dmdata/its
[dmdba@dm1 its]$ vi /home/dmdba/dmdata/its/dmarch.ini
按i 切换到Insert模式
粘贴之后按Esc,在输入:wq 保存并退出
从库可以将文件 scp 之后修改实例名
[dmdba@dm1 its]$ scp /home/dmdba/dmdata/its/dmarch.ini 192.168.1.121:/home/dmdba/dmdata/its/dmarch.ini
[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #归档类型
ARCH_DEST     = DM2     #归档目标实例名(主库侧填写备库实例名,我的备库实例名为DM2)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL     #本地归档类型
ARCH_DEST     = /home/dmdba/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE    = 128   #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 0     #单位 MB,0 表示无限制,范围 1024~4294967294 MB
[ARCHIVE_REALTIME]
ARCH_TYPE     = REALTIME  #归档类型
ARCH_DEST     = DM1    #归档目标实例名(主库侧填写备库实例名,我的备库实例名为DM2)
[ARCHIVE_LOCAL1]
ARCH_TYPE     = LOCAL     #本地归档类型
ARCH_DEST     = /home/dmdba/dmarch #本地归档文件存放路径
ARCH_FILE_SIZE    = 128   #单位 MB,本地单个归档文件最大值
ARCH_SPACE_LIMIT  = 0     #单位 MB,0 表示无限制,范围 1024~4294967294 MB

MAL系统配置文件 dmmal.ini 主备

[dmdba@dm1 dmbak]$ cd /home/dmdba/dmdata/its
[dmdba@dm1 its]$ vi /home/dmdba/dmdata/its/dmmal.ini
按i 切换到Insert模式
粘贴之后按Esc,在输入:wq 保存并退出
从库可以将文件 scp 之后修改实例名
[dmdba@dm1 its]$ scp /home/dmdba/dmdata/its/dmmal.ini 192.168.1.121:/home/dmdba/dmdata/its/dmmal.ini
MAL_CHECK_INTERVAL   = 5  # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  # 判定 MAL链路断开的时间
[MAL_INST1]
  MAL_INST_NAME = dm1            # 与 dm.ini中的 INSTANCE_NAME一致
  MAL_HOST     = 192.168.1.120   # MAL系统监听 TCP 内部网络 IP
  MAL_PORT     = 61141           # MAL系统监听 TCP连接的端口
  MAL_INST_HOST = 192.168.1.120  #实例的对外服务 IP地址
  MAL_INST_PORT   = 5236         #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT   = 52141          #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 33141
[MAL_INST2]
  MAL_INST_NAME = dm2            # 与 dm.ini中的 INSTANCE_NAME 一致
  MAL_HOST      = 192.168.1.121  # MAL系统监听 TCP内部网络 IP
  MAL_PORT      = 61141          # MAL系统监听 TCP连接的端口
  MAL_INST_HOST = 192.168.1.121  #实例的对外服务 IP地址
  MAL_INST_PORT = 5236           #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT  = 52141           #实例对应的守护进程监听 TCP端口
  MAL_INST_DW_PORT = 33141
MAL_CHECK_INTERVAL   = 5  # MAL链路检测时间间隔
MAL_CONN_FAIL_INTERVAL  = 5  # 判定 MAL链路断开的时间
[MAL_INST1]
  MAL_INST_NAME = dm1            # 与 dm.ini中的 INSTANCE_NAME一致
  MAL_HOST     = 192.168.1.120   # MAL系统监听 TCP 内部网络 IP
  MAL_PORT     = 61141           # MAL系统监听 TCP连接的端口
  MAL_INST_HOST = 192.168.1.120  #实例的对外服务 IP地址
  MAL_INST_PORT   = 5236         #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT   = 52141          #实例对应的守护进程监听 TCP 端口
  MAL_INST_DW_PORT = 33141
[MAL_INST2]
  MAL_INST_NAME = dm2            # 与 dm.ini中的 INSTANCE_NAME 一致
  MAL_HOST      = 192.168.1.121  # MAL系统监听 TCP内部网络 IP
  MAL_PORT      = 61141          # MAL系统监听 TCP连接的端口
  MAL_INST_HOST = 192.168.1.121  #实例的对外服务 IP地址
  MAL_INST_PORT = 5236           #与 dm.ini中的 PORT_NUM一致
  MAL_DW_PORT  = 52141           #实例对应的守护进程监听 TCP端口
  MAL_INST_DW_PORT = 33141

守护进程配置文件 dmwatcher.ini 主备

[dmdba@dm2 its]$ vi /home/dmdba/dmdata/its/dmwatcher.ini

[GRP_RW] 
DW_TYPE    = GLOBAL  #全局守护类型
DW_MODE    = AUTO  #自动切换模式
DW_ERROR_TIME     = 10  #远程守护进程故障认定时间
INST_RECOVER_TIME  = 60  #主库守护进程启动恢复的间隔时间
INST_ERROR_TIME   = 10  #本地实例故障认定时间
INST_OGUID         = 453331  #守护系统唯一 OGUID 值
INST_INI           = /home/dmdba/dmdata/its/dm.ini  # dm.ini 配置文件路径
INST_AUTO_RESTART  = 1   #打开实例的自动启动功能
INST_STARTUP_CMD   = /home/dmdba/dmdbms/bin/dmserver  #命令行方式启动

监视器配置文件 dmmonitor.ini 备库

vi /home/dmdba/dmdata/its/dmmonitor.ini

MON_DW_CONFIRM    = 1   # 0:非确认(故障手切) 1:确认(故障自切)
MON_LOG_PATH    = /home/dmdba/dmdata/dmmonitor_auto/log #监视器日志文件存放路径
MON_LOG_INTERVAL  = 60 #每隔 60 s 定时记录系统信息到日志文件
MON_LOG_FILE_SIZE   = 32 #每个日志文件最大 32 MB
MON_LOG_SPACE_LIMIT  = 0  #不限定日志文件总占用空间
[GRP_RW] 
 MON_INST_OGUID    = 453331 #组 GRP_RW 的唯一 OGUID 值
#以下配置为监视器到组 GRP_RW 的守护进程的连接信息,以“IP:PORT”的形式配置
#IP 对应 dmmal.ini 中的 MAL_HOST,PORT 对应 dmmal.ini 中的 MAL_DW_PORT
 MON_DW_IP     = 192.168.1.120:52141
 MON_DW_IP     = 192.168.1.121:52141

启动服务

dmdba用户启动数据库实例 主备

[dmdba@dm1 its]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 its]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./dmserver /home/dmdba/dmdata/its/dm.ini mount
file dm.key not found, use default license!
version info: develop
csek2_vm_t = 1400
nsql_vm_t = 328
prjt2_vm_t = 176
ltid_vm_t = 216
nins2_vm_t = 1008
nset2_vm_t = 272
ndlck_vm_t = 192
ndel2_vm_t = 768
slct2_vm_t = 208
nli2_vm_t = 192
aagr2_vm_t = 280
pscn_vm_t = 216
dist_vm_t = 896
DM Database Server 64 V8 03134284172-20240321-222308-20093 startup...
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL
Database mode = 0, oguid = 0
License will expire on 2025-03-21
file lsn: 44638
ndct db load finished, code:0
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct second level fill fast pool finished
ndct third level fill fast pool finished
ndct fill fast pool finished
nsvr_startup end.
aud sys init success.
aud rt sys init success.
systables desc init success.
ndct_db_load_info finished, code:0.
SYSTEM IS READY.

**设置数据库主从状态: **主备

# 新开终端进行主库操作
[root@dm1 ~]# su dmdba
[dmdba@dm1 root]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 9.088(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 3.975(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 2.256(毫秒). 执行号:2.
SQL> alter database primary;                  #修改为 primary 模式
操作已执行
已用时间: 15.889(毫秒). 执行号:0.
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 14.499(毫秒). 执行号:3.
# 新开终端进行主库操作
[root@dm1 ~]# su dmdba
[dmdba@dm1 root]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于普通配置状态
登录使用时间 : 9.088(ms)
disql V8
SQL> SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 1);
DMSQL 过程已成功完成
已用时间: 3.975(毫秒). 执行号:1.
SQL> sp_set_oguid(453331);
DMSQL 过程已成功完成
已用时间: 2.256(毫秒). 执行号:2.
SQL> alter database standby;                 #修改为 standby 模式
操作已执行
已用时间: 7.485(毫秒). 执行号:0.
SQL>  SP_SET_PARA_VALUE(1, 'ALTER_MODE_STATUS', 0);
DMSQL 过程已成功完成
已用时间: 12.111(毫秒). 执行号:3.

dmdba用户启动守护进程 主备

守护进程启动后,会将 Mount 的实例 Open。

[dmdba@dm1 bin]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./dmwatcher /home/dmdba/dmdata/its/dmwatcher.ini
DMWATCHER[4.0] V8
DMWATCHER[4.0] IS READY

image.png
image.png
守护进程启动成功!

启动监视器 备库

[root@dm2 ~]# su dmdba
[dmdba@dm2 root]$ cd /home/dmdba/dmdbms/bin
[monitor]         2024-06-06 15:56:42: DMMONITOR[4.0] V8
[monitor]         2024-06-06 15:56:43: DMMONITOR[4.0] IS READY.
[monitor]         2024-06-06 15:56:43:
#-----------------------------------------------------------------------------------------------#
GET MONITOR CONNECT INFO FROM DMWATCHER(DM2), THE FIRST LINE IS SELF INFO.
DW_CONN_TIME         MON_CONFIRM    MID            MON_IP                MON_VERSION
2024-06-06 15:56:43  TRUE           512785478      ::ffff:192.168.1.121  DMMONITOR[4.0] V8
#-----------------------------------------------------------------------------------------------#
[monitor]    2024-06-06 15:56:43: 收到守护进程(DM2)消息
             WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
             2024-06-06 15:56:43  OPEN           OK        DM2              OPEN        PRIMARY   VALID    8        45037           45037
[monitor]    2024-06-06 15:56:44: 收到守护进程(DM1)消息
             WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN
             2024-06-06 15:56:44  OPEN           OK        DM1              OPEN        STANDBY   VALID    8        45037           45037

image.png
**RSTAT:此字段对备库有效,表示主库到备库的归档状态,可能为 Valid/Invalid/Unknown,对于本地守护类型的备库,此字段为 NULL,对于主库本身,此字段值为 Valid。**
**监视器显示以上数据,说明主备搭建成功。**需要注意的数据有WSTATUS(OPEN)、ISTATUS(OPEN)、RTYPE(REALTIME)、RSTAT(VALID)。

验证

主库:使用 disql 客户端登录,创建测试表,插入数据。

[root@dm1 ~]# su dmdba
[dmdba@dm1 root]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm1 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于主库打开状态
登录使用时间 : 9.685(ms)
disql V8
SQL> create table test(id int, name varchar2(20));
操作已执行
已用时间: 22.335(毫秒). 执行号:601.
SQL>  insert into test values (1, '达梦');
影响行数 1

已用时间: 1.766(毫秒). 执行号:602.
SQL> select * from test;

行号     ID          NAME
---------- ----------- ------
1          1           达梦

已用时间: 1.380(毫秒). 执行号:603.
SQL> commit;
操作已执行
已用时间: 2.386(毫秒). 执行号:604.

image.png
从库:使用 disql 客户端登录,使用 disql 客户端登录,查询测试表验证。

[root@dm2 ~]# su dmdba
[dmdba@dm2 root]$ cd /home/dmdba/dmdbms/bin
[dmdba@dm2 bin]$ ./disql SYSDBA/SYSDBA

服务器[LOCALHOST:5236]:处于备库打开状态
登录使用时间 : 6.257(ms)
disql V8
SQL> select * from test;

行号     ID          NAME
---------- ----------- ------
1          1           达梦

已用时间: 27.951(毫秒). 执行号:101.

image.png
至此,数据同步成功。

验证主从切换

主库关机,在从库的监控器上查看:
image.png

服务注册

上述服务启动都是前台启动,关闭窗口服务就会退出,可以将启动命令注册为系统服务,便于操作。

[root@dm1 ~]# cd /home/dmdba/dmdbms/script/root/
[root@dm1 root]# ./dm_service_installer.sh -t dmwatcher -p dmrw -watcher_ini /home/dmdba/dmdata/its/dmwatcher.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmWatcherServicedmrw.service to /usr/lib/systemd/system/DmWatcherServicedmrw.service.
创建服务(DmWatcherServicedmrw)完成
[root@dm1 root]#
[root@dm1 ~]# cd /home/dmdba/dmdbms/script/root/
[root@dm1 root]# ./dm_service_installer.sh -t dmserver -p dmrw -dm_ini /home/dmdba/dmdata/its/dm.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicedmrw.service to /usr/lib/systemd/system/DmServicedmrw.service.
创建服务(DmServicedmrw)完成
[root@dm1 root]#
[root@dm2 ~]# cd /home/dmdba/dmdbms/script/root/
[root@dm2 root]# ./dm_service_installer.sh -t dmmonitor -p confirm -monitor_ini /home/dmdba/dmdata/its/dmmonitor.ini
Created symlink from /etc/systemd/system/multi-user.target.wants/DmMonitorServiceconfirm.service to /usr/lib/systemd/system/DmMonitorServiceconfirm.service.
创建服务(DmMonitorServiceconfirm)完成
[root@dm2 root]#

查询是否注册成功

# systemctl list-unit-files --type=service | grep 'DmServicedmrw'
DmServicedmrw.service                         enabled
# systemctl list-unit-files --type=service | grep 'DmWatcherServicedmrw'
DmWatcherServicedmrw.service                  enabled
# systemctl list-unit-files --type=service | grep 'DmMonitorServiceconfirm'
DmMonitorServiceconfirm.service               enabled

主备集群重启顺序

**启动:主备库实例 → 主备库守护进程 → 监视器**
**关闭:监视器 → 主备库守护进程 → 主备库实例**

1.关闭监视器:systemctl stop DmMonitorServiceconfirm
2.关闭主库守护进程:systemctl stop DmWatcherServicedmrw
3.关闭备库守护进程:systemctl stop DmWatcherServicedmrw
4.关闭主库实例:systemctl stop DmServicedmrw
5.关闭备库实例:systemctl stop DmServicedmrw
6.启动主库实例:systemctl start DmServicedmrw
7.启动备库实例:systemctl start DmServicedmrw
8.启动主库守护进程:systemctl start DmWatcherServicedmrw
9.启动备库守护进程:systemctl start DmWatcherServicedmrw
10.启动监视器:systemctl start DmMonitorServiceconfirm

image.png

卸载

达梦数据库的安装目录里有卸载的脚本
# systemctl stop DmServicedmrw         停止数据库服务

进入安装目录:
  [root@dm1 /]# cd /home/dmdba/dmdbms/
[root@dm1 dmdbms]# ll
总用量 40
drwxr-xr-x 10 dmdba dinstall 8192 65 11:37 bin
drwxr-xr-x  2 dmdba dinstall   30 65 10:30 bin2
drwxr-xr-x  3 dmdba dinstall   19 65 10:30 desktop
drwxr-xr-x  2 dmdba dinstall 4096 65 10:31 doc
drwxr-xr-x 14 dmdba dinstall  160 65 10:31 drivers
drwxr-xr-x  2 dmdba dinstall 4096 65 10:30 include
drwxr-xr-x  2 dmdba dinstall   94 65 10:30 jar
drwxr-xr-x  7 dmdba dinstall  161 65 10:30 jdk
-rwxr-xr-x  1 dmdba dinstall 1146 725 2023 license_chs.txt
-rwxr-xr-x  1 dmdba dinstall 1138 725 2023 license_cht.txt
-rwxr-xr-x  1 dmdba dinstall 1071 421 2023 license_en.txt
drwxr-xr-x  2 dmdba dinstall  270 65 11:54 log
drwxr-xr-x  6 dmdba dinstall   92 65 10:30 samples
drwxr-xr-x  3 dmdba dinstall   37 65 10:30 script
drwxr-xr-x  9 dmdba dinstall 4096 65 10:31 tool
drwxr-xr-x  3 dmdba dinstall   97 65 10:31 uninstall
-rwxr-xr-x  1 dmdba dinstall 2208 65 10:31 uninstall.sh
[root@dm1 dmdbms]# ./uninstall.sh -i
请确认是否卸载达梦数据库(/home/dmdba/dmdbms/)? (y/Y:是 n/N:否):y

是否删除dm_svc.conf配置文件? (y/Y:是 n/N:否):y

正在删除所有数据库库服务
删除数据库服务DmWatcherServicedmrw
删除数据库服务DmWatcherServicedmrw完成。
删除数据库服务DmJobMonitorService
删除数据库服务DmJobMonitorService完成。
删除数据库服务DmInstanceMonitorService
删除数据库服务DmInstanceMonitorService完成。
删除数据库服务DmAuditMonitorService
删除数据库服务DmAuditMonitorService完成。
删除数据库服务DmAPService
删除数据库服务DmAPService完成。
删除数据库服务DmServicedmrw
删除数据库服务DmServicedmrw完成。
删除所有数据库库服务完成
正在删除数据库目录
删除bin目录
删除bin目录完成
删除bin2目录
删除bin2目录完成
删除include目录
删除include目录完成
删除desktop目录
删除desktop目录完成
删除doc目录
删除doc目录完成
删除drivers目录
删除drivers目录完成
删除jdk目录
删除jdk目录完成
删除jar目录
删除jar目录完成
删除samples目录
删除samples目录完成
删除script目录
删除script目录完成
删除tool目录
删除tool目录完成
删除uninstall目录
删除uninstall目录完成
删除license_en.txt文件
删除license_en.txt文件完成
删除license_chs.txt文件
删除license_chs.txt文件完成
删除license_cht.txt文件
删除license_cht.txt文件完成
删除uninstall.sh文件
删除uninstall.sh文件完成
删除数据库目录完成
参考文档:https://blog.csdn.net/weixin_43169078/article/details/131614221

旨在记录,如有错误之处,麻烦联系作者改正。希望与各位大佬们相互交流共同进步。

  • 16
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值