达梦(主备)搭建

一、服务器配置

1.扩展基础盘

磁盘分区

复制代码
/sbin/fdisk /dev/vda<<EOF &> /dev/null
p
n
4
 
 
p
w
EOF

硬盘刷新

复制代码
partx -s /dev/vda
echo "Disk Partition /dev/vda4 Create OK!"
pvcreate /dev/vda4
rootlvname=`df -h|grep "\-root"|awk  '{print  $1}'`
vgname=`vgs|grep klas|awk  '{print  $1}'`
vgextend ${vgname} /dev/vda4
lvextend -L 94.5G ${rootlvname}
xfs_growfs ${rootlvname}
df -h

创建并挂载dmdata数据盘

bash 复制代码
mkdir /dmdata
pvcreate /dev/vdb
pvs

和其他盘用一个VG

bash 复制代码
vgextend klas_host* /dev/vdb
lvextend -L +199.99G /dev/mapper/klas_host*-root
xfs_growfs /dev/mapper/klas_host*-root

2.修改内核参数

添加以下内容

bash 复制代码
cat >> /etc/sysctl.conf <<EOF
fs.file-max = 6815744
fs.aio-max-nr = 1048576
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 4194304
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576
vm.dirty_ratio = 80
vm.dirty_expire_centisecs = 500
vm.dirty_writeback_centisecs = 100
kernel.core_pattern = /dmdata/core.%p
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 2097152
EOF 

配置使生效

bash 复制代码
sysctl -p

3.配置时间同步

安装chrony

bash 复制代码
yum install chrony -y

增加配置

bash 复制代码
vi /etc/chrony.conf
#pool pool.ntp.org iburst  # 注释掉这行
#pool 172.30.11.3 iburst   
pool 10.224.198.137 iburst # 新增这行,这个ip是局里的ntp地址

启动chrony并加入开机启动

bash 复制代码
systemctl enable chronyd.service
systemctl restart chronyd.service
systemctl status chronyd.service

关闭防火墙

bash 复制代码
systemctl disable firewalld
systemctl stop firewalld

或者设置firewalld(因NTP使用123/UDP端口协议和chrony协议端口相同,所以允许NTP服务即可。)

firewall-cmd --add-service=ntp --permanent

firewall-cmd --reload

查看chronyd状态

bash 复制代码
chronyc sources;systemctl status chronyd;

5.关闭swap

临时关闭 swap 分区,重启后失效

bash 复制代码
swapoff -a

永久关闭 swap 分区

bash 复制代码
sed -ri 's/.*swap.*/#&/' /etc/fstab

重启操作系统

bash 复制代码
reboot

再次确认

bash 复制代码
free -m

