一、环境准备

虚拟机准备,添加共享磁盘

(1)共享存储规划

裸设备名

容量

用途

/dev/sdb

10 G

/dev/asmdata0(数据磁盘)

/dev/sdc

5 G

/dev/asmdcr(DCR 磁盘)

/dev/sdd

5 G

/dev/asmvote(vote 磁盘)

/dev/sde

10 G

/dev/asmlog0(redo 日志磁盘)

/dev/sdf

10 G

/dev/asmarch0(归档日志磁盘)

(2)cmd命令行创建共享磁盘(如果指定的共享磁盘的存放目录如果不存在需要提前创建)

在VMware安装目录下

.\vmware-vdiskmanager.exe -c -s 10g -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-data0.vmdk"

.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-dcr.vmdk"

.\vmware-vdiskmanager.exe -c -s 5g -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-vote.vmdk"

.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-log0.vmdk"

.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "P:\VMtools\dsc1\sharedisk\share-arch0.vmdk"

(3)编辑两台虚拟机的vmx文件(需要在关闭虚拟机的情况下进行)

在最后面添加:

#shared disks configure

diskLib.dataCacheMaxSize=0        

diskLib.dataCacheMaxReadAheadSize=0

diskLib.dataCacheMinReadAheadSize=0

diskLib.dataCachePageSize=4096    

diskLib.maxUnsyncedWrites = "0"

disk.locking = "FALSE"

scsi1.sharedBus = "virtual"

scsi1.present = "TRUE"

scsi1.virtualDev = "lsilogic"

scsi1:0.mode = "independent-persistent"

scsi1:0.deviceType = "disk"

scsi1:0.present = "TRUE"

scsi1:0.fileName = "P:\VMtools\dsc1\sharedisk\share-data0.vmdk"

scsi1:0.redo = ""

scsi1:1.mode = "independent-persistent"

scsi1:1.deviceType = "disk"

scsi1:1.present = "TRUE"

scsi1:1.fileName = "P:\VMtools\dsc1\sharedisk\share-dcr.vmdk"

scsi1:1.redo = ""

scsi1:2.mode = "independent-persistent"

scsi1:2.deviceType = "disk"

scsi1:2.present = "TRUE"

scsi1:2.fileName = "P:\VMtools\dsc1\sharedisk\share-vote.vmdk"

scsi1:2.redo = ""

scsi1:3.mode = "independent-persistent"

scsi1:3.deviceType = "disk"

scsi1:3.present = "TRUE"

scsi1:3.fileName = "P:\VMtools\dsc1\sharedisk\share-log0.vmdk"

scsi1:3.redo = ""

scsi1:4.mode = "independent-persistent"

scsi1:4.deviceType = "disk"

scsi1:4.present = "TRUE"

scsi1:4.fileName = "P:\VMtools\dsc1\sharedisk\share-arch0.vmdk"

scsi1:4.redo = ""

(4)我们可以查看虚拟机配置,已经新增了5块磁盘

二、DM数据库安装

安装DM数据库,每个节点都要安装,无需初始化实例

三、DSC集群部署

3.1磁盘准备

(1)通过scsi_id 获取磁盘信息

虚拟机1

虚拟机2

可以看出两台虚拟机上的磁盘一一对应

(2)创建磁盘链接

在两台机器上编写/etc/udev/rules.d/66-dmdevices.rules 配置信息,创建磁盘链接。

vi /etc/udev/rules.d/99-dm-asmdevices.rules 

添加以下内容

## DCR磁盘配置,且在软链接之前创建文件夹 /dev_DSC

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29df91b9169b65f5b9da848c4d3",SYMLINK+="DCR", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name;mkdir -p /dev_DSC; ln -s /dev/DCR /dev_DSC/DCR'"

## VOTE 磁盘配置

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c291f8f92e715034c312094b9273",SYMLINK+="VOTE", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/VOTE /dev_DSC/VOTE'"

