达梦DSC集群+DW备库部署

1.服务器硬件需求

按实际业务需求,选择合适的服务器,准备 3 台服务器,实验服务器参数建议如下:

硬件要求
物理内存>=8 GB
交换区8192
/tmp大小>1000 MB
网络物理机器需要 2个网卡,1个 public 网卡,1个 private 网卡
磁盘根据实际应用系统需要挂载合适大小磁盘
共享存储根据实际应用系统需要挂载合适大小共享存储

2.操作系统要求

2.1.操作系统版本安装

DM 数据库安装在 Linux 操作系统所需条件:glibc 2.3 以上,内核 2.6,预先安装 UnixODBC,系统性能监控等组件。

2.2.本地目录规划

用途目录路径备注
数据库软件安装目录/home/dmdba/dmdbms可用空间>50 GB
本地归档日志存放目录/dmdata/dmarch单独挂载磁盘
远程归档日志存放目录/remote_arch单独挂载磁盘
备份文件存放目录/dmdata/dmbak单独挂载磁盘

2.3.共享存储规划

用途磁盘/分区备注
存放 dcr 信息/dev/sdf1 GB 左右
存放 vote 信息/dev/sdg1 GB 左右
存放 redo 日志/dev/sdh10 GB 左右
存放数据文件/dev/sdi11 GB左右

3.操作系统配置

3.1.用户与组

DM 数据库不应该使用 root 用户安装和维护。需要在安装之前为 DM 数据库创建一个专用的系统用户 (dmdba) 和用户组 (dinstall)。

执行以下命令,新

groupadd dinstall

执行以下命令,新建用户 dmdba:

useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba

执行以下命令,修改 dmdba 用户密码:

passwd dmdba
dameng123

输入密码并确认

3.2.用户资源限制

执行以下命令,修改 dmdba 用户资源限制:

vim /etc/security/limits.conf

文件末尾添加如下内容:

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

3.3.修改内核参数

cp /etc/sysctl.conf /etc/sysctl.conf.bak
vi /etc/sysctl.conf

$ sysctl -a | grep ‘fs.file-max’

fs.file-max = 6553560

$ cat /proc/sys/fs/file-max

6553560

sysctl -a | grep ‘fs.aio-max-nr’

#增加系统文件描述符限制 2^20-1

#表示系统级别的能够打开的文件句柄的数量。是对整个系统的限制,并不是针对用户的

fs.file-max = 6553560
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 = /home/dmdata/core.%p
vm.swappiness=10
vm.dirty_background_ratio = 0
vm.min_free_kbytes = 2097152

使参数生效,执行

cat /etc/security/limits.conf

sysctl -p

3.4.用户环境变量

执行以下命令,修改 dmdba 用户环境变量:

vi /home/dmdba/.bash_profile

文件末尾添加如下内容

export DM_HOME=/home/dmdba/dmdbms
export PATH=$PATH:$DM_HOME/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$DM_HOME/bin

3.5.防火墙设置

3.5.1.关闭防火墙

设置系统安全策略
SELinux
echo "SELINUX=disabled" > /etc/selinux/config
echo "SELINUXTYPE=targeted" >> /etc/selinux/config

cat /etc/selinux/config
setenforce 0

关闭防火墙
systemctl status firewalld.service
systemctl stop firewalld.service
systemctl disable firewalld.service

3.5.2.端口规划

搭建 2 节点共享存储集群,端口规划如下:(实际中可以按需要修改端口号)

