达梦单机改主备

一、环境信息

1、部署规划

在这里插入图片描述

2、查看主库信息

在这里插入图片描述

命令行查询数据库初始化信息:
SQL> select * from v$option;

二、备库初始化实例

1、操作系统资源配置

1、创建用户和组

#创建用户组
[root@~]# groupadd  dinstall
#创建用户
[root@~]# useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
#修改密码
[root@~]# passwd dmdba
#查看当前dmdba用户属组
[root@~]#id dmdba
#创建目录并授权(根据实际安装路径修改)
[root@~]# mkdir -p /dm/dmdbms	
[root@~]# chown -R dmdba:dinstall /dm/dmdbms
[root@~]# chmod -R 755 /dm/dmdbms

2、调整系统参数
因操作系统存在差异性,有些操作系统没有该文件,请根据实际操作系统进行修改。

[root@~]# vim /etc/sysctl.conf
vm.overcommit_memory = 0
vm.swappiness = 0
[root@~]# sysctl -p
[root@~]# sysctl -p /etc/sysctl.conf
[root@~]# sysctl -q vm.swappiness
[root@~]# vi /etc/security/limits.conf
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      nproc      10240
dmdba  hard      nproc      10240
验证:
查看limit.conf资源限制: 通过查看/proc/进程号/limits确定是否生效
例:cat /proc/pid/limits
通过systemctl或者systemd service方式设定随机自启动的数据库服务,其能打开的最大文件描述符、proc数量等不受limits.conf控制,需要修改/etc/systemd/system.conf文件。
[root@~]# vi /etc/systemd/system.conf
DefaultLimitFSIZE=unlimited
DefaultLimitDATA=unlimited
DefaultLimitCORE=unlimited
DefaultLimitNOFILE=65536
DefaultLimitNPROC=10240
[root@~]# vi /etc/sysconfig/selinux
SELINUX = disabled
关闭防火墙
具体是否可以关闭防火墙根据实际要求进行调整,若不能关闭防火墙,需要根据端口规划进行防火墙策略配置,如关闭防火墙可参照以下操作:
1)查看防火状态
systemctl status firewalld
service iptables status
2)暂时关闭防火墙
systemctl stop firewalld
service iptables stop
3)关闭防火墙开机自启
systemctl disable firewalld
chkconfig iptables off
 coredump参数修改
 1)设置OS层面的core文件生成大小
#使用root用户和dmdba用户分别执行如下语句
ulimit -c unlimited
2)更改core文件的默认生成路径。
#重新设置如下:
vi /etc/sysctl.conf 添加对应core文件参数(具体路径根据实际修改)
kernel.core_pattern =/var/log/dm/core/core-%e-%p-%s
执行 sysctl -p 进行生效
#模拟数据库读写小数据来测试硬盘的IO,命令如下:(在数据盘、归档盘上测试)
[root@~]# dd if=/dev/zero of=test bs=32k count=20k oflag=dsync
#测试网络传输速度,注意要测试双向的网络传输速度,命令如下:
[root@~]# scp local_file remote_username@remote_ip:remote_folder

注:小于30MB/S有风险
关闭numa检查
①vi /etc/default/grub文件,调整如下行,增加numa=off:
GRUB_CMDLINE_LINUX="resume=/dev/sda1 splash=silent quiet showopts crashkernel=113M,high crashkernel=72M,low numa=off"
②查询是UEFI-based机器还是BIOS-based的机器
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
③重新生成grub.cfg
若是 UEFI-based 的机器,请执行:
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg
若是 BIOS-based 的机器,请执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
④重启操作系统
⑤查看是否生效:
cat /proc/cmdline
禁用透明大页
永久关闭 transparent_hugepage
①查看透明大页设置:
cat /sys/kernel/mm/transparent_hugepage/enabled
[always] madvise never
说明已启用透明大页 
②vi /etc/default/grub文件,配置如下参数(标红部分):
GRUB_CMDLINE_LINUX="resume=/dev/sda1 splash=silent quiet showopts crashkernel=113M,high crashkernel=72M,low numa=off transparent_hugepage=never"
③查询是UEFI-based机器还是BIOS-based的机器
[ -d /sys/firmware/efi ] && echo UEFI || echo BIOS
④重新生成grub.cfg
若是 UEFI-based 的机器,请执行:
grub2-mkconfig -o /boot/efi/EFI/kylin/grub.cfg
若是 BIOS-based 的机器,请执行:
grub2-mkconfig -o /boot/grub2/grub.cfg
⑤重启操作系统
⑥查看是否生效:
cat /sys/kernel/mm/transparent_hugepage/enabled
always madvise [never]
注意:如果以上操作关闭不了透明大页,按照如下方式进行关闭:
查看/sys/kernel/mm/transparent_hugepage/defrag配置文件缺省配置为“madvise”。
如需永久修改配置为“never”,需在/etc/rc.local中添加如下内容:
if test -f /sys/kernel/mm/transparent_hugepage/defrag; then
   echo never > /sys/kernel/mm/transparent_hugepage/defrag
