達夢(主備)搭建

一、服務器配置

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.pswp.cn/news/208224.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/208224.shtml
英文地址,請注明出處:http://en.pswp.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…