主机名public ipprivate ip实例名端口用途
dmdsc1192.168.25.101dsc15236数据库实例 dmrw1 监听端口
dmdsc1192.168.25.101dsc19200节点 1 DCR 检查数据库实例监听端口
dmdsc1192.168.25.101dsc19000节点 1 CSS 进程 TCP 连接端口
dmdsc1192.168.25.101dsc19100节点 1 ASM 进程 TCP 连接的端口
dmdsc1192.168.25.101dsc17000节点 1 ASM 的 MAL 系统 TCP 连接的端口
dmdsc1192.168.25.101dsc19300节点 1 数据库实例的 MAL 系统 TCP 连接的端口
dmdsc2192.168.25.102dsc25236数据库实例 dmrw2 监听端口
dmdsc2192.168.25.102dsc29200节点 2 DCR 检查数据库实例监听端口
dmdsc2192.168.25.102dsc29000节点 2 CSS 进程 TCP 连接端口
dmdsc2192.168.25.102dsc29100节点 2 ASM 进程 TCP 连接的端口
dmdsc2192.168.25.102dsc27000节点 2 ASM 的 MAL 系统 TCP 连接的端口
dmdsc2192.168.25.102dsc29300节点 2 数据库实例的 MAL 系统 TCP 连接的端口
dsc_dw192.168.25.103dsc_dw5236备库实例端口

共享集群+主备端口规划

实例名实例端口MAL 系统监听 TCP 连接的端口实例本地的守护进程监听
TCP 连接的端口
实例监听守护进程
TCP 连接的端口
dsc15236930072368236
dsc25236930072368236
dsc_dw5236930072368236

4.安装数据库

4.1.使用root用户挂载数据库软件的iso文件

mkdir -p /dmiso
mount -oloop dm8_20211112_x86_rh6_64_ent_8.1.2.94.iso /dmiso

4.2.使用dmdba用户安装软件

su - dmdba

执行以下命令,切换到 /dmiso 目录下

cd /dmiso

执行 DMInstall.bin 文件开始安装,选择【-i】参数以命令行方式安装。

./DMInstall.bin -i

选择安装程序的语言 c/C 为中文,e/E 为英文。

提示是否安装 key 文件,输入 N 跳过。

选择时区,21 即东 8 区。

选择安装类型,默认典型安装(包含所有内容)。

选择软件安装目录,默认 /home/dmdba/dmdbms

确认安装

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

/home/dmdba/dmdbms/script/root/root_installer.sh

[root@dm95 mnt]# /home/dmdba/dmdbms/script/root/root_installer.sh
移动 /home/dmdba/dmdbms/bin/dm_svc.conf 到/etc目录
修改服务器权限
创建DmAPService服务
Created symlink from /etc/systemd/system/multi-user.target.wants/DmAPService.service to /usr/lib/systemd/system/DmAPService.service.
创建服务(DmAPService)完成
启动DmAPService服务

5.配置共享存储

本次使用VM VirtualBox模拟存储

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yRL7LCpo-1657848293757)(image_1.dbe40be3.png)]

sdf-sdi 是需要配置的共享磁盘。

执行以下命令,新建 udev 规则文件:

vi /etc/udev/rules.d/90-raw.rules

添加以下内容:

ACTION=="add",KERNEL=="sdf",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdg",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sdh",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",KERNEL=="sdi",RUN+="/bin/raw /dev/raw/raw4 %N"
KERNEL=="raw[1-4]", OWNER="dmdba", GROUP="dinstall", MODE="660"

执行以下命令,使 udev 生效:

udevadm trigger --type=devices --action=change

执行以下命令,检查是否配置成功:

ll /dev/raw/raw*

注意
如果查看不到配置的裸设备,请重启服务器再验证

6.配置 DCR 初始化配置文件

创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:

mkdir -p /home/dmdba/conf

新建dmdcr_cfg.ini文件,节点 1 使用 dmdba 用户,执行以下命令:

vim /home/dmdba/conf/dmdcr_cfg.ini

添加以下内容:

DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635