fi
修改磁盘调度算法
查看对应的调度算法:(如果现场环境默认为deadline,无需调整)
通过lsblk命令找到数据盘对应的物理盘
[root@~]# lsblk
cat /sys/block/{DEVICE-NAME}/queue/scheduler,注意把{DEVICE-NAME}替换会数据库所使用的对应的磁盘名称,以下以sda为例:
cat /sys/block/sda/queue/scheduler
注意上图选中的调度算法是[cfq],需要修改调度算法为deadline。
临地更改I/O调度方法,重启后失效:
echo deadline > /sys/block/sda/queue/scheduler
永久的更改I/O调度方法:
grubby --update-kernel=ALL --args="elevator=deadline"
重启:
reboot
重新确认调度算法:
cat /sys/block/sda/queue/scheduler
关闭swap
1)临时修改
临时关闭swap分区,重启后失效
[root@~]# swapoff  -a
2)永久修改
永久关闭swap分区
[root@~]#vim /etc/fstab  --注释swap
[root@~]vim /etc/rc.local  --添加以下命令
swapoff  -a
重启操作系统
[root@~]# reboot
再次确认
[root@~]# free -m

2、数据库软件安装

严禁使用root用户安装数据库及数据库相关操作。必须使用dmdba用户执行安装以及数据库相关操作。
将数据库安装包上传到数据库服务器
mount dm8_20221128_x86_kylin10_64_ent_8.1.2.174.iso /mnt/

[dmdba@~]# /mnt/DMInstall.bin -i
请选择安装语言(C/c:中文 E/e:英文) [C/c]C
解压安装程序..........
欢迎使用达梦数据库安装程序
是否输入Key文件路径? (Y/y:N/n:) [Y/y]:n
是否设置时区? (Y/y:N/n:) [Y/y]Y
设置时区:
[ 1]: GTM-12=日界线西
[ 2]: GTM-11=萨摩亚群岛
[ 3]: GTM-10=夏威夷
[ 4]: GTM-09=阿拉斯加
[ 5]: GTM-08=太平洋时间(美国和加拿大)
[ 6]: GTM-07=亚利桑那
[ 7]: GTM-06=中部时间(美国和加拿大)
[ 8]: GTM-05=东部部时间(美国和加拿大)
[ 9]: GTM-04=大西洋时间(美国和加拿大)
[10]: GTM-03=巴西利亚
[11]: GTM-02=中大西洋
[12]: GTM-01=亚速尔群岛
[13]: GTM=格林威治标准时间
[14]: GTM+01=萨拉热窝
[15]: GTM+02=开罗
[16]: GTM+03=莫斯科
[17]: GTM+04=阿布扎比
[18]: GTM+05=伊斯兰堡
[19]: GTM+06=达卡
[20]: GTM+07=曼谷,河内
[21]: GTM+08=中国标准时间
[22]: GTM+09=汉城
[23]: GTM+10=关岛
[24]: GTM+11=所罗门群岛
[25]: GTM+12=斐济
[26]: GTM+13=努库阿勒法
[27]: GTM+14=基里巴斯
请选择设置时区 [21]21
安装类型:
1 典型安装
2 服务器
3 客户端
4 自定义
请选择安装类型的数字序号 [1 典型安装]1
所需空间: 1010M
请选择安装目录 [/home/dmdba/dmdbms]/dm/dmdbms(具体安装路径根据实际修改)
可用空间: 11G
是否确认安装路径(/dm/dmdbms)? (Y/y:N/n:)  [Y/y]Y
安装前小结
安装位置: /dm/dmdbms
所需空间: 1010M
可用空间: 11G
版本信息: 企业版
有效日期: 2020-12-25
安装类型: 典型安装
是否确认安装? (Y/y:N/n:)Y
2020-12-24 21:52:38 
[INFO] 安装达梦数据库...
2020-12-24 21:52:39 
[INFO] 安装 基础 模块...
2020-12-24 21:52:48 
[INFO] 安装 服务器 模块...
2020-12-24 21:52:48 
[INFO] 安装 客户端 模块...
2020-12-24 21:52:56 
[INFO] 安装 驱动 模块...
2020-12-24 21:52:58 
[INFO] 安装 手册 模块...
2020-12-24 21:53:00 
[INFO] 安装 服务 模块...
2020-12-24 21:53:02 
[INFO] 移动ant日志文件。
2020-12-24 21:53:03 
[INFO] 安装达梦数据库完成。
请以root系统用户执行命令:
/dm/dmdbms/script/root/root_installer.sh
安装结束
[dmdba@~]# su - root
密码:<输入密码>
[root@~]# /dm/dmdbms/script/root/root_installer.sh
[root@~]# exit