## DMDATA 磁盘配置

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c96942ee1f19eaa8fb5f5d673",SYMLINK+="DMDATA", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMDATA /dev_DSC/DMDATA'"

## DMLOG 磁盘配置,且在搭建完成之后,将权限直接赋予 dmdba组的dmdba用户

KERNEL=="sd*",SUBSYSTEM=="block",PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c292b3e6bf977b7252f414bb6fdb",SYMLINK+="DMLOG", OWNER="dmdba", GROUP="dmdba", MODE="0660", RUN+="/bin/sh -c 'chown dmdba:dmdba /dev/$name; ln -s /dev/DMLOG /dev_DSC/DMLOG ; chown -R dmdba:dmdba /dev_DSC '"

之所以要软链接到独立目录,是因为 DMDSC 启动时会扫描目录下所有磁盘,如果目录中存在与当前 DMDSC 系统无关的磁盘,则 DMDSC 将启动失败。

(3)重启 systemd-udev-trigger 服务

systemctl restart systemd-udev-trigger

可以看出磁盘权限信息如下:

3.2配置 DCR 初始化配置文件(2个节点)

创建配置文件存放目录

使用dmdba用户,新建下面的文件夹,并在该文件夹下新建 dmdcr_cfg.ini 文件

mkdir -p /home/dmdba/config

vi /home/dmdba/config/dmdcr_cfg.ini

添加以下内容:

DCR_N_GRP             = 3

DCR_VTD_PATH          = /dev_DSC/VOTE

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.160.155

 DCR_EP_PORT          = 9836

[GRP_CSS]

 DCR_EP_NAME          = CSS1

 DCR_EP_HOST          = 192.168.160.156

 DCR_EP_PORT          = 9837 