[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.25.101
DCR_EP_PORT = 9000
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.25.102
DCR_EP_PORT = 9000
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 500
DCR_EP_HOST = 192.168.25.101
DCR_EP_PORT = 9100
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 500
DCR_EP_HOST = 192.168.25.102
DCR_EP_PORT = 9100
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9200
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9200

7.创建 ASM 磁盘

使用 dmdba 用户,到 DM 数据库软件安装目录的 bin 目录执行以下命令(只需在一个节点执行)。

cd /home/dmdba/dmdbms/bin
./dmasmcmd

进入 ASM 提示符后执行以下命令:

create dcrdisk '/dev/raw/raw1' 'dcr'
create votedisk '/dev/raw/raw2' 'vote'
create asmdisk '/dev/raw/raw3' 'LOG0'
create asmdisk '/dev/raw/raw4' 'DATA0'

使用编辑好的dmdcr_cfg.ini配置文件初始化dcrdiskvotedisk,并在 ASM 提示符执行以下命令:

init dcrdisk '/dev/raw/raw1' from '/home/dmdba/conf/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/raw/raw2' from '/home/dmdba/conf/dmdcr_cfg.ini'

注意
DMASMCMD工具中执行命令结尾不要加分号。

8.配置ASM的MAL系统配置文件

2 个节点都需要配置,且文件内容相同,执行以下命令:

vi /home/dmdba/conf/dmasvrmal.ini

添加以下内容:

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.25.101
MAL_PORT = 7000
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.25.102
MAL_PORT = 7000

9.配置 DCR 启动配置文件

DMASM 的两个节点分别配置,dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqo 分别为0 和1。

vi /home/dmdba/conf/dmdcr.ini

9.1.节点 1 添加以下内容:

DMDCR_PATH = /dev/raw/raw1
#dmasmsvr使用的MAL配置文件路径
DMDCR_MAL_PATH = /home/dmdba/conf/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
#ASM重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/conf/dmdcr.ini
#DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/conf/dsc0_config/dm.ini dcr_ini=/home/dmdba/conf/dmdcr.ini

9.2.节点 2 添加以下内容:

DMDCR_PATH = /dev/raw/raw1
#dmasmsvr使用的MAL配置文件路径
DMDCR_MAL_PATH = /home/dmdba/conf/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 90
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/conf/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/conf/dsc1_config/dm.ini dcr_ini=/home/dmdba/conf/dmdcr.ini

警告
两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0

10.启动集群

10.1.启动DMCSS服务

集群各节点分别启动css和asm服务,2个节点启动 dmcssdmdba 用户到数据库安装目录 bin 下执行以下命令:

./dmcss dcr_ini=/home/dmdba/conf/dmdcr.ini
./dmasmsvr DCR_INI=/home/dmdba/conf/dmdcr.ini

提示
上面的启动方式是前台启动,输入exit,即可退出,且要先停asm服务。

css 启动 asm 成功,(出现 asm is ready即表明启动成功)。

10.2.创建 ASM 磁盘组

asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具。

./dmasmtool dcr_ini=/home/dmdba/conf/dmdcr.ini

在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组,执行以下命令:

create diskgroup 'DMLOG'asmdisk '/dev/raw/raw3'

创建数据文件磁盘组,执行以下命令:

create diskgroup 'DMDATA'asmdisk '/dev/raw/raw4'

10.3.初始化共享存储集群数据库实例

dminit.ini是设置数据库初始化参数的文件,要根据实际情况设置,尤其是页大小、字符集、大小写是否敏感的参数要和应用确认。在集群一个节点配置即可。

配置 dminit 控制文件,节点 1 使用 dmdba 用户执行以下命令:

vi /home/dmdba/conf/dminit.ini

添加以下内容:

db_name = dsc
system_path = +DMDATA/data
system = +DMDATA/data/dsc/system.dbf
system_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
main = +DMDATA/data/dsc/main.dbf
main_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
page_size = 32
extent_size = 32
charset = 0
case_sensitive = 1
log_size = 2048
dcr_path = /dev/raw/raw1
dcr_seqno = 0
auto_overwrite = 1
[DSC0]
config_path = /home/dmdba/conf/dsc0_config
port_num = 5236
mal_host = 192.168.25.101
mal_port = 9300
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1]
config_path = /home/dmdba/conf/dsc1_config
port_num = 5236
mal_host = 192.168.25.102
mal_port = 9300
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

初始化实例,节点 1 使用 dmdba 用户执行以下命令:

./dminit control=/home/dmdba/conf/dminit.ini

实例初始化成功,类似下图结果:
在这里插入图片描述

