注册
单机搭建dsc共享集群
技术分享/ 文章详情 /

单机搭建dsc共享集群

小家伙 2022/08/12 1960 0 0
                  单机搭建dsc共享集群

1、获取磁盘的uuid
[root@dsc01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdb
36000c297a62f090cc08d1969bd8dd1f2
[root@dsc01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdc
36000c29290d1d7e6974e051875791d2a
[root@dsc01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sdd
36000c295387f0ef0f3af9bb6bfe42c01
[root@dsc01 ~]# /usr/lib/udev/scsi_id -g -u -d /dev/sde
36000c29d8d98d484ab2e2e2db6bf08f0

2、开始部署
1.修改主机名
[root@dsc01 ~]# hostnamectl --static set-hostname dsc01
2.关闭防火墙
[root@dsc01 ~]# systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2022-07-13 10:18:46 CST; 4h 48min ago
Docs: man:firewalld(1)
Main PID: 910 (firewalld)
Tasks: 2
CGroup: /system.slice/firewalld.service
└─910 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid

7月 13 10:18:44 dsc01 systemd[1]: Starting firewalld - dynamic firewall daemon…
7月 13 10:18:46 dsc01 systemd[1]: Started firewalld - dynamic firewall daemon.
[root@dsc01 ~]# systemctl stop firewalld.service
[root@dsc01 ~]# systemctl disable firewalld.service
Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service.
Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.

3.关闭selinux
[root@dsc01 ~]# vi /etc/selinux/config
[root@dsc01 ~]# cat /etc/selinux/config

This file controls the state of SELinux on the system.

SELINUX= can take one of these three values:

enforcing - SELinux security policy is enforced.

permissive - SELinux prints warnings instead of enforcing.

disabled - No SELinux policy is loaded.

SELINUX=disabled

SELINUXTYPE= can take one of three two values:

targeted - Targeted processes are protected,

minimum - Modification of targeted policy. Only selected processes are protected.

mls - Multi Level Security protection.

SELINUXTYPE=targeted

4.修改操作系统资源限制
vim /etc/security/limits.conf

dmdba soft noproc 65536
dmdba hard noproc 65536
dmdba soft nofile 65536
dmdba hard nofile 65536
dmdba hard core unlimited
dmdba soft core unlimited

[root@dsc01 ~]# cat /etc/security/limits.d/20-nproc.conf

  •      soft    nproc     65536
    

5.修改内核参数
vi /etc/sysctl.conf

fs.aio-max-nr = 1048576
fs.file-max=6815744
net.ipv4.ip_local_port_range = 1024 65535
net.core.rmem_default = 262144
net.core.rmem_max= 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048586
vm.overcommit_memory=0

sysctl -p

6.创建用户和组
[root@dsc01 ~]# groupadd -g 10001 dinstall
[root@dsc01 ~]# useradd -u 20001 -g dinstall dmdba
[root@dsc01 ~]# passwd dmdba
更改用户 dmdba 的密码 。
新的 密码:
无效的密码: 密码少于 8 个字符
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。

7.创建目录
[root@dsc01 ~]# mkdir -p /dm8/soft
[root@dsc01 ~]# chown -R dmdba:dinstall /dm8
[root@dsc01 ~]# chmod -R 775 /dm8

8.安装数据库软件
(1)传输达梦安装包到tmp文件夹下
(2)修改安装介质属组和主
[root@dsc01 tmp]# chown -R dmdba.dinstall DMInstall.bin
[root@dsc01 tmp]# chmod 775 DMInstall.bin
(3)安装介质
[dmdba@dsc01 tmp]$ ./DMInstall.bin -i

请以root系统用户执行命令:
/dm8/soft/script/root/root_installer.sh

[root@dsc01 tmp]# . /dm8/soft/script/root/root_installer.sh
移动 /dm8/soft/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服务

9.绑定uuid
[root@dsc01 tmp]# vi /etc/udev/rules.d/99-dmasm.rules
KERNEL==“sd*”,ENV{DEVTYPE}“disk”,SUBSYSTEM"block", PROGRAM==“/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name”,RESULT==“36000c297a62f090cc08d1969bd8dd1f2”,SYMLINK+=“asmdisk/asmdisk1”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”
KERNEL==“sd*”,ENV{DEVTYPE}“disk”,SUBSYSTEM"block", PROGRAM==“/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name”,RESULT==“36000c29290d1d7e6974e051875791d2a”,SYMLINK+=“asmdisk/asmdisk2”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”
KERNEL==“sd*”,ENV{DEVTYPE}“disk”,SUBSYSTEM"block", PROGRAM==“/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name”,RESULT==“36000c295387f0ef0f3af9bb6bfe42c01”,SYMLINK+=“asmdisk/asmdisk3”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”
KERNEL==“sd*”,ENV{DEVTYPE}“disk”,SUBSYSTEM"block", PROGRAM==“/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name”,RESULT==“36000c29d8d98d484ab2e2e2db6bf08f0”,SYMLINK+=“asmdisk/asmdisk4”, OWNER=“dmdba”, GROUP=“dinstall”, MODE=“0660”
/sbin/udevadm trigger --type=devices --action=change

[root@dsc01 ~]# ll /dev/asmdisk/asmdisk*
lrwxrwxrwx 1 root root 6 8月 1 02:34 /dev/asmdisk/asmdisk1 -> …/sdb
lrwxrwxrwx 1 root root 6 8月 1 02:34 /dev/asmdisk/asmdisk2 -> …/sdc
lrwxrwxrwx 1 root root 6 8月 1 02:34 /dev/asmdisk/asmdisk3 -> …/sdd
lrwxrwxrwx 1 root root 6 8月 1 02:34 /dev/asmdisk/asmdisk4 -> …/sde

[root@dsc01 ~]# ll /dev/sd*
brw-rw---- 1 dmdba dinstall 8, 16 8月 1 02:34 /dev/sdb
brw-rw---- 1 dmdba dinstall 8, 32 8月 1 02:34 /dev/sdc
brw-rw---- 1 dmdba dinstall 8, 48 8月 1 02:34 /dev/sdd
brw-rw---- 1 dmdba dinstall 8, 64 8月 1 02:34 /dev/sde

10.配置dsc集群dmdcr_cfg.ini参数文件, 是用于格式化 DCR 和 Voting Disk 的配置文件
[dmdba@dsc01 dm8]$ mkdir -p ./data/config/
[dmdba@dsc01 config]$ vi dmdcr_cfg.ini

DCR_N_GRP = 3 #集群环境有多少个GROUP
DCR_VTD_PATH = /dev/asmdisk/asmdisk2 #Voting Disk 路径
DCR_OGUID = 10024 #DCR OGUID值

[GRP] #新建一个GROUP
DCR_GRP_TYPE = CSS #组类型(CSS/ASM/DB)
DCR_GRP_NAME = GRP_CSS #组名
DCR_GRP_N_EP = 1 #组内节点个数
DCR_GRP_DSKCHK_CNT = 60 #磁盘心跳容错时间,单位:秒
[GRP_CSS]
DCR_EP_NAME = CSS1 #CSS节点名
DCR_EP_HOST = 192.168.139.180 #心跳地址
DCR_EP_PORT = 5336 #CSS端口

[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 1
DCR_GRP_DSKCHK_CNT = 60

[GRP_ASM]
DCR_EP_NAME = ASM0 #ASM节点名,和dmasvrmal的MAL_INST_NAME一致
DCR_EP_SHM_KEY = 93360 #共享内存标识
DCR_EP_SHM_SIZE = 10 #共享内存大小
DCR_EP_HOST = 192.168.139.180 #公共IP地址
DCR_EP_PORT = 5436 #ASM端口
DCR_EP_ASM_LOAD_PATH = /dev/asmdisk #ASM扫描路径

[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 1
DCR_GRP_DSKCHK_CNT = 60
[GRP_DSC]
DCR_EP_NAME = DSC1 #实例名,和dm.ini的INSTANCE_NAME一致
DCR_EP_SEQNO = 0 #组内序号,不能重复
DCR_EP_PORT = 5236 #实例端口,和dm.ini的PORT_NUM一致
DCR_CHECK_PORT = 5536 #DCR检查端口

11、创建ASM磁盘
[dmdba@dsc01 bin]$ ./dmasmcmd
DMASMCMD V8
ASM>create dcrdisk ‘/dev/asmdisk/asmdisk1’ ‘DCR’
Used time: 00:00:01.744
ASM>create votedisk ‘/dev/asmdisk/asmdisk2’ ‘VOTE’
Used time: 65.142(ms).
ASM>create asmdisk ‘/dev/asmdisk/asmdisk3’ ‘LOG’
[Trace]The ASM initialize asmdisk /dev/asmdiske to name DMASMLOG
Used time: 18.403(ms).
ASM>create asmdisk ‘/dev/asmdisk/asmdisk4’ ‘DATA’
[Trace]The ASM initialize asmdisk /dev/asmdiskf to name DMASMDATA
Used time: 15.815(ms).
ASM>init dcrdisk ‘/dev/asmdisk/asmdisk1’ from ‘/dm8/data/config/dmdcr_cfg.ini’ identified by ‘abcd’
[Trace]DG 126 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 126 allocate 4 extents for file 0xfe000002.
[Trace]DG 126 alloc 4 extents for 0xfe000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 182.657(ms).
ASM>init votedisk ‘/dev/asmdisk/asmdisk2’ from ‘/dm8/data/config/dmdcr_cfg.ini’
[Trace]DG 125 alloc one extent for inodes, addr(disk_id, disk_auno, extent_no):(0,0,1).
[Trace]DG 125 allocate 4 extents for file 0xfd000002.
[Trace]DG 125 alloc 4 extents for 0xfd000002, addr(disk_id, disk_auno, extent_no):(0, 0, 2)->(0, 0, 5), need_init = 1.
Used time: 60.331(ms).

12、配置创建dmasvrmal.ini配置文件
[dmdba@dsc01 config]$ vi dmasvrmal.ini

[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.139.180
MAL_PORT = 7236

13、配置dmdcr.ini配置文件
dmdcr.ini 配置文件记录了 DCR 磁盘路径、实例序列号等信息;如果不指定DCR_INI 参数, dmasmsvr 默认在当前路径下查找 dmdcr.ini 文件

[dmdba@dsc01 config]$ vi dmdcr.ini
DMDCR_PATH = /dev/asmdisk/asmdisk1 #DCR磁盘路径
DMDCR_MAL_PATH =/dm8/data/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 30
DMDCR_ASM_STARTUP_CMD = /dm8/soft/bin/dmasmsvr dcr_ini=/dm8/data/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 30
DMDCR_DB_STARTUP_CMD = /dm8/soft/bin/dmserver path=/dm8/data/config/dsc1_config/dm.ini dcr_ini=/dm8/data/config/dmdcr.ini
DMDCR_AUTO_OPEN_CHECK =60 #指定时间内如果节点实例未启动,DMCSS 会自动将节点踢出集群环境,单位为秒,取值范围应大于等于 30s。

14、单节点无需css服务,手动测试启动ASM服务
[dmdba@dsc01 bin]$ ./dmasmsvr dcr_ini=/dm8/data/config/dmdcr.ini

15.注册DMCSS和DMASM服务
root@dsc01 tmp]# /dm8/soft/script/root/dm_service_installer.sh -t dmcss -dcr_ini /dm8/data/config/dmdcr.ini -p rac1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmCSSServicerac1.service to /usr/lib/systemd/system/DmCSSServicerac1.service.
创建服务(DmCSSServicerac1)完成
[root@dsc01 tmp]# /dm8/soft/script/root/dm_service_installer.sh -t dmasmsvr -dcr_ini /dm8/data/config/dmdcr.ini -y DmCSSServicerac1 -p rac1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmASMSvrServicerac1.service to /usr/lib/systemd/system/DmASMSvrServicerac1.service.
创建服务(DmASMSvrServicerac1)完成

16、启动ASM服务
[dmdba@dsc01 bin]$ ./DmASMSvrServicerac1 start
Starting DmASMSvrServicerac1: [ OK ]

17.创建DMASM log和data磁盘组
[dmdba@dsc01 bin]$ ./dmasmtool dcr_ini=/dm8/data/config/dmdcr.ini
DMASMTOOL V8
ASM>create diskgroup ‘DMLOG’ asmdisk ‘/dev/asmdisk/asmdisk3’
Used time: 78.444(ms).
ASM>create diskgroup ‘DMDATA’ asmdisk ‘/dev/asmdisk/asmdisk4’
Used time: 100.800(ms).

18.创建数据库初始化实例参数文件
[dmdba@dsc01 config]$ vi dminit.ini

db_name = dsc
system_path = +DMDATA/data
main = +DMDATA/data/dsc/main.dbf
main_size = 128
roll = +DMDATA/data/dsc/roll.dbf
roll_size = 128
system = +DMDATA/data/dsc/system.dbf
system_size = 128
ctl_path = +DMDATA/data/dsc/dm.ctl
ctl_size = 8
log_size = 256
dcr_path = /dev/asmdisk/asmdisk1
dcr_seqno = 0
auto_overwrite = 1
PAGE_SIZE = 32
CASE_SENSITIVE = Y
CHARSET = 0

[DSC1]
config_path = /dm8/data/config/dsc1_config
port_num = 5236
mal_host = 192.168.139.180
mal_port = 5736
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log

19、使用参数文件初始化DB环境
[dmdba@dsc01 bin]$ ./dminit control=/dm8/data/config/dminit.ini
initdb V8
db version: 0x7000c
file dm.key not found, use default license!
License will expire on 2023-07-20
Normal of FAST
Normal of DEFAULT
Normal of RECYCLE
Normal of KEEP
Normal of ROLL

log file path: +DMLOG/log/dsc0_log01.log

log file path: +DMLOG/log/dsc0_log02.log

write to dir [+DMDATA/data/dsc].
create dm database success. 2022-08-01 02:48:01

20、测试前台启动数据库实例

[dmdba@dsc01 config]$ cd /dm8/soft/bin
[dmdba@dsc01 bin]$ ./dmserver /dm8/data/config/dsc1_config/dm.ini dcr_ini=/dm8/data/config/dmdcr.ini

SYSTEM IS READY.

21、创建数据库服务
[root@dsc01 ~]# /dm8/soft/script/root/dm_service_installer.sh -t dmserver -p rac1 -dm_ini /dm8/data/config/dsc1_config/dm.ini -dcr_ini /dm8/data/config/dmdcr.ini -y DmASMSvrServicerac1
Created symlink from /etc/systemd/system/multi-user.target.wants/DmServicerac1.service to /usr/lib/systemd/system/DmServicerac1.service.
创建服务(DmServicerac1)完成

22.启动数据库服务
[dmdba@dsc01 ~]$ cd /dm8/soft/bin
[dmdba@dsc01 bin]$ ./DmServicerac1 start
Starting DmServicerac1: connnect dmasmtool successfully.
[ OK ]
23、测试数据库连接
SQL> select PATH from v$datafile;

行号 PATH


1 +DMDATA/data/dsc/system.dbf
2 +DMDATA/data/dsc/roll.dbf
3 +DMDATA/data/dsc/TEMP.DBF
4 +DMDATA/data/dsc/main.dbf

已用时间: 1.037(毫秒). 执行号:501.
SQL> select * from v$database;

行号 NAME CREATE_TIME ARCH_MODE LAST_CKPT_TIME STATUS$ ROLE$ MAX_SIZE


       TOTAL_SIZE           DSC_NODES   OPEN_COUNT  STARTUP_COUNT        LAST_STARTUP_TIME  
       -------------------- ----------- ----------- -------------------- -------------------

1 dsc 2022-08-01 02:47:59 N NULL 4 0 0
9536 1 2 2 2022-08-01 02:52:40

已用时间: 14.115(毫秒). 执行号:502.
SQL> select * from v$instance;

行号 NAME INSTANCE_NAME INSTANCE_NUMBER HOST_NAME SVR_VERSION DB_VERSION


       START_TIME          STATUS$ MODE$  OGUID       DSC_SEQNO   DSC_ROLE BUILD_VERSION                     
       ------------------- ------- ------ ----------- ----------- -------- ----------------------------------
       BUILD_TIME          
       --------------------

1 DSC1 DSC1 1 dsc01 DM Database Server x64 V8 DB Version: 0x7000c
2022-08-01 02:52:38 OPEN NORMAL 0 0 NULL 1-2-114-22.07.20-165295-10045-ENT
Jul 20 2022 16:45:02

已用时间: 1.489(毫秒). 执行号:503.

评论
后发表回复

作者

文章

阅读量

获赞

扫一扫
联系客服