[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      = 512 

 DCR_EP_HOST          = 192.168.160.155

 DCR_EP_PORT          = 5836

 DCR_EP_ASM_LOAD_PATH  = /dev_DSC

[GRP_ASM]

 DCR_EP_NAME          = ASM1

 DCR_EP_SHM_KEY       = 93361

 DCR_EP_SHM_SIZE      = 512 

 DCR_EP_HOST          = 192.168.160.156

 DCR_EP_PORT          = 5837

 DCR_EP_ASM_LOAD_PATH  = /dev_DSC

[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         = DSC01 

 DCR_EP_SEQNO        = 0

 DCR_EP_PORT         = 5236

[GRP_DSC]

 DCR_EP_NAME         = DSC02

 DCR_EP_SEQNO        = 1

 DCR_EP_PORT         = 5236

另一个节点同上

3.3初始化磁盘组 (1个节点)

在其中一个磁盘,使用dmdba用户,在bin目录下执行

./dmasmcmd

进入ASM后执行:

create dcrdisk '/dev_DSC/DCR' 'DCR'

create votedisk '/dev_DSC/VOTE' 'VOTE'

create asmdisk '/dev_DSC/DMDATA' 'DMDATA'

create asmdisk '/dev_DSC/DMLOG' 'DMLOG'

init dcrdisk '/dev_DSC/DCR' from '/home/dmdba/config/dmdcr_cfg.ini' identified by 'DCRpsd_123'

init votedisk '/dev_DSC/VOTE' from '/home/dmdba/config/dmdcr_cfg.ini'

3.4配置ASM的MAL系统配置文件(2个节点)

vi /home/dmdba/config/dmasvrmal.ini

添加以下内容:

[MAL_INST1]

MAL_INST_NAME= ASM0

MAL_HOST= 192.168.160.155 

MAL_PORT= 4836

[MAL_INST2]

MAL_INST_NAME= ASM1

MAL_HOST= 192.168.160.156 

MAL_PORT= 4837

3.5配置 DCR 启动配置文件(2个节点)

vi /home/dmdba/config/dmdcr.ini

节点一添加以下内容:

DMDCR_PATH = /dev_DSC/DCR

DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini

DMDCR_SEQNO = 0

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/config/DSC01_conf/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

节点二添加以下内容:

DMDCR_PATH = /dev_DSC/DCR

DMDCR_MAL_PATH = /home/dmdba/config/dmasvrmal.ini

DMDCR_SEQNO = 1

DMDCR_ASM_RESTART_INTERVAL = 0

DMDCR_ASM_STARTUP_CMD = /home/dmdba/dm/dmdbms/bin/dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini

DMDCR_DB_RESTART_INTERVAL = 0

DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdsc/bin/dmserver path=/home/dmdba/config/DSC01_conf/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini

3.6启动DMCSS、DMASM服务

(1)在 2 个节点bin目录下分别启动 dmcss 命令:

./dmcss DCR_INI=/home/dmdba/config/dmdcr.ini

节点一

节点二

(2)在 2 个节点bin目录下分别启动 dmasmsvr 命令:

./dmasmsvr DCR_INI=/home/dmdba/config/dmdcr.ini

节点一

节点二

3.7创建 ASM 磁盘组(1个节点)

asm 启动成功后,节点 1 使用 dmdba 用户在bin目录下启动 dmasmtool 工具

创建一个 DATA 磁盘组和一个 LOG 磁盘组

创建DATA磁盘组

CREATE DISKGROUP DMDATA asmdisk '/dev_DSC/DMDATA'

创建LOG磁盘组

CREATE DISKGROUP DMLOG asmdisk '/dev_DSC/DMLOG'

3.8初始化DSC集群数据库实例

(1)节点 1 使用 dmdba 用户执行以下命令:

vi /home/dmdba/config/dminit.ini

添加以下内容:

DB_NAME= dsc2

SYSTEM_PATH= +DMDATA/data

SYSTEM= +DMDATA/data/system.dbf

SYSTEM_SIZE= 128

ROLL= +DMDATA/data/roll.dbf

ROLL_SIZE= 128

MAIN= +DMDATA/data/main.dbf

MAIN_SIZE= 128

CTL_PATH= +DMDATA/data/dm.ctl

LOG_SIZE= 2048

DCR_PATH= /dev_DSC/DCR

DCR_SEQNO= 0

AUTO_OVERWRITE= 2

PAGE_SIZE = 16

EXTENT_SIZE = 16

SYSDBA_PWD=DMdba_123

SYSAUDITOR_PWD=DMauditor_123

[DSC01]

CONFIG_PATH= /home/dmdba/config/DSC01_conf

PORT_NUM = 5236

MAL_HOST= 192.168.160.155

MAL_PORT= 6536

LOG_PATH= +DMLOG/log/DSC01_log1.log

LOG_PATH= +DMLOG/log/DSC01_log2.log

[DSC02]

CONFIG_PATH= /home/dmdba/config/DSC02_conf

PORT_NUM = 5237

MAL_HOST= 192.168.160.156

MAL_PORT= 6537

LOG_PATH= +DMLOG/log/DSC02_log1.log

LOG_PATH= +DMLOG/log/DSC02_log2.log

(2)初始化实例

bin目录下执行

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

DMINIT 执行完成后,会在 config_path 目录下生成配置文件 DM.INI 和 DMMAL.INI

(3)将节点2的配置文件,从节点1复制到节点2对应目录

scp -r /home/dmdba/config/DSC02_conf dmdba@192.168.160.156:/home/dmdba/config/

3.9启动数据库服务器

分别在bin目录下启动两个节点的服务器

./dmserver dcr_ini=/home/dmdba/config/dmdcr.ini /home/dmdba/config/DSC01_conf/dm.ini

3.10配置并启动 DMCSSM 监视器

(1)创建DMCSSM 的日志存放路径

mkdir /home/dmdba/dm/cssmlog

(2)在任意节点上新建监视器配置文件,执行以下命令:

vi /home/dmdba/config/dmcssm.ini

添加以下内容

#和 dmdcr_cfg.ini 中的 DCR_OGUID 保持一致   

CSSM_OGUID = 63635   #配置所有 CSS 的连接信息,   

#和 dmdcr_cfg.ini 中 CSS 配置项的 DCR_EP_HOST 和 DCR_EP_PORT 保持一致   

CSSM_CSS_IP = 192.168.160.155:9836   

CSSM_CSS_IP = 192.168.160.155:9837   

CSSM_LOG_PATH = /home/dmdba/dm/cssmlog #监视器日志文件存放路径   

CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32 MB   

CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

(3)bin目录下启动监视器

./dmcssm /home/dmdba/config/dmcssm.ini

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/pingmian/90607.shtml
繁体地址,请注明出处:http://hk.pswp.cn/pingmian/90607.shtml
英文地址,请注明出处:http://en.pswp.cn/pingmian/90607.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

半导体 CIM(计算机集成制造)系统

半导体CIM(Computer Integrated Manufacturing,计算机集成制造)系统是半导体制造的“神经中枢”,通过整合硬件设备、软件系统和数据流转,实现从订单到成品的全流程自动化、信息化和智能化管理。其工作流程高度贴合半导…

AI是否会终结IT职业?深度剖析IT行业的“涌现”与重构

引言:一场不可回避的技术审判在ChatGPT、Copilot、Claude、Sora 等AI技术密集爆发的今天,IT行业首当其冲地感受到这股浪潮带来的“智力替代压力”。尤其是以开发、测试、运维、分析为主的岗位,逐渐被AI所“渗透”。于是,问题摆在每…

mid360连接机载电脑,远程桌面连接不上的情况

为什么会出现这种情况呢,一开始我以为是雷达使用的网线,使用的是和网络同样的口,是因为机载电脑带宽不足,所以导致的,但是后面发现不管是哪一个机载电脑都会断开连接,后面了解得知,并不是连接的…

目标检测系列(六)labelstudio实现自动化标注

一、启用图片文件服务用Nginx启用图片服务,配置好映射路径。新建图片文件夹,将文件夹下的图片路径存储到txt文件中访问地址(文件夹):http://112.12.19.122:8081/urls/ml-backend-test/进入labelstudio将txt文件路径填入…

从零开始大模型之编码注意力机制

从零开始大模型之编码注意力机制1 长序列建模中的问题2 使用注意力机制捕捉数据依赖关系3 自注意力机制4 实现带可训练权重的自注意力机制5 利用因果注意力隐藏未来词汇6 将单头注意力扩展到多头注意力7 Pytorch附录7.1 torch.nn.Linear多头掩码可训练权重的注意力机制。为什么…

小架构step系列26:Spring提供的validator

1 概述对于Web服务,需要对请求的参数进行校验,可以对不合法的参数进行提示,提高用户体验。也可以防止有人恶意用一些非法的参数对网站造成破坏。如果是对每个参数都写一段代码来判断值是否合法,那校验的代码就很多,也很…

0编程基础:用TRAE写出了会蹦跳躲避散发炫光的贪吃蛇小游戏

在某个深夜的代码深渊里,一个从未写过print("Hello World")的小白开发者,竟用自然语言指令让贪吃蛇跳起了"光棱华尔兹"——蛇身折射出彩虹轨迹,食物像星舰般自动规避追击,甚至实现了四头蛇的"量子纠缠式…

在Word和WPS文字中要同时查看和编辑一个文档的两个地方?拆分窗口

如果要在Word或WPS文字的长文档中同时查看两部同步的地方(文档位置),来回跳转和滚动费时费力,使用拆分窗口的功能即可搞定。将窗口一分为二,上下对照非常方便。一、拆分窗口的路径Word和WPS基本一样,就是菜…

Windows系统下安装mujoco环境的教程【原创】

在学习Mujoco仿真的过程中,我先前是在linux系统下进行的研究与学习,今天来试试看在windows系统中安装mujoco仿真环境。 先前在linux中的一些关于mujoco学习记录的博客:Mujoco仿真【xml文件的学习 3】_mujoco打开xml文件-CSDN博客 下面开始wi…

CSS中篇

#Flex布局#1、什么是flex布局?flex 布局,全称弹性布局(Flexible Box Layout),是 CSS3 中引入的一种新的布局模式。它主要通过给容器设置相关属性,来控制容器内部子元素的排列方式。相比传统的浮动布局和定位…

《云计算蓝皮书 2025 》发布:云计算加速成为智能时代核心引擎

近日,中国信息通信研究院发布了《云计算蓝皮书(2025 年)》,全面剖析了云计算领域的发展现状与未来趋势。在人工智能蓬勃发展的当下,云计算正从基础资源供给向智能时代的核心引擎加速转变,成为重塑全球数字竞…

excel删除重复项场景

问题描述 问题描述:因为表格中存在多条相同的数据,我现在excel有一列,值为#N/A 。另外有列叫做药品名称、规格、厂家 我要删除值为 #N/A,并且 药品名称、规格、厂家相等的数据,那条相同的删掉,只保留一条,…

Vue 3 与 Element Plus 中的 /deep/ 选择器问题

Vue 3 与 Element Plus 中的 /deep/ 选择器问题 在 Vue3 中使用 Element Plus 组件时,使用 ::v-deep或 :deep()的场景取决于 ​​样式作用域​​ 和 ​​选择器目标​​。以下是关键区别:

2025暑期—06神经网络-常见网络

六个滤波核提取特征Maps5X5 卷积核,1个阈值 6个元素,卷积后两边各少两个,28*28像素 又有6个卷积核,所以有122304个连接,连接数不多是因为很多都是公用参数的。池化是参数池化,和当前平均最大不一样。编程14…

硅基计划3.0 学习总结 叁 栈和队列

文章目录一、栈1. 模拟实现栈2. 小试牛刀1. 判断一个栈的出栈顺序是否为题目给定情况2. 括号匹配3. 逆波兰表达式求值4. 求最小栈元素3. 单链表实现栈二、队列1. 官方队列类Queue2. 双向链表模拟实现Queue类3. 顺序表模拟实现Queue类4. 双端队列5. 队列实现栈6. 栈实现队列一、…

飞行控制领军者 | 边界智控携高安全级飞控系统亮相2025深圳eVTOL展

2025深圳eVTOL展将于2025年9月23日至25日在深圳坪山燕子湖国际会展中心盛大举办。本届展会以 “低空经济・eVTOL・航空应急救援・商载大型无人运输机” 为核心,预计将汇聚200余位发言嘉宾、500 余家顶尖展商及15,000余名专业观众,规模盛大,精…

React状态管理——Dva

目录 一、安装依赖 二、Dva注册model方式 2.1 自动注册models 2.2 手动注册model方式 三、创建 dva 实例 四、创建 model 五、在组件中使用 六、动态加载Dva Model Dva 是一个基于 redux 和 redux-saga 的轻量级前端框架,可以方便地在 React 应用中管理状态…

编程与数学 03-002 计算机网络 05_以太网技术

编程与数学 03-002 计算机网络 05_以太网技术一、以太网的基本原理(一)CSMA/CD协议的工作原理(二)以太网的帧结构二、以太网的拓扑结构与设备(一)传统以太网的拓扑结构(二)交换机的工…

解决英文版Windows10安装WireShark报错

问题点击WireShark安装包进行安装时报错原因编码方式故障解决方式修改操作系统编码1.WinR,输入Control,打开控制面板2.点击Small icons3.点击Region4.设置编码UTF-8

利用aruco标定板标定相机

1、生成aruco标定板#include <opencv2/opencv.hpp> #include <opencv2/aruco.hpp> #include <opencv2/objdetect/aruco_detector.hpp> #include <iostream> #include <string>using namespace cv; using namespace std;int main() {int markers…