在集群的1个节点启动dminit工具初始化数据库。dminit 执行完成后,会在 config_path目录(/home/dmdba/conf/dsc0_config 和/home/dmdba/conf/ dsc1_config)下生成配置文件 dm.ini 和 dmmal.ini。

在这里插入图片描述

10.4.启动数据库服务

将节点1机器/home/dmdba/conf/dsc1_config目录拷贝到节点2机器的/home/dmdba/conf目录下,再分别启动dmserver即可完成DMDSC集群搭建。

将 dsc2 目录复制到节点 2 上对应的目录下。

scp -r dsc2 192.168.25.102:/home/dmdba/conf/

如果DMCSS配置有自动拉起 dmserver 的功能,可以等待DMCSS自动拉起实例,不需要手动启动。

下面是手动前台方式启动集群各节点的数据库服务:

节点1:

su - dmdba
cd /home/dmdbadmdbms/bin
./dmserver /home/dmdba/conf/dsc0_config/dm.ini dcr_ini=/home/dmdba/conf/dmdcr.ini

节点2:

su - dmdba
cd /home/dmdbadmdbms/bin
./dmserver /home/dmdba/conf/dsc1_config/dm.ini dcr_ini=/home/dmdba/conf/dmdcr.ini

观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。

然后,可以依次退出数据库服务,asm服务,css服务,关闭集群。

11.注册服务

以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。注册的服务主要有:DMCSS、DMASM、DMSERVER这3个关键服务。

2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。

节点1:

su - root
cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/conf/dmdcr.ini -p DSC
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/conf/dmdcr.ini -p DSC -y DmCSSServiceDSC.service
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/conf/dsc0_config/dm.ini -dcr_ini /home/dmdba/conf/dmdcr.ini -p DSC -y DmASMSvrServiceDSC

节点2:

su - root
cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmcss -dcr_ini /home/dmdba/conf/dmdcr.ini -p DSC
./dm_service_installer.sh -t dmasmsvr -dcr_ini /home/dmdba/conf/dmdcr.ini -p DSC -y DmCSSServiceDSC.service
./dm_service_installer.sh -t dmserver -dm_ini /home/dmdba/conf/dsc1_config/dm.ini -dcr_ini /home/dmdba/conf/dmdcr.ini -p DSC -y DmASMSvrServiceDSC.service

12.优化数据库参数

重新以服务的方式启动DSC集群:各节点分别先启动DMCSS服务、再启动DMASM服务,最后启动DMSERVER服务。

节点1和节点2:

su - dmdba

cd /home/dmdba/dmdbms/bin

./DmCSSServiceDSC start

./DmASMSvrServiceDSC start

最后分别启动数据库服务:

./DmServiceDSC start

DSC集群启动成功后,进行数据库参数优化:

(1)使用disql命令,或者登陆达梦的管理工具登陆数据库执行以下优化脚本的内容:

(2)执行完毕后,再执行:

sp_set_para_value(2,'TRX_DICT_LOCK_NUM','1024');
sp_set_para_value(2,'DSC_N_CTLS','50000');
sp_set_para_value(2,'DSC_N_POOLS','101');
sp_set_para_value(2,'DSC_TRX_CMT_LSN_SYNC','0');
sp_set_para_value(2,'DSC_ENABLE_MONITOR','0');

(3)最后,编辑dm.ini

节点1:

vi /home/dmdba/conf/dsc0_config/dm.ini
DSC_FILE_INIT_ASYNC = 0
DSC_TRX_CMT_OPT = 1

节点2:

vi /home/dmdba/conf/dsc1_config/dm.ini
DSC_FILE_INIT_ASYNC = 0
DSC_TRX_CMT_OPT = 1

注意:执行完毕后,需要重启数据库服务生效。这里暂不重启,待下一步配置完归档,再重启。

13.开启归档

生产环境是一定要开启归档的。

节点1:

vi /home/dmdba/conf/dsc0_config/dm.ini
ARCH_INI = 1

vi /home/dmdba/conf/dsc0_config/dmarch.ini
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/dmarch/arch_dsc0
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC1
ARCH_INCOMING_PATH = +DMDATA/dmarch/arch_dsc1
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400