3、备库根据主库相应配置初始化相应实例:

[dmdba@localhost ~]$ dminit path=/data/dmdata page_size=16 EXTENT_SIZE=16 CHARSET=1 CASE_SENSITIVE=1 LENGTH_IN_CHAR=1 path=/dm8/dmdata db_name=dmtest instance_name=DMTEST_B port_num=5238
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2024-05-30
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

 log file path: /dm8/dmdata/dmtest/dmtest01.log


 log file path: /dm8/dmdata/dmtest/dmtest02.log

write to dir [/dm8/dmdata/dmtest].
create dm database success. 2023-06-28 13:15:54

前台启动
[dmdba@localhost ~]$ dmserver /dm8/dmdata/dmtest/dm.ini
file dm.key not found, use default license!
version info: develop
DM Database Server 64 V8 03134284044-20230530-191833-20040 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 2024-05-30
file lsn: 0
ndct db load finished
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
xxxxxx
SYSTEM IS READY.

三、联机备份数据库(单机)

查看dmap进程
在这里插入图片描述

SQL> backup database full backupset 'bak_full_20230627'  maxpiecesize 1024 compressed parallel 8;
操作已执行
已用时间: 00:00:05.895. 执行号:60000.

四、停单机实例

在这里插入图片描述

五、配置主库,原单机

1、主库脱机备份

[dmdba@localhost bin]$ dmrman CTLSTMT="BACKUP DATABASE '/dm8/dmdata/dmtest/dm.ini' BACKUPSET 'bak_20230627_2'"
dmrman V8
BACKUP DATABASE '/dm8/dmdata/dmtest/dm.ini' BACKUPSET 'bak_20230627_2'
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[38775], file_lsn[38775]
Processing backupset /dm8/dmdata/dmtest/bak/bak_20230627_2
[Percent:100.00%][Speed:0.00M/s][Cost:00:00:02][Remaining:00:00:00]
backup successfully!
time used: 00:00:03.430

2、主库修改配置文件

vi /dm8/dmdata/dmtest/dm.ini 
###修改以下内容
INSTANCE_NAME                   = DMTEST
PORT_NUM                        = 5238
ALTER_MODE_STATUS               = 0           
ENABLE_OFFLINE_TS               = 2 
MAL_INI                         = 1
ARCH_INI                        = 1 

[dmdba@localhost bin]$ vi /dm8/dmdata/dmtest/dmwatcher.ini
[dmdba@localhost bin]$ cat /dm8/dmdata/dmtest/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453335
INST_INI = /dm8/dmdata/dmtest/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dmdata/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

[dmdba@localhost bin]$ vi /dm8/dmdata/dmtest/dmmal.ini
[dmdba@localhost bin]$ cat /dm8/dmdata/dmtest/dmmal.ini
MAL_CHECK_INTERVAL = 10
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST1]
MAL_INST_NAME = DMTEST
MAL_HOST = 192.168.48.7
MAL_PORT = 62141
MAL_INST_HOST = 192.168.48.7
MAL_INST_PORT = 5238
MAL_DW_PORT =  52141
MAL_INST_DW_PORT = 32141
[MAL_INST2]
MAL_INST_NAME = DMTEST_B
MAL_HOST = 192.168.48.8
MAL_PORT = 62141
MAL_INST_HOST = 192.168.48.8
MAL_INST_PORT = 5238
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 32141

