DSC两节点搭建
DSC搭建部署
安装虚拟机
创建共享磁盘
1.在第一台服务器上添加一个磁盘
选择虚拟机(DSC1) > 右键“设置” > 添加“硬盘” > SCSI > 创建新虚拟磁盘 > 指定磁盘容量 > 指定磁盘文件路径及命名 > 确定。
选择新添加得硬盘 2 (SCSI) > 高级 > 设置设备号为 SCSI 1:1 ,模式为独立、永久。
2.在第二台服务器同样添加这个磁盘。
选择虚拟机(DSC2) > 右键“设置” > 添加“硬盘” > SCSI > 使用现有虚拟磁盘 > 选择现有磁盘(浏览找到刚创建的“DMDSC.vmdk”) > 完成。
选择新添加得硬盘 2 (SCSI) > 高级 > 设置设备号为 SCSI 1:1 ,模式为独立、永久。
3 磁盘分区(DSC1)
分区(DSC1)
fdisk /dev/sdb
需要分区后才能进行绑定。依次输入下列信息:
n → p → 1 → “回车” → 1G # dcr
n → p → 2 → “回车” → 1G # vote
n → p → 3 → “回车” → 10G # log0
n → p → 4 → “回车” → 回车 # data0
w # 保存
查看分区(DSC1)
查看分区(DSC2)
如果DSC2中没有显示分区,则可能共享磁盘挂载失败,需要重新挂载。
4 配置裸设备(DSC1 & DSC2)
共享存储需要在 2 个节点上都操作。
sdb1-sdb4 是需要配置的共享磁盘。
新建 udev 规则文件(DSC1 & DSC2)
vi /etc/udev/rules.d/90-raw.rules
添加以下内容:
ACTION=="add",KERNEL=="sdb1",RUN+="/bin/raw /dev/raw/raw1 %N"
ACTION=="add",KERNEL=="sdb2",RUN+="/bin/raw /dev/raw/raw2 %N"
ACTION=="add",KERNEL=="sdb3",RUN+="/bin/raw /dev/raw/raw3 %N"
ACTION=="add",KERNEL=="sdb4",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*
如果查看不到配置的裸设备,请重启服务器再验证。
5 配置 DCR 初始化配置文件(DSC1 & DSC2)
创建配置文件存放目录,2 个节点都要执行,使用 dmdba 用户,执行以下命令:
mkdir -p /home/dmdba/config
新建 dmdcr_cfg.ini 文件,节点 1 使用 dmdba 用户,执行以下命令:
vim /home/dmdba/config/dmdcr_cfg.ini
添加以下内容:
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/raw/raw2
DCR_OGUID = 63635
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 172.16.1.171 #DCR_EP_HOST
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 172.16.1.172 #DCR_EP_HOST
DCR_EP_PORT = 9341
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93360
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 172.16.1.171 #DCR_EP_HOST
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[ASM]
DCR_EP_NAME = ASM2
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 10
DCR_EP_HOST = 172.16.1.172 #DCR_EP_HOST
DCR_EP_PORT = 9351
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 60
[DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
[DSC]
DCR_EP_NAME = DSC2
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9741
6创建 ASM 磁盘(DSC1)
创建磁盘
使用 dmdba 用户,到 DM 数据库软件安装目录的 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'
DROP DISKGROUP
初始化磁盘
使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk,并在 ASM 提示符执行以下命令:
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'SYSDBA'
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini'
配置ASM的MAL系统配置文件(DSC1 & DSC2)
2 个节点都需要配置,且文件内容相同,执行以下命令:
vi /home/dmdba/config/dmasvrmal.ini
添加以下内容:
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 172.16.1.171 #MAL_HOST
MAL_PORT = 7236
[MAL_INST2]
MAL_INST_NAME = ASM2
MAL_HOST = 172.16.1.172 #MAL_HOST
MAL_PORT = 7236
配置 DCR 启动配置文件(DSC1 & DSC2)
节点一和节点二各需要创建dmdcr.ini文件。
两者内容差别主要在于DMDCR_SEQNO和PATH中的实例名。
将ASM和DB的重启参数均设置为0,为手动拉起ASM和DB服务,主要是为了防止拉起过程出现故障导致不断重启。
vi /home/dmdba/config/dmdcr.ini
节点 1 添加以下内容:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
节点 2 添加以下内容:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/dmdba/config/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 0
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
两个节点的 DMDCR_SEQNO 参数不能相同要唯一,DMDCR_DB_STARTUP_CMD 中启动脚本路径和配置文件路径要配置准确。
如果不配置 css 自动启动 asm 和 db 则需要配置 DMDCR_ASM_RESTART_INTERVAL 和DMDCR_DB_RESTART_INTERVAL 为 0。
启动DMDSC集群
7 启动 DMCSS 服务(DSC1 & DSC2)
2 个节点启动 dmcss,dmdba 用户到数据库安装目录 bin 下执行以下命令:
前台方式启动
./dmcss dcr_ini=/home/dmdba/config/dmdcr.ini
或者等后续注册服务后用以下语句启动。
服务方式启动
systemctl start DmCSSServicecss1/DmCSSServicecss2
先启动的节点是控制节点,本文没有配置 css 自动启动 asm 和 db,所以需要手动拉起。(DCR启动配置文件中的DMDCR_ASM_RESTART_INTERVAL和DMDCR_DB_RESTART_INTERVAL的值均为0。)如需自动启动,可修改其参数值。
8 启动 ASM 服务(DSC1 & DSC2)
2 个节点启动 asm,dmdba 用户到数据库安装目录 bin 下执行以下命令:
./dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
或者配置自动启动,等待css启动asm成功。
出现 ASM is ready 即为启动成功。
或者通过 ps -ef | grep asm 查询到相关进程存在即为成功。
9创建 ASM 磁盘组(DSC1)
asm 启动成功后,节点 1 使用 dmdba 用户启动 dmasmtool 工具。
在 ASM 提示符下创建 asm 磁盘组,创建 REDO 日志磁盘组和数据文件磁盘组。
./dmasmtool dcr_ini=/home/dmdba/config/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/raw/raw3'
create diskgroup 'DMDATA' asmdisk '/dev/raw/raw4'
exit # 退出
初始化共享存储集群数据库实例(DSC1)
配置 dminit 控制文件(DSC1)
节点 1 使用 dmdba 用户执行以下命令:
vi /home/dmdba/config/dminit.ini
添加以下内容:(注意修改IP和路径)
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
log_size = 1024
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc1
port_num = 5236
mal_host = 172.16.1.171
mal_port = 9236
log_path = +DMLOG/log/DSC1_log01.log
log_path = +DMLOG/log/DSC1_log02.log
[DSC2] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/dmdba/config/dsc2
port_num = 5236
mal_host = 172.16.1.172
mal_port = 9236
log_path = +DMLOG/log/DSC2_log01.log
log_path = +DMLOG/log/DSC2_log02.log
初始化实例(DSC1)
节点 1 使用 dmdba 用户执行以下命令:
./dminit control=/home/dmdba/config/dminit.ini
初始化完成后会显示 create dm database success.
并在 init 控制文件配置的目录下生成 2 个实例的配置文件:
scp -r dsc dmdba@192.168.100.12:/home/dmdba/config/
观察 css 窗口日志,db 会被自动启动。出现 system is ready ep real open,说明数据库实例启动成功。
注册服务(DSC1 & DSC2)
以上启动方式为前台启动,仅用于验证集群配置过程。配置成功后需要注册为系统服务,方便启动和关闭集群,以及实现开机自动启动。
2 个节点都需要注册,使用 root 用户执行,到数据库安装目录的 script/root 目录。
节点 1 执行以下命令:
./dm_service_installer.sh -t dmcss -p css1 -dcr_ini /home/dmdba/config/dmdcr.ini
节点 2 执行以下命令:
./dm_service_installer.sh -t dmcss -p css2 -dcr_ini /home/dmdba/config/dmdcr.ini
关闭前台启动的 css,以服务方式启动 css。
节点 1 执行以下命令:
systemctl start DmCSSServicecss1
节点 2 执行以下命令:
systemctl start DmCSSServicecss2
10启动数据库实例(DSC1 & DSC2)
2 个节点启动 DB,dmdba 用户到数据库安装目录 bin 下执行以下命令:
./dmserver path=/home/dmdba/config/dsc3/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
./dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
11验证集群状态
配置监视器查看(DSC1)
创建监视器配置文件
任意节点新建监视器配置文件,执行以下命令:
vi /home/dmdba/config/dmcssm.ini
添加以下内容:(注意修改IP)
#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致
CSSM_OGUID = 63635
#配置所有 CSS 的连接信息,
#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致
CSSM_CSS_IP = 172.16.1.171:9341
CSSM_CSS_IP = 172.16.1.172:9341
CSSM_LOG_PATH =/home/dmdba/dmdbms/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 1024 #每个日志文件最大 1024 MB
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间
启动监视器
dmdba 用户执行,到数据库软件安装目录 bin 下执行以下命令:
./dmcssm ini_path=/home/dmdba/config/dmcssm.ini
返回前缀为[monitor]的报告。
输入 show 命令,查看 css、asm 和 db 的状态。
以 db 为例,inst_status 字段为 OPEN,vtd_status 字段为 WORKING,active 字段为 TRUE 说明 db 服务正常。
数据库共享验证(DSC1 & DSC2)
(DSC1)创建 T1 表。
(DSC1)向 T1 表插入数据。(DSC1)COMMIT提交数据。
(DSC2)查询数据。
12归档配置
生产环境必须开启归档日志,且必须限制归档日志保留量。
共享存储集群归档需要配置本地归档和远程归档(保证每个节点都有所有归档日志)。
实例 dsc1 上配置,执行以下命令:
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/home/dmdba/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc3, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/home/dmdba/remote_arch';
alter database open;
实例 dsc2 上配置,执行以下命令:
alter database mount;
alter database archivelog;
alter database add archivelog 'DEST=/home/dmdba/dmarch, TYPE=LOCAL, FILE_SIZE=1024, SPACE_LIMIT=102400';
alter database add archivelog 'DEST=dsc1, TYPE=REMOTE, FILE_SIZE=1024, SPACE_LIMIT=102400, INCOMING_PATH=/home/dmdba/remote_arch';
alter database open;
问题
问题描述:启动dsc2实例时启动失败
重新部署解决
问题描述:在dsc1节点对共享磁盘分区,在dsc2查不到分区
解决办法:重启DSC2节点服务器
达梦社区地址:https://eco.dameng.com