节点2:

vi /home/dmdba/conf/dsc1_config/dm.ini
ARCH_INI = 1

vi /home/dmdba/conf/dsc1_config/dmarch.ini
ARCH_LOCAL_SHARE = 1
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = +DMDATA/dmarch/arch_dsc1
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400
[ARCH_REMOTE1]
ARCH_TYPE = REMOTE
ARCH_DEST = DSC0
ARCH_INCOMING_PATH = +DMDATA/dmarch/arch_dsc0
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT = 102400

注意:归档开启后,需要重启数据库服务。

14.配置DSC集群监视器

监视器可以用来监控集群的整个状态,启停服务等。

su - dmdba
vi /home/dmdba/conf/dmcssm.ini


CSSM_OGUID = 63635
CSSM_CSS_IP = 192.168.25.101:9000
CSSM_CSS_IP = 192.168.25.102:9000
CSSM_LOG_PATH = /home/dmdba/dmdbms/log
CSSM_LOG_FILE_SIZE = 500
CSSM_LOG_SPACE_LIMIT = 2048

启动监视器查看集群:

/home/dmdba/dmdbms/bin/dmcssm /home/dmdba/conf/dmcssm.ini

输入show命令查看,输入help,可以看到支持的命令。

15.配置DSC集群监视器

登陆DSC集群节点1:

su - dmdba
cd /home/dmdba/dmdbms/bin
./dmcssm ini_path=/home/dmdba/conf/dmcssm.ini
ep stop grp_dsc
ep stop grp_asm
exit

然后DSC集群2节点分别执行:

./DmCSSServiceDSC stop

16.DSC集群备份

注意:如果第15步骤停止了集群,需要重启集群,停止数据库实例即可,否则备份时报错无法连接ASM磁盘
节点1和节点2:
su - dmdba
cd /home/dmdba/dmdbms/bin
./ DmCSSServiceDSC start
./ DmASMSvrServiceDSC start
最后分别启动数据库服务:
./DmServiceDSC start
使用监视器停止数据库实例即可
cd /home/dmdba/dmdbms/bin
./dmcssm ini_path=/home/dmdba/conf/dmcssm.ini
ep stop grp_dsc

集群备份:

cd /home/dmdba/dmdbms/bin

./dmrman use_ap=2 dcr_ini=/home/dmdba/conf/dmdcr.ini

BACKUP DATABASE ‘/home/dmdba/conf/dsc0_config/dm.ini’ BACKUPSET ‘/dmdata/dmbak/db_full_601’;

RMAN> BACKUP DATABASE '/home/dmdba/conf/dsc0_config/dm.ini' BACKUPSET '/dmdata/dmbak/db_full_1028';

拷贝备份集到DW备库:

scp -r /dmdata/dmbak/db_full_1028 dmdba@192.168.25.103:/dmdata/dmbak

17.DSC集群+DW配置

17.1.DSC集群配置

1.修改dm.ini

节点1:

vi /home/dmdba/conf/dsc0_config/dm.ini

ALTER_MODE_STATUS = 0

ENABLE_OFFLINE_TS = 2

MAL_INI = 1

节点2:

vi /home/dmdba/conf/dsc1_config/dm.ini

ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1

2.新建dmmal.ini

DSC集群所有节点内容都一致

vi /home/dmdba/conf/dsc0_config/dmmal.ini

MAL_CHECK_INTERVAL = 30
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST0]
MAL_INST_NAME = DSC0
MAL_HOST = 192.168.25.101
MAL_PORT = 9300
MAL_INST_HOST = 192.168.25.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 8236
MAL_INST_DW_PORT = 7236
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 192.168.25.102
MAL_PORT = 9300
MAL_INST_HOST = 192.168.25.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 8236
MAL_INST_DW_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = DSC_DW
MAL_HOST = 192.168.25.103
MAL_PORT = 9300
MAL_INST_HOST = 192.168.25.103
MAL_INST_PORT = 5236
MAL_DW_PORT = 8236
MAL_INST_DW_PORT = 7236

3.新建dmwatcher.ini

节点1:

