本次任务为使用uuid绑定磁盘后安装数据库
找到对应安装在vmware目录下的vmware-vdiskmanager.exe
使用命令行打开(可用cmd,本文使用powershell)
cd 'C:\Program Files (x86)\VMware\VMware Workstation'
ls vmware-vdiskmanager.exe
有以下输出证明路径正确
本次规划的目标
磁盘名称 | 空间大小 |
---|---|
DCR | 100MB |
VOTE | 200MB |
REDO | 1GB |
DATA | 10GB |
ARCHIVE | 5GB |
存放目标目录为D:\vmware\share_disk
.\vmware-vdiskmanager.exe -c -s 100MB -a lsilogic -t 2 "D:\vmware\share_disk\DCR.vmdk"
.\vmware-vdiskmanager.exe -c -s 200MB -a lsilogic -t 2 "D:\vmware\share_disk\VOTE.vmdk"
.\vmware-vdiskmanager.exe -c -s 2GB -a lsilogic -t 2 "D:\vmware\share_disk\REDO.vmdk"
.\vmware-vdiskmanager.exe -c -s 10GB -a lsilogic -t 2 "D:\vmware\share_disk\DATA.vmdk"
.\vmware-vdiskmanager.exe -c -s 5GB -a lsilogic -t 2 "D:\vmware\share_disk\ARCHIVE.vmdk"
回到目录,磁盘已经创建完成
重复操作4次
添加5个磁盘到虚拟机1中(由于篇幅问题,步骤已经省略,步骤可以在过去的博文中找到)
在虚拟机1的文件夹中找到.vmx加入
disk.locking=false
disk.EnableUUID = "TRUE"
#如果想要使用uuid,可以加入EnableUUID
添加5个磁盘到虚拟机2中(由于篇幅问题,步骤已经省略,步骤可以在过去的博文中找到)
进入第二台虚拟机中,在虚拟机2的文件夹中找到.vmx加入设置所有的bus 共享
disk.locking=false
disk.EnableUUID = "TRUE"
#如果想要使用uuid,可以加入EnableUUID
虚拟机1和虚拟机2同样的磁盘需要在虚拟机中设定好对应的SCSI(添加磁盘的顺序不能错)
启动虚拟机即可查看到共享磁盘组
虚拟机1
在虚拟机中如果发现新增磁盘之后fdisk -l 不显示
则进入root输入
(虚拟机有三根总线)
[root@localhost dmdba]# echo "- - -" > /sys/class/scsi_host/host0/scan
[root@localhost dmdba]# echo "- - -" > /sys/class/scsi_host/host1/scan
[root@localhost dmdba]# echo "- - -" > /sys/class/scsi_host/host2/scan
查询对应的uuid是否一致
#使用SCSI绑定检测uuid是否一致
for i in b c d e f g;
do
/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/sd$i
done
如果使用的是nvme硬盘
for i in b c d e f g;
do
ls -la /dev/disk/by-id|grep nvme
之后搭建dsc集群
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29c410a60e54ae604a731e06cc9", SYMLINK+="dmdcr",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29e912d081ee6282add0327fff7", SYMLINK+="dmvote",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c2902354c5b2f6ebcdfe4d2a5df4", SYMLINK+="asm-d",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c298c722c8de0493319f9773fb91", SYMLINK+="dmdata",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c295920294d45bf9f8505767866a", SYMLINK+="dmarchive",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c29cd90c725f9731eaff1a18ae24", SYMLINK+="asm-diskg",OWNER="dmdba", GROUP="dinstall",MODE="0660"
KERNEL=="sd?",SUBSYSTEM=="block", PROGRAM=="/usr/lib/udev/scsi_id --whitelisted --replace-whitespace --device=/dev/$name",RESULT=="36000c296a2b878077c8972d18c2de926", SYMLINK+="dmredo",OWNER="dmdba", GROUP="dinstall",MODE="0660"
udevadm trigger --action=add
DCR_N_GRP = 3
DCR_VTD_PATH = /dev/dmvote
DCR_OGUID = 210331
[GRP]
DCR_GRP_TYPE = CSS
DCR_GRP_NAME = GRP_CSS
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 65
[GRP_CSS]
DCR_EP_NAME = CSS0
DCR_EP_HOST = 192.168.48.20
DCR_EP_PORT = 31286
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.48.21
DCR_EP_PORT = 31286
[GRP]
DCR_GRP_TYPE = ASM
DCR_GRP_NAME = GRP_ASM
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 61
[GRP_ASM]
DCR_EP_NAME = ASM0
DCR_EP_SHM_KEY = 42424
DCR_EP_SHM_SIZE = 200
DCR_EP_HOST = 192.168.48.20
DCR_EP_PORT = 31276
DCR_EP_ASM_LOAD_PATH = /dev
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 42425
DCR_EP_SHM_SIZE = 200
DCR_EP_HOST = 192.168.48.21
DCR_EP_PORT = 31277
DCR_EP_ASM_LOAD_PATH = /dev
[GRP]
DCR_GRP_TYPE = DB
DCR_GRP_NAME = GRP_DSC
DCR_GRP_N_EP = 2
DCR_GRP_DSKCHK_CNT = 57
[GRP_DSC]
DCR_EP_NAME = DSC_DSC0
DCR_EP_SEQNO = 0
DCR_EP_PORT = 5236
create dcrdisk '/dev/dmdcr' 'dcr'
create votedisk '/dev/dmvote' 'vote'
create asmdisk '/dev/dmarchive' 'LOG0'
create asmdisk '/dev/dmdata' 'DATA0'
init dcrdisk '/dev/dmdcr' from '/dm/data/dsc/dmdcr_cfg.ini' identified by 'abcd'
init votedisk '/dev/dmvote' from '/dm/data/dsc/dmdcr_cfg.ini'
[MAL_INST0]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.48.20
MAL_PORT = 31266
[MAL_INST1]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.48.21
MAL_PORT = 31266
DMDCR_PATH = /dev/dmdcr
DMDCR_MAL_PATH = /dm/dsc_config/DSC_DSC0/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 71
DMDCR_ASM_STARTUP_CMD = /dm/dsc_config/DmAsmServiceDSC_DSC0 start
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dsc_config/DmServiceDSC_DSC0 start
DMDCR_AUTO_OPEN_CHECK = 111
DMDCR_PATH = /dev/dmdcr
DMDCR_MAL_PATH = /dm/dsc_config/DSC_DSC1/dmasvrmal.ini
DMDCR_SEQNO = 0
DMDCR_ASM_RESTART_INTERVAL = 71
DMDCR_ASM_STARTUP_CMD = /dm/dsc_config/DmAsmServiceDSC_DSC1 start
DMDCR_DB_RESTART_INTERVAL = 0
DMDCR_DB_STARTUP_CMD = /dm/dsc_config/DmServiceDSC_DSC1 start
DMDCR_AUTO_OPEN_CHECK = 111
./dmcss DCR_INI=/dm/data/dsc/dmdcr.ini #dmcss
./dmasmsvr DCR_INI=/dm/data/dsc/dmdcr.ini #dmasmsvr
单独启动dmcss只有如下输出
只启动DSC0dmcss与dmasmsvr会只有以下输出
两集群真正启动之后就会有如下效果
Dsc0节点启动dmasmtool创建共享磁盘
./dmasmtool DCR_INI=/dm/data/dsc/dmdcr.ini
create diskgroup 'DMLOG' asmdisk '/dev/dmarchive' #创建磁盘日志组
create diskgroup 'DMDATA' asmdisk '/dev/dmdata' #创建数据磁盘组
DB_NAME = DSC_DSC
SYSDBA_PWD = SYSDBA_PWD
SYSTEM_PATH = +DMDATA/data
SYSTEM = +DMDATA/data/SYSTEM.dbf
SYSTEM_SIZE = 1024
ROLL = +DMDATA/data/ROLL.dbf
ROLL_SIZE = 1024
MAIN = +DMDATA/data/MAIN.dbf
MAIN_SIZE = 1024
CTL_PATH = +DMDATA/data/dm.ctl
CTL_SIZE = 8
LOG_SIZE = 256
DCR_PATH = /dev/dmdcr
DCR_SEQNO = 0
AUTO_OVERWRITE = 1
PAGE_SIZE = 16
EXTENT_SIZE = 16
CASE_SENSITIVE = 1
UNICODE_FLAG = 0
[DSC_DSC0]
CONFIG_PATH = /dm/dsc_config/DSC_DSC0
PORT_NUM = 5236
MAL_HOST = 192.168.48.20
MAL_PORT = 31246
LOG_PATH = +DMLOG/DSC_DSC0_LOG01.log
LOG_PATH = +DMLOG/DSC_DSC0_LOG02.log
[DSC_DSC1]
CONFIG_PATH = /dm/dsc_config/DSC_DSC1
PORT_NUM = 5236
MAL_HOST = 192.168.48.21
MAL_PORT = 31246
LOG_PATH = +DMLOG/DSC_DSC1_LOG01.log
LOG_PATH = +DMLOG/DSC_DSC1_LOG02.log
./dminit control=/dm/data/dsc/dminit.ini
./dmserver /dm/data/dsc0_config/dm.ini dcr_ini=/dm/data/dsc/dmdcr.ini #dsc0
./dmserver /dm/data/dsc1_config/dm.ini dcr_ini=/dm/data/dsc/dmdcr.ini`#dsc1
CSSM_OGUID = 210331
CSSM_CSS_IP = 192.168.48.20:31286
CSSM_CSS_IP = 192.168.48.21:31286
CSSM_LOG_PATH = /dm/log
CSSM_LOG_FILE_SIZE = 16
CSSM_LOG_SPACE_LIMIT = 512
./dmcssm INI_PATH=/dm/data/dmcssm.ini
输入show命令即可看到当前状态
文章浏览阅读6.2k次,点赞6次,收藏26次。我是一个深度学习代码小白,请你用中文写上注释,能让我能轻松理解下面这段代码。注意包含所有函数、调用和参数的注释。以同样的python代码块样式返回你写的代码给我。代码看累了,就看《动手学深度学习》文档:基于PyTorch框架,从底层函数实现基础功能,再到框架的高级功能。努力上路的小白一枚,麻烦路过的大佬指导一二,同时希望能和大家交流学习~争取更新学习这个文档的专栏,记录学习过程。量身定做了一套话术hhh,亲身测试还不错。这个感觉更浅一点儿,之后复习看吧。20天吃掉那只Pytorch。_深度学习程序怎么读
文章浏览阅读2.7w次,点赞126次,收藏1.2k次。耗废1024根秀发,Java学习路线图来了,整合了自己所学的所有技术整理出来的2022最新版Java学习路线图,适合于初、中级别的Java程序员。_java学习路线
文章浏览阅读4.4k次。1.7-savingPNG介绍代码详情函数详解savePNGFile()源码savePNGFile()源码提示savePNGFile()推荐用法处理结果代码链接介绍PCL提供了将点云的值保存到PNG图像文件的可能性。这只能用有有序的云来完成,因为结果图像的行和列将与云中的行和列完全对应。例如,如果您从类似Kinect或Xtion的传感器中获取了点云,则可以使用它来检索与该云匹配的640x480 RGB图像。代码详情#include <pcl / io / pcd_io.h>#incl_pcl::io:savepng
文章浏览阅读936次。吸引妹子的关键点不在于喝什么咖啡,主要在于竖立哪种男性人设。能把人设在几分钟内快速固定下来,也就不愁吸引对口的妹子了。我有几个备选方案,仅供参考。1. 运动型男生左手单手俯卧撑,右手在键盘上敲代码。你雄壮的腰腹肌肉群活灵活现,简直就是移动的春药。2.幽默男生花 20 块找一个托(最好是老同学 or 同事)坐你对面。每当你侃侃而谈,他便满面涨红、放声大笑、不能自已。他笑的越弱_咖啡厅写代码
文章浏览阅读1.2w次,点赞5次,收藏5次。今天 (应该是昨天了,昨晚太晚了没发出去)下午参加了腾讯WXG的面委会面试。前面在牛客上搜索了面委会相关的面经普遍反映面委会较难,因为都是微信的核心大佬,问的问题也会比较深。昨晚还蛮紧张的,晚上都没睡好。面试使用的是腾讯会议,时间到了面试官准时进入会议。照例是简单的自我介绍,然后是几个常见的基础问题:例如数据库索引,什么时候索引会失效、设计模式等。这部分比较普通,问的也不是很多,不再赘述。现在回想下,大部分还是简历上写的技能点。接下来面试官让打开项目的代码,对着代码讲解思路。我笔记本上没有这部分代码,所_腾讯面委会面试是什么
文章浏览阅读382次,点赞3次,收藏4次。AI绘画自动生成器是一种利用人工智能技术,特别是深度学习算法,来自动创建视觉艺术作品的软件工具。这些工具通常基于神经网络模型,如生成对抗网络(GANs),通过学习大量的图像数据来生成新的图像。AI绘画自动生成器作为艺术与科技结合的产物,正在开启艺术创作的新篇章。它们不仅为艺术家和设计师提供了新的工具,也为普通用户提供了探索艺术的机会。随着技术的不断进步,我们可以预见,AI绘画自动生成器将在未来的创意产业中发挥越来越重要的作用。
文章浏览阅读1.7k次。理解为ListView 的三种形式吧ListView 默认构造但是这种方式创建的列表存在一个问题:对于那些长列表或者需要较昂贵渲染开销的子组件,即使还没有出现在屏幕中但仍然会被ListView所创建,这将是一项较大的开销,使用不当可能引起性能问题甚至卡顿直接返回的是每一行的Widget,相当于ios的row。行高按Widget(cell)高设置ListView.build 就和io..._flutter listview.separated和listview.builder
文章浏览阅读1.4k次,点赞4次,收藏14次。废话不多说直接上干货1.js运行机制JavaScript单线程,任务需要排队执行同步任务进入主线程排队,异步任务进入事件队列排队等待被推入主线程执行定时器的延迟时间为0并不是立刻执行,只是代表相比于其他定时器更早的被执行以宏任务和微任务进一步理解js执行机制整段代码作为宏任务开始执行,执行过程中宏任务和微任务进入相应的队列中整段代码执行结束,看微任务队列中是否有任务等待执行,如果有则执行所有的微任务,直到微任务队列中的任务执行完毕,如果没有则继续执行新的宏任务执行新的宏任务,凡是在..._前端面试
文章浏览阅读1k次。(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。(3)若没有查到,则将请求发给根域DNS服务器,并依序从根域查找顶级域,由顶级查找二级域,二级域查找三级,直至找到要解析的地址或名字,即向客户机所在网络的DNS服务器发出应答信息,DNS服务器收到应答后现在缓存中存储,然后,将解析结果发给客户机。_linux
文章浏览阅读7.9k次,点赞26次,收藏66次。HTML DOM——文档元素的操作1、通过id获取文档元素任务描述相关知识什么是DOM文档元素节点树通过id获取文档元素代码文件2、通过类名获取文档元素任务描述相关知识通过类名获取文档元素代码文件3、通过标签名获取文档元素任务描述相关知识通过标签名获取文档元素获取标签内部的子元素代码文件4、html5中获取元素的方法一任务描述相关知识css选择器querySelector的用法代码文件5、html5中获取元素的方法二任务描述相关知识querySelectorAll的用法代码文件6、节点树上的操作任务描述相关_javascript学习手册十三:html dom——文档元素的操作(一)
文章浏览阅读132次。《LeetCode学习》172. 阶乘后的零(java篇)_java 给定一个整数n,返回n!结果尾数中零的数量
文章浏览阅读426次。请注意,本文将要给大家分享的并不是开启公众号的安全操作风险提醒,而是当公众号粉丝给公众号发消息的时候,公众号的管理员和运营者如何能在手机上立即收到消息通知,以及在手机上回复粉丝消息。第一步:授权1、在微信中点击右上角+,然后选择“添加朋友”,然后选择“公众号”,然后输入“微小助”并关注该公众号。2、进入微小助公众号,然后点击底部菜单【新增授权】,如下图所示:3、然后会打开一个温馨提示页面。请一定要..._php微信公众号服务提示