[dmdba@localhost bin]$ vi /dm8/dmdata/dmtest/dmarch.ini
[dmdba@localhost bin]$ cat /dm8/dmdata/dmtest/dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

[ARCHIVE_LOCAL1]
        ARCH_TYPE            = LOCAL
        ARCH_DEST            = /dm8/dmdata/arch
        ARCH_FILE_SIZE       = 128
        ARCH_SPACE_LIMIT     = 2048
        ARCH_FLUSH_BUF_SIZE  = 0
        ARCH_HANG_FLAG       = 1

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMTEST_B

3、启动主库至mount状态

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4、修改主库模式及oguid后强制起库

SQL> SP_SET_OGUID(453335);
DMSQL 过程已成功完成
已用时间: 2.870(毫秒). 执行号:3.
SQL>  select oguid from v$instance;

行号     OGUID
---------- -----------
1          453335

已用时间: 0.620(毫秒). 执行号:4.
SQL> ALTER DATABASE PRIMARY;
操作已执行
已用时间: 8.152(毫秒). 执行号:0.

SQL> alter database open force;
操作已执行
已用时间: 35.833(毫秒). 执行号:0.

SQL> select * from v$database;

行号     NAME   CREATE_TIME         ARCH_MODE LAST_CKPT_TIME      STATUS$     ROLE$       MAX_SIZE
---------- ------ ------------------- --------- ------------------- ----------- ----------- --------------------
           TOTAL_SIZE           DSC_NODES   OPEN_COUNT  STARTUP_COUNT        LAST_STARTUP_TIME
           -------------------- ----------- ----------- -------------------- -------------------
1          dmtest 2023-06-28 13:08:48 Y         2023-06-28 13:52:56 4           1           0
           17664                1           3           2                    2023-06-28 13:43:56


已用时间: 1.714(毫秒). 执行号:800.

六、配置备库

1、拷贝主库备份到备库

[dmdba@localhost bak]$ scp -r bak_20230627_2/ 192.168.48.8:/dm8/dmdata/dmtest/bak

Authorized users only. All activities may be monitored and reported.
dmdba@192.168.48.8's password:
bak_20230627_2.bak                                                                           100%   13MB 109.7MB/s   00:00
bak_20230627_2.meta                                                                          100%   98KB   5.8MB/s   00:00

2、备库备份还原

[dmdba@localhost ~]$ dmrman CTLSTMT="RESTORE DATABASE '/dm8/dmdata/dmtest/dm.ini' FROM BACKUPSET '/dm8/dmdata/dmtest/bak/bak_20230627_2'"
dmrman V8
RESTORE DATABASE '/dm8/dmdata/dmtest/dm.ini' FROM BACKUPSET '/dm8/dmdata/dmtest/bak/bak_20230627_2'
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.551
[dmdba@localhost ~]$ dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdata/dmtest/dm.ini' FROM BACKUPSET '/dm8/dmdata/dmtest/bak/bak_20230627_2'"
dmrman V8
RECOVER DATABASE '/dm8/dmdata/dmtest/dm.ini' FROM BACKUPSET '/dm8/dmdata/dmtest/bak/bak_20230627_2'
file dm.key not found, use default license!
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[38775], file_lsn[38775]
备份集[/dm8/dmdata/dmtest/bak/bak_20230627_2]备份过程中未产生日志
recover successfully!
time used: 502.754(ms)
[dmdba@localhost ~]$ dmrman CTLSTMT="RECOVER DATABASE '/dm8/dmdata/dmtest/dm.ini' UPDATE DB_MAGIC"
dmrman V8
RECOVER DATABASE '/dm8/dmdata/dmtest/dm.ini' UPDATE DB_MAGIC
file dm.key not found, use default license!
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[38775], file_lsn[38775]
recover successfully!
time used: 00:00:01.144

3、备库修改配置文件