vi /home/dmdba/conf/dsc0_config/dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /home/dmdba/conf/dsc0_config/dm.ini
DCR_INI = /home/dmdba/conf/dmdcr.ini
INST_OGUID = 63635
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0

节点2:

vi /home/dmdba/conf/dsc1_config/dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /home/dmdba/conf/dsc1_config/dm.ini
DCR_INI = /home/dmdba/conf/dmdcr.ini
INST_OGUID = 63635
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 0

4.修改dmdcr.ini

修改启动数据库到mount状态,并打开css服务自动拉起asm和dmserver进程。

节点1:

vi /home/dmdba/conf/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1
#dmasmsvr使用的MAL配置文件路径
DMDCR_MAL_PATH = /home/dmdba/conf/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_AUTO_OPEN_CHECK = 90
#ASM重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/conf/dmdcr.ini
#DB重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/conf/dsc0_config/dm.ini dcr_ini=/home/dmdba/conf/dmdcr.ini mount

节点2:

vi /home/dmdba/conf/dmdcr.ini

DMDCR_PATH = /dev/raw/raw1
#dmasmsvr使用的MAL配置文件路径
DMDCR_MAL_PATH = /home/dmdba/conf/dmasvrmal.ini
DMDCR_SEQNO = 1
DMDCR_AUTO_OPEN_CHECK = 90
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/conf/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/conf/dsc1_config/dm.ini dcr_ini=/home/dmdba/conf/dmdcr.ini mount

5.注册守护进程服务

su - root
cd /home/dmdba/dmdbms/script/root
#节点1:
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/conf/dsc0_config/dmwatcher.ini -p DSC
#节点2:
./dm_service_installer.sh -t dmwatcher -watcher_ini /home/dmdba/conf/dsc1_config/dmwatcher.ini -p DSC

6.启动DSC集群(mount状态),DSC集群2个节点分别执行:

cd /home/dmdba/dmdbms/bin
./DmCSSServiceDSC start

7.任一集群节点,打开监视器查看:

./dmcssm ini_path=/home/dmdba/conf/dmcssm.ini

最终,数据库会成功启动到mount状态。

设置DSC集群为主库

登陆DSC集群任一节点执行:设置OGUID和设置为主库

cd /home/dmdba/dmdbms/bin
./disql SYSDBA/SYSDBA

SP_SET_OGUID(63635);
ALTER DATABASE PRIMARY;

17.2.DW实时备库部署

1.安装数据库软件

安装步骤同与上述步骤相同

2.初始化数据库实例

cd /home/dmdba/dmdbms/bin
./dminit path=/dm/dmdata page_size=32 extent_size=32 charset=0 LENGTH_IN_CHAR=0 log_size=2048 db_name=dmdb instance_name=dmdb SYSDBA_PWD="Hn@dameng123" SYSAUDITOR_PWD="Hn@dameng123"

3.使用备份还原数据库

./dmrman use_ap=2 CTLSTMT="RESTORE DATABASE '/dmdata/dmdb/dm.ini' FROM BACKUPSET '/dmdata/dmbak/db_full_1028'"
./dmrman use_ap=2 CTLSTMT="RECOVER DATABASE '/dmdata/dmdb/dm.ini' FROM BACKUPSET '/dmdata/dmbak/db_full_1028'"
./dmrman use_ap=2 CTLSTMT="RECOVER DATABASE '/dmdata/dmdb/dm.ini' UPDATE DB_MAGIC"

17.3.DW实时备库配置

1.修改dm.ini

vi /dmdata/dmdb/dm.ini
ALTER_MODE_STATUS = 0
ENABLE_OFFLINE_TS = 2
MAL_INI = 1
ARCH_INI = 1

2.新建dmmal.ini

vi /dmdata/dmdb/dmmal.ini

文件内容和DSC集群节点保持一致。