回目录\](# 目录) ## 二、达梦环境、软件初始化 ### 1.环境配置 创建dinstall组跟dmdba用户 ```bash groupadd dinstall -g 1049 useradd dmdba -u 1049 -g dinstall echo "zjdj_zjj_123" | passwd dmdba --stdin > /dev/null 2>&1 echo "dmdba ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers ``` 修改用户资源限制 ```bash cat >> /etc/security/limits.conf < * 选择安装程序的语言 1为中文,2为英文,默认回车选择安装语言为中文。 > * 提示是否安装 key 文件,默认Y 同意。 > * 请输入Key文件的路径地址 \[dm.key\]: > * /dmdata/dm06_1_政务应用.key > * /dmdata/dm06_2_政务应用.key > * 选择时区,默认21 即东 8 区。 > * 选择安装类型,默认典型安装(包含所有内容)。 > * 选择软件安装目录,默认安装在/home/dmdba/dmdbms,这里需要选择/dm8 > * /dm8 > * 确认安装。 安装完成提示使用root用户执行脚本 ```bash exit sh /dm8/script/root/root_installer.sh ``` \[回目录\](# 目录) ### 2.主备集群配置 切换dm用户 ```bash su - dmdba ``` 初始化实例 ```bash cd /dm8/bin ./dminit path=/dmdata page_size=32 extent_size=32 charset=1 log_size=2048 db_name=dmdb instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123" SYSSSO_PWD="Hn@dameng123" SYSDBO_PWD="Hn@dameng123" ``` 两个节点都要做,测试达梦机器能否手动开启 ```bash dmserver /dmdata/dmdb/dm.ini ``` ### 3.脱机备份数据库 在主机dmdb01上执行以下命令,确认主库 dmap 服务已启动 ```bash ps -ef |grep dmap ``` 若未启动,则先启动DMAP服务,dmdba用户到安装目录的bin下执行以下命令: ```bash ./DmAPService start ``` #### 3.1.主库 dmdba用户启动dmrman工具 ```bash dmrman use_ap=2 ``` 执行 backup 全库 ```bash backup database '/dmdata/dmdb/dm.ini' backupset '/dmdata/dmdb/bak/full_bak'; ``` 使用主库的备份还原备库,将备份的文件/home/dmdba/bakfull拷贝到备库服务器上。 ```bash scp -r /dmdata/dmdb/bak/full_bak 10.76.18.200:/dmdata/dmdb/bak/ ``` #### 3.2.备库 使用dmrman工具还原备库,dmdba用户执行 ```bash dmrman ``` 进入dmrman工具交互界面,执行restore ```bash restore database '/dmdata/dmdb/dm.ini' from backupset '/dmdata/dmdb/bak/full_bak'; ``` 完成后执行recover ```bash recover database '/dmdata/dmdb/dm.ini' from backupset '/dmdata/dmdb/bak/full_bak'; ``` 最后执行recover update db_magic ```bash recover database '/dmdata/dmdb/dm.ini' update db_magic; ``` \[回目录\](# 目录) ### 4.达梦配置文件修改 #### 4.1.主备库修改dm.ini 主库dmdb01上修改以下参数值: ```bash sed -i 's/\(INSTANCE_NAME\) *= [^ ]*/\1 = DM01/g' /dmdata/dmdb/dm.ini; sed -i 's/\(MAL_INI\) *= [^ ]*/\1 = 1/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ARCH_INI\) *= [^ ]*/\1 = 1/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ALTER_MODE_STATUS\) *= [^ ]*/\1 = 1/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ENABLE_OFFLINE_TS\) *= [^ ]*/\1 = 2/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ENABLE_ENCRYPT\) *= [^ ]*/\1 = 0/g' /dmdata/dmdb/dm.ini; cat /dmdata/dmdb/dm.ini |grep 'INSTANCE_NAME\|MAL_INI\|ARCH_INI\|ENABLE_OFFLINE_TS\|ENABLE_ENCRYPT\|ALTER_MODE_STATUS' ``` ```bash vi /dmdata/dmdb/dm.ini INSTANCE_NAME = DM01 ENABLE_ENCRYPT = 0 ALTER_MODE_STATUS = 1 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 ``` 备库dmdb02上修改以下参数值: ```bash sed -i 's/\(INSTANCE_NAME\) *= [^ ]*/\1 = DM02/g' /dmdata/dmdb/dm.ini; sed -i 's/\(MAL_INI\) *= [^ ]*/\1 = 1/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ARCH_INI\) *= [^ ]*/\1 = 1/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ALTER_MODE_STATUS\) *= [^ ]*/\1 = 1/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ENABLE_OFFLINE_TS\) *= [^ ]*/\1 = 2/g' /dmdata/dmdb/dm.ini; sed -i 's/\(ENABLE_ENCRYPT\) *= [^ ]*/\1 = 0/g' /dmdata/dmdb/dm.ini; cat /dmdata/dmdb/dm.ini |grep 'INSTANCE_NAME\|MAL_INI\|ARCH_INI\|ENABLE_OFFLINE_TS\|ENABLE_ENCRYPT\|ALTER_MODE_STATUS' ``` ```bash INSTANCE_NAME = DM02 ENABLE_ENCRYPT = 0 ALTER_MODE_STATUS = 1 ENABLE_OFFLINE_TS = 2 MAL_INI = 1 ARCH_INI = 1 ``` #### 4.2.主备库修改归档配置文件dmarch.ini vi /dmdata/dmdb/dmarch.ini 主库dmdb01上添加以下内容: ```bash [ARCHIVE_REALTIME1] ARCH_TYPE = REALTIME ARCH_DEST = DM02 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dmdata/arch ARCH_FILE_SIZE = 2048 ARCH_SPACE_LIMIT = 102400 ``` 备库dmdb02上添加以下内容 ```bash [ARCHIVE_REALTIME1] ARCH_TYPE = REALTIME ARCH_DEST = DM01 [ARCHIVE_LOCAL1] ARCH_TYPE = LOCAL ARCH_DEST = /dmdata/arch ARCH_FILE_SIZE = 2048 ARCH_SPACE_LIMIT = 102400 ``` #### 4.3.主备库配置MAL系统配置文件dmmal.ini 主备库2个节点文件内容要相同。 vi /dmdata/dmdb/dmmal.ini ```bash MAL_CHECK_INTERVAL = 5 MAL_CONN_FAIL_INTERVAL = 15 [MAL_INST1] MAL_INST_NAME = DM01 MAL_HOST = 10.76.18.199 MAL_PORT = 7336 MAL_INST_HOST = 10.76.18.199 MAL_INST_PORT = 5236 MAL_DW_PORT = 7436 MAL_INST_DW_PORT = 7536 [MAL_INST2] MAL_INST_NAME = DM02 MAL_HOST = 10.76.18.200 MAL_PORT = 7336 MAL_INST_HOST = 10.76.18.200 MAL_INST_PORT = 5236 MAL_DW_PORT = 7436 ``` #### 4.4.配置主备库守护进程配置文件dmwatcher.ini vi /dmdata/dmdb/dmwatcher.ini 主备库2节点文件内容要相同。 ```bash [GRP_DW] DW_TYPE = GLOBAL DW_MODE = MANUAL DW_ERROR_TIME = 30 INST_RECOVER_TIME = 60 INST_ERROR_TIME = 20 INST_OGUID = 453402 INST_INI = /dmdata/dmdb/dm.ini INST_AUTO_RESTART = 1 INST_STARTUP_CMD = /dm8/bin/dmserver ``` #### 4.5.配置主备库dmmonitor.ini > 配置监视器(可以在主备任意节点配置,也可以主备节点都配置,局里主备库非自动切换模式,该进程手动启动) 新建非确认监视器配置文件 dmmonitor.ini,执行以下命令: ```bash cat > /dmdata/dmdb/dmmonitor.ini <OPEN] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:36:06 OPEN OK DM02 OPEN STANDBY VALID 1 41550 41550 [monitor] 2023-12-08 16:36:08: 守护进程(DM01)状态切换 [STARTUP-->UNIFY EP] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:36:08 UNIFY EP OK DM01 MOUNT PRIMARY VALID 1 41550 41550 [monitor] 2023-12-08 16:36:09: 守护进程(DM01)状态切换 [UNIFY EP-->OPEN] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:36:09 OPEN OK DM01 OPEN PRIMARY VALID 2 41551 41718 ``` > 可能遇到的问题: 如果实例没有自动启动到open状态,需要手动强制启动主备实例到open状态 > > 1. 关闭dmwatcher > > 2. 主备节点分别disql执行: > > sp_set_para_value(1,'ALTER_MODE_STATUS',1); > > alter database open force; \[回目录\](# 目录) ### 7.主备节点手动切换 dmmonitor查看全局信息 ```bash dmmonitor /dmdata/dmdb/dmmonitor.ini ``` ```bash [monitor] 2023-12-08 16:47:23: DMMONITOR[4.0] V8 [monitor] 2023-12-08 16:47:24: DMMONITOR[4.0] IS READY. [monitor] 2023-12-08 16:47:24: #--------------------------------------------------------------------------------# GET MONITOR CONNECT INFO FROM DMWATCHER(DM01), THE FIRST LINE IS SELF INFO. DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION 2023-12-08 16:47:24 FALSE 2002194316 ::ffff:10.76.18.199 DMMONITOR[4.0] V8 2023-12-08 16:34:11 FALSE 1385275602 ::ffff:10.76.18.200 DMMONITOR[4.0] V8 #--------------------------------------------------------------------------------# [monitor] 2023-12-08 16:47:24: 收到守护进程(DM01)消息 WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:47:24 OPEN OK DM01 OPEN PRIMARY VALID 2 41718 41718 [monitor] 2023-12-08 16:47:24: 收到守护进程(DM02)消息 WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:47:24 OPEN OK DM02 OPEN STANDBY VALID 2 41718 41718 show global info 2023-12-08 16:48:03 #================================================================================# GROUP OGUID MON_CONFIRM MODE MPP_FLAG GRP_DW 453402 FALSE MANUAL FALSE <> DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.199 7436 2023-12-08 16:48:03 GLOBAL VALID OPEN DM01 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.200 7436 2023-12-08 16:48:03 GLOBAL VALID OPEN DM02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID #================================================================================# #### 登录monitor login 用户名:sysdba 密码: [monitor] 2023-12-08 16:48:59: 登录监视器成功! switchover GRP_DW.DM02 [monitor] 2023-12-08 16:49:21: 开始切换实例DM02 [monitor] 2023-12-08 16:49:21: 通知守护进程DM01切换SWITCHOVER状态 [monitor] 2023-12-08 16:49:21: 守护进程(DM01)状态切换 [OPEN-->SWITCHOVER] [monitor] 2023-12-08 16:49:22: 切换守护进程DM01为SWITCHOVER状态成功 [monitor] 2023-12-08 16:49:22: 通知守护进程DM02切换SWITCHOVER状态 [monitor] 2023-12-08 16:49:22: 守护进程(DM02)状态切换 [OPEN-->SWITCHOVER] [monitor] 2023-12-08 16:49:23: 切换守护进程DM02为SWITCHOVER状态成功 [monitor] 2023-12-08 16:49:23: 实例DM01开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句 [monitor] 2023-12-08 16:49:24: 实例DM01执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功 [monitor] 2023-12-08 16:49:24: 实例DM02开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句 [monitor] 2023-12-08 16:49:24: 实例DM02执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功 [monitor] 2023-12-08 16:49:24: 实例DM01开始执行ALTER DATABASE MOUNT语句 [monitor] 2023-12-08 16:49:24: 实例DM01执行ALTER DATABASE MOUNT语句成功 [monitor] 2023-12-08 16:49:24: 实例DM02开始执行SP_APPLY_KEEP_PKG()语句 [monitor] 2023-12-08 16:49:24: 实例DM02执行SP_APPLY_KEEP_PKG()语句成功 [monitor] 2023-12-08 16:49:24: 实例DM02开始执行ALTER DATABASE MOUNT语句 [monitor] 2023-12-08 16:49:24: 实例DM02执行ALTER DATABASE MOUNT语句成功 [monitor] 2023-12-08 16:49:24: 实例DM01开始执行ALTER DATABASE STANDBY语句 [monitor] 2023-12-08 16:49:26: 实例DM01执行ALTER DATABASE STANDBY语句成功 [monitor] 2023-12-08 16:49:26: 实例DM02开始执行ALTER DATABASE PRIMARY语句 [monitor] 2023-12-08 16:49:27: 实例DM02执行ALTER DATABASE PRIMARY语句成功 [monitor] 2023-12-08 16:49:27: 通知实例DM02修改所有归档状态无效 [monitor] 2023-12-08 16:49:27: 修改所有实例归档为无效状态成功 [monitor] 2023-12-08 16:49:27: 实例DM01开始执行ALTER DATABASE OPEN FORCE语句 [monitor] 2023-12-08 16:49:27: 实例DM01执行ALTER DATABASE OPEN FORCE语句成功 [monitor] 2023-12-08 16:49:27: 实例DM02开始执行ALTER DATABASE OPEN FORCE语句 [monitor] 2023-12-08 16:49:27: 实例DM02执行ALTER DATABASE OPEN FORCE语句成功 [monitor] 2023-12-08 16:49:27: 实例DM01开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句 [monitor] 2023-12-08 16:49:27: 实例DM01执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功 [monitor] 2023-12-08 16:49:27: 实例DM02开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句 [monitor] 2023-12-08 16:49:27: 实例DM02执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功 [monitor] 2023-12-08 16:49:27: 通知守护进程DM01切换OPEN状态 [monitor] 2023-12-08 16:49:27: 守护进程(DM01)状态切换 [SWITCHOVER-->OPEN] [monitor] 2023-12-08 16:49:28: 切换守护进程DM01为OPEN状态成功 [monitor] 2023-12-08 16:49:28: 通知守护进程DM02切换OPEN状态 [monitor] 2023-12-08 16:49:29: 守护进程(DM02)状态切换 [SWITCHOVER-->OPEN] [monitor] 2023-12-08 16:49:29: 切换守护进程DM02为OPEN状态成功 [monitor] 2023-12-08 16:49:29: 通知组(GRP_DW)的守护进程执行清理操作 [monitor] 2023-12-08 16:49:30: 清理守护进程(DM01)请求成功 [monitor] 2023-12-08 16:49:30: 清理守护进程(DM02)请求成功 [monitor] 2023-12-08 16:49:30: 实例DM02切换成功 2023-12-08 16:49:31 #================================================================================# GROUP OGUID MON_CONFIRM MODE MPP_FLAG GRP_DW 453402 FALSE MANUAL FALSE <> DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.200 7436 2023-12-08 16:49:30 GLOBAL VALID OPEN DM02 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 10.76.18.200 5236 OK DM02 OPEN PRIMARY 0 0 REALTIME VALID 4834 41904 4834 41904 NONE <> DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.199 7436 2023-12-08 16:49:30 GLOBAL VALID OPEN DM01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME INVALID 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 10.76.18.199 5236 OK DM01 OPEN STANDBY 0 0 REALTIME INVALID 4832 41719 4832 41719 NONE DATABASE(DM01) APPLY INFO FROM (DM02), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]: DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4832, 4832, 4832], (RLSN, SLSN, KLSN)[41719, 41719, 41719], N_TSK[0], TSK_MEM_USE[0] REDO_LSN_ARR: (41719) #================================================================================# [monitor] 2023-12-08 16:49:31: 守护进程(DM02)状态切换 [OPEN-->RECOVERY] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:49:31 RECOVERY OK DM02 OPEN PRIMARY VALID 3 41904 41904 [monitor] 2023-12-08 16:49:34: 守护进程(DM02)状态切换 [RECOVERY-->OPEN] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:49:34 OPEN OK DM02 OPEN PRIMARY VALID 3 41904 41904 show global info 2023-12-08 16:50:26 #================================================================================# GROUP OGUID MON_CONFIRM MODE MPP_FLAG GRP_DW 453402 FALSE MANUAL FALSE <> DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.200 7436 2023-12-08 16:50:26 GLOBAL VALID OPEN DM02 OK 1 1 OPEN PRIMARY DSC_OPEN REALTIME VALID DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.199 7436 2023-12-08 16:50:26 GLOBAL VALID OPEN DM01 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME VALID #================================================================================# #### 将节点1切换为主节点 switchover GRP_DW.DM01 [monitor] 2023-12-08 16:50:39: 开始切换实例DM01 [monitor] 2023-12-08 16:50:39: 通知守护进程DM02切换SWITCHOVER状态 [monitor] 2023-12-08 16:50:40: 守护进程(DM02)状态切换 [OPEN-->SWITCHOVER] [monitor] 2023-12-08 16:50:40: 切换守护进程DM02为SWITCHOVER状态成功 [monitor] 2023-12-08 16:50:40: 通知守护进程DM01切换SWITCHOVER状态 [monitor] 2023-12-08 16:50:41: 守护进程(DM01)状态切换 [OPEN-->SWITCHOVER] [monitor] 2023-12-08 16:50:41: 切换守护进程DM01为SWITCHOVER状态成功 [monitor] 2023-12-08 16:50:41: 实例DM02开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句 [monitor] 2023-12-08 16:50:41: 实例DM02执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功 [monitor] 2023-12-08 16:50:41: 实例DM01开始执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句 [monitor] 2023-12-08 16:50:41: 实例DM01执行SP_SET_GLOBAL_DW_STATUS(0, 6)语句成功 [monitor] 2023-12-08 16:50:41: 实例DM02开始执行ALTER DATABASE MOUNT语句 [monitor] 2023-12-08 16:50:41: 实例DM02执行ALTER DATABASE MOUNT语句成功 [monitor] 2023-12-08 16:50:41: 实例DM01开始执行SP_APPLY_KEEP_PKG()语句 [monitor] 2023-12-08 16:50:41: 实例DM01执行SP_APPLY_KEEP_PKG()语句成功 [monitor] 2023-12-08 16:50:41: 实例DM01开始执行ALTER DATABASE MOUNT语句 [monitor] 2023-12-08 16:50:41: 实例DM01执行ALTER DATABASE MOUNT语句成功 [monitor] 2023-12-08 16:50:41: 实例DM02开始执行ALTER DATABASE STANDBY语句 [monitor] 2023-12-08 16:50:42: 实例DM02执行ALTER DATABASE STANDBY语句成功 [monitor] 2023-12-08 16:50:42: 实例DM01开始执行ALTER DATABASE PRIMARY语句 [monitor] 2023-12-08 16:50:43: 实例DM01执行ALTER DATABASE PRIMARY语句成功 [monitor] 2023-12-08 16:50:43: 通知实例DM01修改所有归档状态无效 [monitor] 2023-12-08 16:50:43: 修改所有实例归档为无效状态成功 [monitor] 2023-12-08 16:50:43: 实例DM02开始执行ALTER DATABASE OPEN FORCE语句 [monitor] 2023-12-08 16:50:43: 实例DM02执行ALTER DATABASE OPEN FORCE语句成功 [monitor] 2023-12-08 16:50:43: 实例DM01开始执行ALTER DATABASE OPEN FORCE语句 [monitor] 2023-12-08 16:50:44: 实例DM01执行ALTER DATABASE OPEN FORCE语句成功 [monitor] 2023-12-08 16:50:44: 实例DM02开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句 [monitor] 2023-12-08 16:50:44: 实例DM02执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功 [monitor] 2023-12-08 16:50:44: 实例DM01开始执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句 [monitor] 2023-12-08 16:50:44: 实例DM01执行SP_SET_GLOBAL_DW_STATUS(6, 0)语句成功 [monitor] 2023-12-08 16:50:44: 通知守护进程DM02切换OPEN状态 [monitor] 2023-12-08 16:50:44: 守护进程(DM02)状态切换 [SWITCHOVER-->OPEN] [monitor] 2023-12-08 16:50:45: 切换守护进程DM02为OPEN状态成功 [monitor] 2023-12-08 16:50:45: 通知守护进程DM01切换OPEN状态 [monitor] 2023-12-08 16:50:45: 守护进程(DM01)状态切换 [SWITCHOVER-->OPEN] [monitor] 2023-12-08 16:50:45: 切换守护进程DM01为OPEN状态成功 [monitor] 2023-12-08 16:50:45: 通知组(GRP_DW)的守护进程执行清理操作 [monitor] 2023-12-08 16:50:45: 清理守护进程(DM01)请求成功 [monitor] 2023-12-08 16:50:46: 清理守护进程(DM02)请求成功 [monitor] 2023-12-08 16:50:46: 实例DM01切换成功 2023-12-08 16:50:46 #================================================================================# GROUP OGUID MON_CONFIRM MODE MPP_FLAG GRP_DW 453402 FALSE MANUAL FALSE <> DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.199 7436 2023-12-08 16:50:45 GLOBAL VALID OPEN DM01 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 10.76.18.199 5236 OK DM01 OPEN PRIMARY 0 0 REALTIME VALID 4837 42090 4837 42090 NONE <> DW_IP MAL_DW_PORT WTIME WTYPE WCTLSTAT WSTATUS INAME INST_OK N_EP N_OK ISTATUS IMODE DSC_STATUS RTYPE RSTAT 10.76.18.200 7436 2023-12-08 16:50:45 GLOBAL VALID OPEN DM02 OK 1 1 OPEN STANDBY DSC_OPEN REALTIME INVALID 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 10.76.18.200 5236 OK DM02 OPEN STANDBY 0 0 REALTIME INVALID 4835 41905 4835 41905 NONE DATABASE(DM02) APPLY INFO FROM (DM01), REDOS_PARALLEL_NUM (1), WAIT_APPLY[FALSE]: DSC_SEQNO[0], (RSEQ, SSEQ, KSEQ)[4835, 4835, 4835], (RLSN, SLSN, KLSN)[41905, 41905, 41905], N_TSK[0], TSK_MEM_USE[0] REDO_LSN_ARR: (41905) #================================================================================# [monitor] 2023-12-08 16:50:48: 守护进程(DM01)状态切换 [OPEN-->RECOVERY] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:50:48 RECOVERY OK DM01 OPEN PRIMARY VALID 4 42090 42090 [monitor] 2023-12-08 16:50:51: 守护进程(DM01)状态切换 [RECOVERY-->OPEN] WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-12-08 16:50:51 OPEN OK DM01 OPEN PRIMARY VALID 4 42090 42090 ``` \[回目录\](# 目录) ### 8.注册服务 以上启动为前台方式启动,仅用户搭建过程中验证配置。配置没问题后需要将实例,守护进程配置为系统服务。使用 root 用户,到数据库安装目录的/dm8/script/root下。 注册守护进程服务(主备库都执行)。 ```bash /dm8/script/root/dm_service_installer.sh -t dmwatcher -p dw -watcher_ini /dmdata/dmdb/dmwatcher.ini ``` 注册数据库实例服务(主备库都执行): ```bash /dm8/script/root/dm_service_installer.sh -t dmserver -p dw -dm_ini /dmdata/dmdb/dm.ini ``` 以服务方式启动 # 执行以下命令,启动数据库实例: systemctl start DmServicedw # 执行以下命令,启动守护进程: systemctl start DmWatcherServicedw # 节点2使用dmmonitor监控 \[dmdba@0002 \~\]$ dmmonitor /dmdata/dmdb/dmmonitor.ini \[monitor\] 2023-06-05 10:47:16: DMMONITOR\[4.0\] V8 \[monitor\] 2023-06-05 10:47:17: DMMONITOR\[4.0\] IS READY. \[monitor\] 2023-06-05 10:47:17: 收到守护进程(DM02)消息 WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-06-05 10:47:17 OPEN OK DM02 OPEN STANDBY NULL 8 119590 119590 \[monitor\] 2023-06-05 10:47:17: #--------------------------------------------------------------------------------# GET MONITOR CONNECT INFO FROM DMWATCHER(DM02), THE FIRST LINE IS SELF INFO. DW_CONN_TIME MON_CONFIRM MID MON_IP MON_VERSION 2023-06-05 10:47:17 FALSE 1093666190 ::ffff:10.223.189.19 DMMONITOR\[4.0\] V8 #--------------------------------------------------------------------------------# \[monitor\] 2023-06-05 10:47:17: 收到守护进程(DM01)消息 WTIME WSTATUS INST_OK INAME ISTATUS IMODE RSTAT N_OPEN FLSN CLSN 2023-06-05 10:47:17 OPEN OK DM01 OPEN PRIMARY VALID 8 119590 119591 # 使用 disql 客户端登录主库,创建测试表,插入数据,执行以下命令: disql SYSDBA/'"Hn@dameng123"'@10.223.189.18:5236 # SQL 提示符下执行以下命令: create table test(id int); insert into test values (1); commit; # 使用disql客户端登录备库,查询测试表验证,执行以下命令: disql SYSDBA/'"Hn@dameng123"'@10.223.189.19:5236 # SQL 提示符下执行以下命令: select \* from test; # 查看数据是否正常同步。 \`\`\` \[回目录\](# 目录) ### 主节点上创建备份账号 \`\`\`shell 账号具备BACKUP DATABASE和RESTORE DATABASE权限和部分查询权限, "SYS"."V$DM_INI", "SYS"."V$BACKUPSET" "SYS"."V$BACKUPSET_SUBS" "SYS"."V$BACKUPSET_TABLE" "SYS"."V$BACKUPSET_SEARCH_DIRS" "SYS"."V$BACKUPSET_BKP" "SYS"."V$BACKUPSET_DBF" "SYS"."V$BACKUPSET_DBINFO" "SYS"."V$BACKUPSET_ARCH" "SYS"."V$CIPHERS" "SYS"."V$RLOG" "SYS"."V$DM_MAL_INI" "SYS"."V$DM_ARCH_INI" "SYS"."V$DATAFILE" "SYS"."V$RLOGFILE" # 添加这些表的查询权限 create user forbackup identified by "uD_NS4l0BhYO7q"; grant create session to forbackup; grant backup database to forbackup; grant restore database to forbackup; grant select on "SYS"."V$DM_INI" to forbackup; grant select on "SYS"."V$BACKUPSET" to forbackup; grant select on "SYS"."V$BACKUPSET_SUBS" to forbackup; grant select on "SYS"."V$BACKUPSET_TABLE" to forbackup; grant select on "SYS"."V$BACKUPSET_SEARCH_DIRS" to forbackup; grant select on "SYS"."V$BACKUPSET_BKP" to forbackup; grant select on "SYS"."V$BACKUPSET_DBF" to forbackup; grant select on "SYS"."V$BACKUPSET_DBINFO" to forbackup; grant select on "SYS"."V$BACKUPSET_ARCH" to forbackup; grant select on "SYS"."V$CIPHERS" to forbackup; grant select on "SYS"."V$RLOG" to forbackup; grant select on "SYS"."V$DM_MAL_INI" to forbackup; grant select on "SYS"."V$DM_ARCH_INI" to forbackup; grant select on "SYS"."V$DATAFILE" to forbackup; grant select on "SYS"."V$RLOGFILE" to forbackup; \`\`\` ### 创建业务账号 \`\`\`shell 运维平台流程单号:2023061600044 达梦数据库资源分配情况: url: jdbc:dm://dmconn?dmconn=(10.76.18.115:5236,10.76.18.116:5236)\&rw_Separate=(1) hbmmc : 智慧住建-BIM应用工程-房建BIM模型管理中心 : Housing BIM Model Management Center 数据库用户:SC_SDSP 数据库密码: create user SC_SDSP identified by "h3\~328;Vw5:BNQo!5"; grant "RESOURCE" to SC_SDSP; grant select on v$ciphers to SC_SDSP; \`\`\` ### jdbc连接主备集群 \`\`\`shell url: jdbc:dm://dmconn?dmconn=(10.76.18.115:5236,10.76.18.116:5236)\&rw_Separate=(1) \`\`\` ### 等保安全整改项 \`\`\`shell # 启用客体重用:对已释放内存和文件上的内容进行清除 sp_set_para_value(2,'ENABLE_OBJ_REUSE',1); SELECT \* FROM V$PARAMETER WHERE NAME='ENABLE_OBJ_REUSE'; # 需要重新启动达梦主备数据库 systemctl restart DmServicedw \`\`\` \[回目录\](# 目录)

相关推荐
itachi-uchiha1 分钟前
Linux上的rm和srm 命令
linux·运维·服务器
快乐肚皮10 分钟前
深入解析Docker:核心架构与最佳实践
java·运维·docker·容器
Waitccy13 分钟前
Linux 系统安全基线检查:入侵防范测试标准与漏洞修复方法
linux·运维·网络·安全·系统安全·等保
鸿蒙布道师1 小时前
宇树科技安全漏洞揭示智能机器人行业隐忧
运维·网络·科技·安全·机器学习·计算机视觉·机器人
带鱼吃猫1 小时前
Linux系统:文件系统前言,详解CHS&LBA地址
linux·运维·服务器
默默提升实验室2 小时前
Linux 系统如何挂载U盘
linux·运维·服务器
Lw老王要学习2 小时前
Linux架构篇、第五章git2.49.0部署与使用
linux·运维·git·云计算·it
showmethetime2 小时前
搭建高可用及负载均衡的Redis
运维·redis·负载均衡
上天_去_做颗惺星 EVE_BLUE3 小时前
Docker入门教程:常用命令与基础概念
linux·运维·macos·docker·容器·bash
孙克旭_9 小时前
PXE_Kickstart_无人值守自动化安装系统
linux·运维·自动化