vi /dm8/dmdata/dmtest/dm.ini 
###修改以下内容
INSTANCE_NAME                   = DMTEST_B
PORT_NUM                        = 5238
ALTER_MODE_STATUS               = 0           
ENABLE_OFFLINE_TS               = 2 
MAL_INI                         = 1
ARCH_INI                        = 1  

[dmdba@localhost bin]$ vi /dm8/dmdata/dmtest/dmwatcher.ini
[dmdba@localhost bin]$ cat /dm8/dmdata/dmtest/dmwatcher.ini
[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 10
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 10
INST_OGUID = 453335
INST_INI = /dm8/dmdata/dmtest/dm.ini
INST_AUTO_RESTART = 1
INST_STARTUP_CMD = /dmdata/dmdbms/bin/dmserver
RLOG_SEND_THRESHOLD = 0
RLOG_APPLY_THRESHOLD = 0

[dmdba@localhost bin]$ vi /dm8/dmdata/dmtest/dmmal.ini
[dmdba@localhost bin]$ cat /dm8/dmdata/dmtest/dmmal.ini
MAL_CHECK_INTERVAL = 10
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST1]
MAL_INST_NAME = DMTEST
MAL_HOST = 192.168.48.7
MAL_PORT = 62141
MAL_INST_HOST = 192.168.48.7
MAL_INST_PORT = 5238
MAL_DW_PORT =  52141
MAL_INST_DW_PORT = 32141
[MAL_INST2]
MAL_INST_NAME = DMTEST_B
MAL_HOST = 192.168.48.8
MAL_PORT = 62141
MAL_INST_HOST = 192.168.48.8
MAL_INST_PORT = 5238
MAL_DW_PORT = 52141
MAL_INST_DW_PORT = 32141

[dmdba@localhost bin]$ vi /dm8/dmdata/dmtest/dmarch.ini
[dmdba@localhost bin]$ cat /dm8/dmdata/dmtest/dmarch.ini
#DaMeng Database Archive Configuration file
#this is comments

[ARCHIVE_LOCAL1]
        ARCH_TYPE            = LOCAL
        ARCH_DEST            = /dm8/dmdata/arch
        ARCH_FILE_SIZE       = 128
        ARCH_SPACE_LIMIT     = 2048
        ARCH_FLUSH_BUF_SIZE  = 0
        ARCH_HANG_FLAG       = 1