MAL_CHECK_INTERVAL = 30
MAL_CONN_FAIL_INTERVAL = 10
[MAL_INST0]
MAL_INST_NAME = DSC0
MAL_HOST = 192.168.25.101
MAL_PORT = 9300
MAL_INST_HOST = 192.168.25.101
MAL_INST_PORT = 5236
MAL_DW_PORT = 8236
MAL_INST_DW_PORT = 7236
[MAL_INST1]
MAL_INST_NAME = DSC1
MAL_HOST = 192.168.25.102
MAL_PORT = 9300
MAL_INST_HOST = 192.168.25.102
MAL_INST_PORT = 5236
MAL_DW_PORT = 8236
MAL_INST_DW_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = DSC_DW
MAL_HOST = 192.168.25.103
MAL_PORT = 9300
MAL_INST_HOST = 192.168.25.103
MAL_INST_PORT = 5236
MAL_DW_PORT = 8236
MAL_INST_DW_PORT = 7236

3.新建dmarch.ini

vi /dmdata/dmdb/dmarch.ini

ARCH_WAIT_APPLY = 0
[ARCHIVE_LOCAL1]
ARCH_TYPE = LOCAL
ARCH_DEST = /dmdata/dmarch
ARCH_FILE_SIZE = 1024
ARCH_SPACE_LIMIT= 307200
[ARCHIVE_REALTIME1]
ARCH_TYPE = REALTIME
ARCH_DEST = DSC0/DSC1

4.新建dmwatcher.ini

vi /dmdata/dmdb/dmwatcher.ini

[GRP1]
DW_TYPE = GLOBAL
DW_MODE = MANUAL
DW_ERROR_TIME = 60
INST_RECOVER_TIME = 60
INST_ERROR_TIME = 35
INST_INI = /dmdata/dmdb/dm.ini
INST_OGUID = 63635
INST_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
INST_AUTO_RESTART = 1

5.注册守护进程和数据库进程服务

su - root
cd /home/dmdba/dmdbms/script/root

./dm_service_installer.sh -t dmserver -dm_ini /dmdata/dmdb/dm.ini -m mount -p DSC_DW
./dm_service_installer.sh -t dmwatcher -watcher_ini /dmdata/dmdb/dmwatcher.ini -p DSC_DW

6.启动数据库服务(mount状态)

cd /home/dmdba/dmdbms/bin
./DmServiceDSC_DW start

7.设置DW为备库

设置oguid和设置为备库:

cd /home/dmdba/dmdbms/bin

SP_SET_OGUID(63635);
ALTER DATABASE standby;

17.4.配置DSC+DW集群监视器

DSC集群新建dmmonitor.ini

vi /home/dmdba/conf/dmmonitor.ini

MON_DW_CONFIRM = 0
MON_LOG_PATH = /home/dmdba/dmdbms/log
MON_LOG_INTERVAL = 60
MON_LOG_FILE_SIZE = 500
MON_LOG_SPACE_LIMIT = 2048
[GRP1]
MON_INST_OGUID = 63635
MON_DW_IP = 192.168.25.101:8236/192.168.25.102:8236
MON_DW_IP = 192.168.25.103:8236

17.5.启动守护进程

分别启动DSC集群和备库的守护进程:

cd /home/dmdba/dmdbms/bin
DSC集群:
./DmWatcherServiceDSC start
DW备库:
./DmWatcherServiceDSC_DW start

17.6.监视器查看DSC+DW集群状态

打开DSC+DW集群监视器,查看集群状态:

cd /home/dmdba/dmdbms/bin
./dmmonitor /home/dmdba/conf/dmmonitor.ini

输入show命令查看,确保数据库实例是ok,且都处于open状态,守护进程状态ok,归档状态都是valid。

18.备份策略

18.1.定时全备

