一、服務器配置
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
```
[回目錄](# 目錄)