[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DMTEST

4、启动备库至mount状态

[dmdba@localhost bin]$ vi DmServiceDMTEST
[dmdba@localhost bin]$ cat DmServiceDMTEST |grep START_MODE
START_MODE=mount
PARAM_START_MODE=""
                PARAM_START_MODE="mount"
                PARAM_START_MODE="mount"
                PARAM_START_MODE=""
        TMP_START_MODE=""
        if [ "$PARAM_START_MODE" = "mount" -o "$START_MODE" = "mount" ]
                TMP_START_MODE="mount"
$PRE_STARTUP_COMMANDS "$EXEC_PROG_FULL_PATH" -noconsole $TMP_START_MODE > "$START_SERVICE_LOG_FILE" 2>&1 &
eval exec "$PRE_STARTUP_COMMANDS" "\"$EXEC_PROG_FULL_PATH\"" "$STARTUP_PARAMS" -noconsole $TMP_START_MODE > "$START_SERVICE_LOG_FILE" 2>&1 &
                        $PRE_STARTUP_COMMANDS "$EXEC_PROG_FULL_PATH" -noconsole $TMP_START_MODE > "$START_SERVICE_LOG_FILE" 2>&1 &
                        eval exec "$PRE_STARTUP_COMMANDS" "\"$EXEC_PROG_FULL_PATH\"" "$STARTUP_PARAMS" -noconsole $TMP_START_MODE > "$START_SERVICE_LOG_FILE" 2>&1 &

[dmdba@localhost bin]$ ./DmServiceDMTEST start
Starting DmServiceDMTEST:                                  [ OK ]

[dmdba@localhost bin]$ ps -ef|grep dmtest
dmdba       3910       1  0 14:07 pts/0    00:00:00 /home/dmdba/dmdbms/bin/dmserver path=/dm8/dmdata/dmtest/dm.ini -noconsole mount
dmdba       4067    3814  0 14:08 pts/0    00:00:00 grep dmtest

5、修改备库模式及oguid

SQL> SP_SET_OGUID(453335);
DMSQL 过程已成功完成
已用时间: 2.870(毫秒). 执行号:3.
SQL>  select oguid from v$instance;

行号     OGUID
---------- -----------
1          453335

已用时间: 0.620(毫秒). 执行号:4.
SQL> ALTER DATABASE standby;
操作已执行
已用时间: 8.152(毫秒). 执行号:0.

七、监视器配置

mkdir -p /dm8/monitor

vi /dm8/monitor/dmmonitor_auto.ini  
MON_DW_CONFIRM = 1                                                     
MON_LOG_PATH =/dm8/monitor/log                       
MON_LOG_INTERVAL = 60                                                
MON_LOG_FILE_SIZE = 32                                                
MON_LOG_SPACE_LIMIT = 0                                              
[GRP1]
MON_INST_OGUID = 453335                                            
MON_DW_IP = 192.168.48.7:52141
MON_DW_IP = 192.168.48.8:52141

vi /dm8/monitor/dmmonitor_manual.ini  
MON_DW_CONFIRM = 0                                                     
MON_LOG_PATH =/dm8/monitor/log                       
MON_LOG_INTERVAL = 60                                                
MON_LOG_FILE_SIZE = 32                                                
MON_LOG_SPACE_LIMIT = 0                                              
[GRP1]
MON_INST_OGUID = 453335                                            
MON_DW_IP = 192.168.48.7:52141
MON_DW_IP = 192.168.48.8:52141

八、注册服务

1、主库创建dmwatcher服务
/dmdata/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DMTEST -watcher_ini /dm8/dmdata/dmtest/dmwatcher.ini 

2、备库创建dmwatcher服务

/dmdata/dmdbms/script/root/dm_service_installer.sh -t dmwatcher -p DMTEST_B -watcher_ini /dm8/dmdata/dmtest/dmwatcher.ini

3、备库上注册监视器服务:
/dm8/dmdbms/script/root/dm_service_installer.sh -t dmmonitor -p GRP1 -monitor_ini /dm8/monitor/dmmonitor_auto.ini 

九、启动守护进程、监视器、并查看状态

主库:
[dmdba@localhost bin]$ ./DmWatcherServiceDMTEST start
Starting DmWatcherServiceDMTEST:                           [ OK ]
备库:
[dmdba@localhost bin]$ ./DmWatcherServiceDMTEST_B  start
Starting DmWatcherServiceDMTEST_B:                         [ OK ]
监视器:
[dmdba@localhost bin]$ ./DmMonitorServiceGRP1 start
Starting DmMonitorServiceGRP1:                             [ OK ]

登录非确认监视器查看主备同步状态:
2023-06-28 14:29:33
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP1             453335      FALSE           MANUAL          FALSE


<<DATABASE GLOBAL INFO:>>
DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.48.7        52141        2023-06-28 14:29:26  GLOBAL    VALID     OPEN           DMTEST           OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALID

EP INFO:
INST_IP             INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG
192.168.48.7        5238       OK        DMTEST           OPEN        PRIMARY   0          0            REALTIME  VALID       4754            38949           4754            38949           NONE

<<DATABASE GLOBAL INFO:>>
DW_IP               MAL_DW_PORT  WTIME                WTYPE     WCTLSTAT  WSTATUS        INAME            INST_OK   N_EP  N_OK  ISTATUS     IMODE     DSC_STATUS     RTYPE     RSTAT
192.168.48.8        52141        2023-06-28 14:29:32  GLOBAL    VALID     OPEN           DMTEST_B         OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  VALID

EP INFO:
INST_IP             INST_PORT  INST_OK   INAME            ISTATUS     IMODE     DSC_SEQNO  DSC_CTL_NODE RTYPE     RSTAT       FSEQ            FLSN            CSEQ            CLSN            DW_STAT_FLAG
192.168.48.8        5238       OK        DMTEST_B         OPEN        STANDBY   0          0            REALTIME  VALID       4740            38949           4740            38949           NONE

DATABASE(DMTEST_B) APPLY INFO FROM (DMTEST), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]:
DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4754, 4754, 4754], (RLSN, SLSN, KLSN)[38949, 38949, 38949], N_TSK[0], TSK_MEM_USE[0]
REDO_LSN_ARR: (38949)


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