#定时每周六凌晨1点做物理全备:
SP_INIT_JOB_SYS(1); --开启代理作业
call SP_CREATE_JOB('full_bak', 1, 0, '', 0, 0, '', 0, '每周六晚上凌晨1点开始做物理全备份');
call SP_JOB_CONFIG_START('full_bak');
call SP_ADD_JOB_STEP('full_bak', 's1', 6, '01040000/dmdata/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('full_bak', 's2', 1, 2, 1, 64, 0, '01:00:00', NULL, '2021-11-02 14:58:35', NULL, '');
call SP_JOB_CONFIG_COMMIT('full_bak');

18.2.定时增备

#定时每天凌晨1点,周六除外,做增量备份:
call SP_CREATE_JOB('increment_bak', 1, 0, '', 0, 0, '', 0, '除每周六外,每天增量物理备份');
call SP_JOB_CONFIG_START('increment_bak');
call SP_ADD_JOB_STEP('increment_bak', 's1', 6, '41040000/dmdata/dmbak|/dmdata/dmbak', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('increment_bak', 's2', 1, 2, 1, 63, 0, '01:00:00', NULL, '2021-11-02 15:02:07', NULL, '');
call SP_JOB_CONFIG_COMMIT('increment_bak');

18.3.定时删除备份

定时每天晚上22点删除前30天的备份:
call SP_CREATE_JOB('del_bak', 1, 0, '', 0, 0, '', 0, '每天晚上22点定时删除30天前的备份');
call SP_JOB_CONFIG_START('del_bak');
call SP_ADD_JOB_STEP('del_bak', 's1', 0, 'SF_BAKSET_BACKUP_DIR_ADD(''DISK'',''/dmdata/dmbak'');call sp_db_bakset_remove_batch(''DISK'',now()-30);', 0, 0, 0, 0, NULL, 0);
call SP_ADD_JOB_SCHEDULE('del_bak', 's2', 1, 1, 1, 0, 0, '22:00:00', NULL, '2021-11-02 15:07:15', NULL, '');
call SP_JOB_CONFIG_COMMIT('del_bak');

19.优化DW备库数据库参数

(1)执行1.14步骤的优化脚本

(2)再登陆数据库执行以下命令:

sp_set_para_value(2,'REDO_BUF_SIZE',512) --64
sp_set_para_value(2,'REDOS_BUF_SIZE',30720);--1024
sp_set_para_value(2,'REDOS_BUF_NUM',8192);-- 4096
sp_set_para_value(2,'REDOS_PARALLEL_NUM',32);
sp_set_para_value(2,'REDOS_PRE_LOAD',1);-- 0
sp_set_para_value(2,'REDOS_ENABLE_SELECT',0);-- 1

(3)跑完,重启数据库服务生效

cd /home/dmdba/dmdbms/bin
./DmServiceDSC_DW restart

20.禁止服务开机自启动

DSC集群节点执行:
systemctl disable DmASMSvrServiceDSC
systemctl disable DmCSSServiceDSC
systemctl disable DmServiceDSC
systemctl disable DmWatcherServiceDSC
DW备库执行:
systemctl disable DmServiceDSC_DW
systemctl disable DmWatcherServiceDSC_DW

21.配置服务名访问DSC+DW集群

在应用或中间件服务上创建dm_svc.conf文件:

LINUX操作系统上创建在/etc/目录下,如/etc/dm_svc.conf。

WINDOWS操作系统上创建在C:\windows\system32\和C:\Windows\SysWOW64目录下,文件中添加以下内容:

vi /etc/dm_svc.conf

# 以#开头的行表示是注释
# 全局配置区
DMDSC=(192.168.25.101:5236,192.168.25.101:5236,192.168.25.103.33)
TIME_ZONE=(+480) #表示+8:00 时区
LOGIN_ENCRYPT=(0)
DIRECT=(Y)
# 服务配置区
[DMDSC]
CLUSTER=(DSC) #表示集群为DSC集群
EP_SELECTOR=(1) #表示第一节点正常时只连第一个节点
AUTO_RECONNECT=(2) #第一个节点故障恢复后自动重连第一个节点
SWITCH_TIME=(3) #在服务器之间切换的次数
SWITCH_INTERVAL=(10) #在服务器之间切换的时间间隔,单位为毫秒注:DMDSC为服务名,可以自定义,如果数据库用的是默认端口5236,则上面文件的端口号也可以省略。

应用的JDBC连接串修改为:jdbc:dm://DMDSC

24小时免费服务热线:400 991 6599
达梦技术社区:https://eco.dameng.com

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

太行山有西瓜汁

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值