达梦(主备)搭建

一、服务器配置

1.扩展基础盘

磁盘分区

/sbin/fdisk /dev/vda<<EOF &> /dev/null
p
n
4p
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数据盘

mkdir /dmdata
pvcreate /dev/vdb
pvs

和其他盘用一个VG

vgextend klas_host* /dev/vdb
lvextend -L +199.99G /dev/mapper/klas_host*-root
xfs_growfs /dev/mapper/klas_host*-root

2.修改内核参数

添加以下内容

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 

配置使生效

sysctl -p

3.配置时间同步

安装chrony

yum install chrony -y

增加配置

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

启动chrony并加入开机启动

systemctl enable chronyd.service
systemctl restart chronyd.service
systemctl status chronyd.service

 关闭防火墙

systemctl disable firewalld
systemctl stop firewalld

或者设置firewalld(因NTP使用123/UDP端口协议和chrony协议端口相同,所以允许NTP服务即可。)
firewall-cmd --add-service=ntp --permanent
firewall-cmd --reload

查看chronyd状态

chronyc sources;systemctl status chronyd;

 5.关闭swap

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

swapoff -a

永久关闭 swap 分区

sed -ri 's/.*swap.*/#&/' /etc/fstab

重启操作系统

reboot

再次确认

free -m

[回目录](# 目录)

二、达梦环境、软件初始化

1.环境配置

创建dinstall组跟dmdba用户

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

修改用户资源限制

cat >> /etc/security/limits.conf <<EOF
# 末尾添加
dmdba  soft      nice       0
dmdba  hard      nice       0
dmdba  soft      as         unlimited
dmdba  hard      as         unlimited
dmdba  soft      fsize      unlimited
dmdba  hard      fsize      unlimited
dmdba  soft      nproc      65536
dmdba  hard      nproc      65536
dmdba  soft      nofile     65536
dmdba  hard      nofile     65536
dmdba  soft      core       unlimited
dmdba  hard      core       unlimited
dmdba  soft      data       unlimited
dmdba  hard      data       unlimited
EOF

配置dmdba环境变量

tee /home/dmdba/.bash_profil /home/dmdba/.bashrc <<EOF
export DM_HOME="/dm8"
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/dm8/bin
export PATH=$PATH:$DM_HOME/bin:$DM_HOME/tool
EOF

2.达梦软件安装

创建达梦软件安装目录

mkdir /dm8
chown dmdba.dinstall /dm8 /dmdata

上传达梦安装包和密钥到root目录下

两个节点分别安装

mkdir -p /mnt/dmiso
mount -o loop /root/dm8_20230927_FTarm_kylin10_sp1_64.iso /mnt/dmiso

切换用户

su - dmdba
cd /mnt/dmiso

执行安装

./DMInstall.bin -i
  • 选择安装程序的语言 1为中文,2为英文,默认回车选择安装语言为中文。
  • 提示是否安装 key 文件,默认Y 同意。
  • 请输入Key文件的路径地址 [dm.key]:
  • /dmdata/dm06_1_政务应用.key
  • /dmdata/dm06_2_政务应用.key
  • 选择时区,默认21 即东 8 区。
  • 选择安装类型,默认典型安装(包含所有内容)。
  • 选择软件安装目录,默认安装在/home/dmdba/dmdbms,这里需要选择/dm8
  • /dm8
  • 确认安装。

安装完成提示使用root用户执行脚本

exit
sh /dm8/script/root/root_installer.sh

 [回目录](# 目录)

2.主备集群配置

切换dm用户

su - dmdba

初始化实例

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"

两个节点都要做,测试达梦机器能否手动开启

dmserver /dmdata/dmdb/dm.ini

3.脱机备份数据库

在主机dmdb01上执行以下命令,确认主库 dmap 服务已启动

ps -ef |grep dmap

若未启动,则先启动DMAP服务,dmdba用户到安装目录的bin下执行以下命令:
 

./DmAPService start

3.1.主库

dmdba用户启动dmrman工具

dmrman use_ap=2

执行 backup 全库

backup database '/dmdata/dmdb/dm.ini' backupset '/dmdata/dmdb/bak/full_bak';

 使用主库的备份还原备库,将备份的文件/home/dmdba/bakfull拷贝到备库服务器上。

scp -r /dmdata/dmdb/bak/full_bak 10.76.18.200:/dmdata/dmdb/bak/

3.2.备库

使用dmrman工具还原备库,dmdba用户执行

dmrman

进入dmrman工具交互界面,执行restore

restore database '/dmdata/dmdb/dm.ini' from backupset '/dmdata/dmdb/bak/full_bak';

完成后执行recover

recover database '/dmdata/dmdb/dm.ini' from backupset '/dmdata/dmdb/bak/full_bak';

最后执行recover update db_magic

recover database '/dmdata/dmdb/dm.ini' update db_magic;

[回目录](# 目录)

4.达梦配置文件修改

4.1.主备库修改dm.ini

主库dmdb01上修改以下参数值:

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'
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上修改以下参数值:

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'
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上添加以下内容:

[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上添加以下内容

[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

MAL_CHECK_INTERVAL   = 5
MAL_CONN_FAIL_INTERVAL  = 15[MAL_INST1]MAL_INST_NAME    = DM01MAL_HOST         = 10.76.18.199MAL_PORT         = 7336MAL_INST_HOST    = 10.76.18.199MAL_INST_PORT    = 5236MAL_DW_PORT      = 7436MAL_INST_DW_PORT = 7536[MAL_INST2]MAL_INST_NAME    = DM02MAL_HOST         = 10.76.18.200MAL_PORT         = 7336MAL_INST_HOST    = 10.76.18.200MAL_INST_PORT    = 5236MAL_DW_PORT      = 7436

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

vi /dmdata/dmdb/dmwatcher.ini
 主备库2节点文件内容要相同。

[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,执行以下命令: 

cat > /dmdata/dmdb/dmmonitor.ini <<EOF
# 添加以下内容:
MON_DW_CONFIRM    = 0
MON_LOG_PATH    = /dm8/log
MON_LOG_INTERVAL  = 60
MON_LOG_FILE_SIZE   = 200
MON_LOG_SPACE_LIMIT  = 1024[GRP_DW]
MON_INST_OGUID    = 453402
MON_DW_IP     = 10.76.18.199:7436
MON_DW_IP     = 10.76.18.200:7436
EOF

4.6.配置SQL日志

vi /dmdata/dmdb/sqllog.ini

BUF_TOTAL_SIZE          = 10240         #SQLs Log Buffer Total Size(K)(1024~1024000)
BUF_SIZE                = 1024          #SQLs Log Buffer Size(K)(50~409600)
BUF_KEEP_CNT            = 6             #SQLs Log buffer keeped count(1~100)[SLOG_ALL]FILE_PATH    = ../logPART_STOR    = 1SWITCH_MODE  = 2SWITCH_LIMIT   = 512ASYNC_FLUSH   = 1FILE_NUM = 5ITEMS    = 0SQL_TRACE_MASK  = 2:3:25:28MIN_EXEC_TIME = 1500USER_MODE   = 0USERS =EXECTIME_PREC_FLAG = 0[SLOG_ERROR]SQL_TRACE_MASK = 23FILE_PATH      = ../log[SLOG_DDL]SQL_TRACE_MASK = 3[SLOG_LONG_SQL]SQL_TRACE_MASK = 25MIN_EXEC_TIME = 60000

[回目录](# 目录)

5.手动启动数据库实例、dmwatcher和dmmonitor

5.1.手动启动数据库实例并进行初始化配置

以mount方式启动数据库实例,使用dmdba用户,执行以下命令(主备库都执行):

dmserver /dmdata/dmdb/dm.ini mount

在新的终端使用 disql 工具连接数据库:

disql sysdba/'"Hn@dameng123"'

主备库都修改 oguid,执行以下命令:

sp_set_oguid(453402);

开启归档模式

alter database archivelog;

主库dmdb01上修改数据库模式为 primary,执行以下命令:

alter database primary;

备库dmdb02上修改数据库模式为 standby,执行以下命令:

alter database standby;

查看oguid

SELECT OGUID FROM V$INSTANCE;

6.手动启动dmwatcher

6.1.启动守护进程

dmdba 用户下,到数据库安装目录的bin下执行以下命令(主备库都执行):

dmwatcher /dmdata/dmdb/dmwatcher.ini

守护进程启动后,会将 mount 状态的实例启动到 open状态。

6.2.手动启动dmmonitor

vim /dmdata/dmdb/dmmonitor.ini
[monitor]         2023-12-08 16:31:58: DMMONITOR[4.0] V8
[monitor]         2023-12-08 16:31:59: DMMONITOR[4.0] IS READY.show global info
组(GRP_DW)中没有活动实例或者监视器还未收到守护进程消息[monitor]         2023-12-08 16:34:11:
#--------------------------------------------------------------------------------#
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:34:11  FALSE          1508472236     ::ffff:10.76.18.199      DMMONITOR[4.0] V82023-12-08 16:34:11  FALSE          1385275602     ::ffff:10.76.18.200      DMMONITOR[4.0] V8#--------------------------------------------------------------------------------#[monitor]         2023-12-08 16:34:11: 收到守护进程(DM01)消息
[monitor]         2023-12-08 16:35:37: 收到守护进程(DM02)消息
[monitor]         2023-12-08 16:36:06: 守护进程(DM02)状态切换 [STARTUP-->OPEN]WTIME                WSTATUS        INST_OK   INAME            ISTATUS     IMODE     RSTAT    N_OPEN   FLSN            CLSN2023-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            CLSN2023-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            CLSN2023-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查看全局信息

dmmonitor /dmdata/dmdb/dmmonitor.ini
[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] V82023-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            CLSN2023-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            CLSN2023-12-08 16:47:24  OPEN           OK        DM02             OPEN        STANDBY   VALID    2        41718           41718show global info
2023-12-08 16:48:03
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP_DW           453402      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
10.76.18.199  7436         2023-12-08 16:48:03  GLOBAL    VALID     OPEN           DM01     OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALIDDW_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<<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
10.76.18.200  7436         2023-12-08 16:49:30  GLOBAL    VALID     OPEN           DM02     OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALIDEP 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<<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
10.76.18.199  7436         2023-12-08 16:49:30  GLOBAL    VALID     OPEN           DM01     OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  INVALIDEP 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           NONEDATABASE(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            CLSN2023-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            CLSN2023-12-08 16:49:34  OPEN           OK        DM02             OPEN        PRIMARY   VALID    3        41904           41904show global info
2023-12-08 16:50:26
#================================================================================#
GROUP            OGUID       MON_CONFIRM     MODE            MPP_FLAG
GRP_DW           453402      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
10.76.18.200  7436         2023-12-08 16:50:26  GLOBAL    VALID     OPEN           DM02     OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALIDDW_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<<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
10.76.18.199  7436         2023-12-08 16:50:45  GLOBAL    VALID     OPEN           DM01             OK        1     1     OPEN        PRIMARY   DSC_OPEN       REALTIME  VALIDEP 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<<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
10.76.18.200  7436         2023-12-08 16:50:45  GLOBAL    VALID     OPEN           DM02             OK        1     1     OPEN        STANDBY   DSC_OPEN       REALTIME  INVALIDEP 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           NONEDATABASE(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            CLSN2023-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            CLSN2023-12-08 16:50:51  OPEN           OK        DM01             OPEN        PRIMARY   VALID    4        42090           42090

[回目录](# 目录)

8.注册服务

以上启动为前台方式启动,仅用户搭建过程中验证配置。配置没问题后需要将实例,守护进程配置为系统服务。使用 root 用户,到数据库安装目录的/dm8/script/root下。
注册守护进程服务(主备库都执行)。

/dm8/script/root/dm_service_installer.sh -t dmwatcher -p dw -watcher_ini /dmdata/dmdb/dmwatcher.ini

注册数据库实例服务(主备库都执行):

/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
```
[回目录](# 目录)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/208224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全电动注塑机市场分析:全球市场规模将达到223.23亿美元

注射成型机(简称注射机或注塑机)是将热塑性塑料或热固性料利用塑料成型模具制成各种形状的塑料制品的主要成型设备。 注射成型是通过注塑机和模具来实现的。 注塑机通常由注射系统、合模系统、液压传达动系统、电气控制系统、润滑系统、加热及冷却系统、安全监测系统等组成。 注…

如何运用gpt改写出高质量的文章 (1)

大家好&#xff0c;今天来聊聊如何运用gpt改写出高质量的文章 (1)&#xff0c;希望能给大家提供一点参考。 以下是针对论文重复率高的情况&#xff0c;提供一些修改建议和技巧&#xff1a; 如何运用GPT改写出高质量的文章 一、引言 随着人工智能技术的飞速发展&#xff0c;自然…

大一C语言作业 12.8

1.C 对一维数组初始化时&#xff0c;如果全部元素都赋了初值&#xff0c;可以省略数组长度。 这里没有指定数组长度&#xff0c;编译器会根据初始化列表的元素个数来确定数组长度。 2.C 在C语言中&#xff0c;字符数组是不能用赋值运算符直接赋值的。 3.C 在二维数组a中&#x…

《C++新经典设计模式》之第20章 访问者模式

《C新经典设计模式》之第20章 访问者模式 访问者模式.cpp 访问者模式.cpp #include <iostream> #include <list> #include <memory> using namespace std;// 提供一个作用于某对象结构中的各元素的操作表示&#xff0c;便可以在不改变各元素类的前提下定义&…

springboot(ssm寝室小卖部系统 宿舍小商店网站Java(codeLW)

springboot(ssm寝室小卖部系统 宿舍小商店网站Java(code&LW) 开发语言&#xff1a;Java 框架&#xff1a;ssm/springboot vue JDK版本&#xff1a;JDK1.8&#xff08;或11&#xff09; 服务器&#xff1a;tomcat 数据库&#xff1a;mysql 5.7&#xff08;或8.0&#x…

【力扣100】7.无重复字符的最长子串

添加链接描述 class Solution:def lengthOfLongestSubstring(self, s: str) -> int:# 思路是使用队列&#xff0c;加入一次取一个最大值&#xff0c;然后如果重复&#xff0c;则队列出到没有重复值位置# 但是这个队列其实使用数组实现的strlist[]temp0result0if len(s)0:re…

字符串指令集

字符串指令的格式 例子1就成功发送了指令 例子2就是发送的字符串有误 查询当前位置就会在附加信息中返回当前座位的坐标 第一个指令的参数就是闪灯的两个参数 如第一个示例就是10ms On Time 第二个就是Off Time 使用标准库来接收字符串命令 字符串指令的接收 因为一个指令就是…

科技改变旅游,道观漫游可视化:智能化管理助力道观游览

道观漫游可视化是一种通过技术手段实现道观游览的可视化展示方式&#xff0c;让游客能够更加直观地了解道观的历史、文化和建筑特色。 随着旅游业的不断发展&#xff0c;道观漫游可视化已经成为了旅游行业中的一个重要方向&#xff0c;吸引了越来越多的游客前来体验。 道观漫游…

打死都不要进外包,看看我在阿里外包的2年...

我18年毕业于一个普通二本学校&#xff0c;是一个很不出名的小本科。大学期间专业知识也没有去认真的学习&#xff0c;所以毕业的时候就随便找了一份工作&#xff0c;在一个小公司做功能测试。 记得那时候薪资大概是6k左右&#xff0c;因为是在工厂&#xff0c;工作环境很差&a…

《Spring Cloud Alibaba 从入门到实战》理论知识篇

基础知识篇 理论篇 俗话说&#xff0c;没有最好的架构&#xff0c;只有最合适的架构。 微服务架构也是随着信息产业的发展而出现的最有普遍适用性的一套架构模式。 通常来说&#xff0c;我们认为架构发展历史经历了这样一个过程&#xff1a;单体架构 -> SOA 面向服务架构 …

springboot智慧导诊系统源码:根据患者症状匹配挂号科室

一、系统概述 医院智慧导诊系统是在医疗中使用的引导患者自助就诊挂号&#xff0c;在就诊的过程中有许多患者不知道需要挂什么号&#xff0c;要看什么病&#xff0c;通过智慧导诊系统&#xff0c;可输入自身疾病的症状表现&#xff0c;或选择身体部位&#xff0c;在经由智慧导诊…

微型5G智能网关助力打造智能清洁机器人

智能机器人不断融入我们的生活&#xff0c;提供了越来越多样化的服务&#xff0c;例如专用于卫生清洁的机器人&#xff0c;就已经广泛应用于酒店、体育馆、大型商场、写字楼、工地等各种场景&#xff0c;相较于人工&#xff0c;机器人在此类具有高度重复性、劳动量大的工作中具…

C++作业6

以下是一个简单的比喻&#xff0c;将多态概念与生活中的实际情况相联系&#xff1a; 比喻&#xff1a;动物园的讲解员和动物表演 想象一下你去了一家动物园&#xff0c;看到了许多不同种类的动物&#xff0c;如狮子、大象、猴子等。现在&#xff0c;动物园里有一位讲解员&…

用23种设计模式打造一个cocos creator的游戏框架----(五)工厂方法模式

1、模式标准 模式名称&#xff1a;工厂方法模式 模式分类&#xff1a;创建型 模式意图&#xff1a;定义一个用于创建对象的接口&#xff0c;让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 结构图&#xff1a; 适用于&#xff1a; 1、当一个类不知道它…

failed to install plugin grafana 插件安装失败

升级时忽略plugins 权限问题&#xff0c;导致安装插件失败&#xff01;调整权限即可

042:el-table表格表头自定义高度(亲测好用)

第042个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Shrio 安全框架

目录 前言 1.介绍 2.整合 Shiro 到 Spring Boot 3.Shiro 相关配置 总结 前言 几乎所有涉及用户的系统都需要进行权限管理&#xff0c;权限管理涉及到一个系统的安全。Spring Boot 的安全框架整合方案中还有一个璀璨的明珠&#xff1a;Shrio。 1.介绍 Shiro是一款由Java 编…

信道复用技术

目录 一、频分复用FDM&#xff08;Frequency Division Multiplexing&#xff09; 二、波分复用 WDM&#xff08;Wavelength Division Multiplexing&#xff09; 三、时分复用TDM&#xff08;Time Division Multiplexing&#xff09; 四、统计时分复用 STDM&#xff08;Statisti…

双通道5V高细分步进电机驱动芯片应用于摇头机,X,Y控制,聚焦控制,CAMERA云台控制等产品上的芯片选型分析

双通道5V高细分步进电机驱动芯片GC6106&#xff0c;GC6107&#xff0c;GC6119&#xff0c;GC6151&#xff0c;GC6236&#xff0c;GC6225&#xff0c;GC6129&#xff0c;电压范围3~5.5V&#xff0c;最大持续电流可达0.6A左右。可应用于摇头机&#xff0c;X,Y控制&#xff0c;聚焦…

安装vue环境

1.Hello Vue.js <script src"https://cdn.staticfile.org/vue/2.7.0/vue.min.js"></script>/*引入js文件 */ <script> new Vue({ /* 创建一个对象&#xff0c;两个属性。 */ el: #app, data: { message: Hello Vue.js! }, methods: { details: f…