tip
[monitor]         2023-06-28 14:30:42: [!!! 提示:本监视器不是确认监视器,在故障自动切换模式下如果发生主库故障,本监视器无法执行自动接管 !!!]

[monitor]         2023-06-28 14:30:42: 实例DMTEST[PRIMARY, OPEN, ISTAT_SAME:TRUE]不可加入其他实例,守护进程状态:OPEN,Open记录状态:VALID
[monitor]         2023-06-28 14:30:42: 实例DMTEST[PRIMARY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2023-06-28 14:30:42: 实例DMTEST[PRIMARY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2023-06-28 14:30:42: 实例DMTEST_B[STANDBY, OPEN, ISTAT_SAME:TRUE]可加入实例DMTEST[PRIMARY, OPEN, ISTAT_SAME:TRUE]
[monitor]         2023-06-28 14:30:42: 实例DMTEST_B[STANDBY, OPEN, ISTAT_SAME:TRUE]当前没有命令正在执行
[monitor]         2023-06-28 14:30:42: 实例DMTEST_B[STANDBY, OPEN, ISTAT_SAME:TRUE]运行正常, 守护进程是OPEN状态,守护类型是GLOBAL

[monitor]         2023-06-28 14:30:42:(GRP1)当前活动实例运行正常

[monitor]         2023-06-28 14:30:42: 所有组中的活动实例运行正常!

更多技术分享见
达梦社区:https://eco.dameng.com

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要使用 Docker 搭建达梦数据库的实时主备,需要遵循以下步骤: 1. 安装 Docker 和 Docker Compose。 2. 创建两个目录,一个用于存放主库的数据,一个用于存放备库的数据。例如: ``` mkdir /data/dm_primary mkdir /data/dm_standby ``` 3. 创建一个 `docker-compose.yml` 文件,并在其中定义主备两个数据库的容器。 ``` version: '3.7' services: primary: image: registry.cn-hangzhou.aliyuncs.com/dameng/dameng8:latest container_name: dm_primary restart: always volumes: - /data/dm_primary:/opt/dm8/data environment: - DBNAME=primary - DBPORT=5236 - DBUSER=SYSDBA - DBPASSWD=SYSDBA ports: - "5236:5236" networks: - dm standby: image: registry.cn-hangzhou.aliyuncs.com/dameng/dameng8:latest container_name: dm_standby restart: always volumes: - /data/dm_standby:/opt/dm8/data environment: - DBNAME=standby - DBPORT=5237 - DBUSER=SYSDBA - DBPASSWD=SYSDBA ports: - "5237:5237" networks: - dm networks: dm: driver: bridge ``` 在上述配置文件中,我们使用了达梦数据库 8 的最新版本,并创建了两个容器,一个用于主库,一个用于备库。在 `volumes` 部分,我们将主库和备库的数据目录分别挂载到了 `/data/dm_primary` 和 `/data/dm_standby` 目录中。在 `environment` 部分,我们分别为主库和备库设置了数据库名、端口号、用户名和密码,并在 `ports` 部分将主库和备库的端口都映射到了宿主机的 5236 和 5237 端口上。 4. 在终端中切换到 `docker-compose.yml` 文件所在的目录,并运行以下命令启动容器: ``` docker-compose up -d ``` 5. 在主库容器中创建一个用于复制的用户,并授予复制权限。例如: ``` docker exec -it dm_primary /bin/bash /opt/dm8/bin/dmuseradd -u repl -p repl /opt/dm8/bin/dmusermod -u repl -r repl exit ``` 6. 在备库容器中启动复制进程,将备库连接到主库。例如: ``` docker exec -it dm_standby /bin/bash /opt/dm8/bin/dmrepl -s primary -p 5236 -u repl -w repl -r /opt/dm8/data/standby -i exit ``` 在上述命令中,`-s primary` 参数指定了主库的地址,`-p 5236` 参数指定了主库的端口,`-u repl -w repl` 参数指定了用于复制的用户和密码,`-r /opt/dm8/data/standby` 参数指定了备库的数据目录,`-i` 参数表示首次启动复制进程。 7. 在主库上进行一些操作,例如创建表或插入数据,然后在备库上检查是否同步成功。 以上就是使用 Docker 搭建达梦数据库实时主备的步骤。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值