2021-01-25

DM8DSC安装部署

一、 系统环境
测试机器为虚拟机A和虚拟机B:
主机规划:

节点名称IP Addr数据版本
RedHat dsc01(dmasm)192.168.175.135(内外网)dm8_20201103_x86_rh6_64_sec_8.1.1.144
RedHat dsc02(dmasm)192.168.175.136(内外网)dm8_20201103_x86_rh6_64_sec_8.1.1.144
监视器192.168.175.135(内外网)dm8_20201103_x86_rh6_64_sec_8.1.1.144

数据库相关文件路径:

配置路径
安装路径/home/dmdba/dmdbms
配置文件路径/home/data
实例初始化后配置文件路径节点1:/home/data/dsc0_config 、节点2:/ home /data/dsc1_config

存储规划:

ASM磁盘名大小用途
DCR100M存放DCR配置信息
VOTE100M存放表决文件
LOG02G存放在线日志文件
DATA017.8G存放数据文件

二、 搭建 2 节点 DMDSC(DMASM)
(1)虚拟机新增永久磁盘
虚拟机A:点击编辑虚拟机设置,点击添加,选择硬盘点击下一步;选择SCSI(S)的磁盘类型,创建新虚拟磁盘,选择20G的大小,点击立即分配所有磁盘空间和将虚拟磁盘存储为单个存储文件;选择文件路径和名称为D:\program\redhat-dsc1\Red Hat dsc-share.vmdk ,点击完成;点击编辑虚拟机设置,选择新增的磁盘,点击高级,更改新增的磁盘模式为独立+永久,点击确定,完成虚拟机A的新增磁盘操作。
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
完成虚拟机A的磁盘添加,如图:
在这里插入图片描述

虚拟机B:打开虚拟机B的位置目录,找到VMX后缀文件,用记事本方式打开此文件,添加以下几行信息保存文件,在文件的后面加入下面的几行。
disk.locking=“FALSE”
scsi1:0.SharedBus=“Virtual”
scsi1:1.SharedBus=“Virtual”
scsi2:0.SharedBus=“Virtual”
scsi2:1.SharedBus=“Virtual”
以上的设置表示所有的BUS都共享。进入虚拟机软件,配置虚拟机B的硬盘。前几步和虚拟机A的配置方法一致,唯一不同的是在选择磁盘的时候要选择使用现有虚拟磁盘,选择文件路径和名称为虚拟机A的路径D:\program\redhat-dsc1\Red Hat dsc-share.vmdk ,击完成;点击编辑虚拟机设置,选择新增的磁盘,点击高级,更改新增的磁盘模式为独立+永久,点击确定,完成虚拟机B的新增磁盘操作。
在这里插入图片描述

完成虚拟机B的磁盘添加,如图:
在这里插入图片描述

(2)划分裸设备

  1. 打开虚拟机,root用户登录,输入 fdisk /dev/sdb

  2. 依次输入 n -> p -> 1 -> 回车 -> +100M -> 回车,完成第一块磁盘划分

  3. 依次输入 n -> p -> 2 -> 回车 -> +100M -> 回车,完成第二块磁盘划分

  4. 依次输入 n -> p -> 3 -> 回车 -> +2048M -> 回车,完成第三块磁盘划分

  5. 依次输入 n -> p -> 4 -> 回车 -> 回车 -> 回车,完成第四块磁盘划分,最后输入w保存退出即可
    如图:
    在这里插入图片描述

  6. 辑 /etc/udev/rules.d/60-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"
    ACTION==“add”, KERNEL==“raw[1-4]”, OWNER=“root”, GROUP=“root”, MODE=“660”
    如图:

在这里插入图片描述

  1. 最后在两节点执行以下两条命令,完成裸设备绑定可以通过 raw -qa和blockdev --getsize64 /dev/raw/raw1、2、3、4 命令查看裸设备大小和是否绑定成功,进行检查两边是否同步,输出内容一致。
    dsc1:
    partprobe /dev/sdb
    start_udev
    dsc2:
    partprobe /dev/sdb
    start_udev

(3)安装DM8
在两个节点分别创建dmdba用户和dinstall用户组,两节点均需安装数据库软件,但不进行实例初始化操作:
groupadd dinstall
useradd -g dinstall -m -d /home/dmdba -s /bin/bash dmdba
passwd dmdba
两节点均需进行数据库安装,安装过程参考DM8安装手册;安装后切换root用户在/home创建目录并赋权:
cd /home/
mkdir data
chown -R dmdba:dinstall data/

(4)配置dmdcr_cfg.ini 配置文件
dmdcr_cfg.ini 是格式化 DCR 和 Voting Disk 的配置文件。配置信息包括三类:集群环境全局信息、集群组信息、以及组内节点信息。使用 dmasmcmd 工具初始化共享磁盘时,可以根据 dmdcr_cfg.ini 配置文件,格式化 DCR 和 Voting Disk。
使用dmdba用户在主节点创建dmdcr_cfg.ini文件,文件路径:/home/data/,添加文件内容如下:
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.175.135
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.175.136
DCR_EP_PORT = 9343
[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 = 20
DCR_EP_HOST = 192.168.175.135
DCR_EP_PORT = 9349
DCR_EP_ASM_LOAD_PATH = /dev/raw
[GRP_ASM]
DCR_EP_NAME = ASM1
DCR_EP_SHM_KEY = 93361
DCR_EP_SHM_SIZE = 20
DCR_EP_HOST = 192.168.175.136
DCR_EP_PORT = 9351
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 = 9741
[GRP_DSC]
DCR_EP_NAME = DSC1
DCR_EP_SEQNO = 1
DCR_EP_PORT = 5236
DCR_CHECK_PORT = 9742

注: 准备配置文件dmdcr_cfg.ini,保存在 /home/data/ 下,只需要在dsc1 主节点上配置,后续DMASMCMD工具执行 init 语句会使用到。需要根据实际环境修改IP配置为rac节点的IP,不同节点服务器间对应的DCR_EP_PORT端口可以相同,但是两个服务器配的ASM的DCR_EP_SHM_KEY不能相同。

(5)使用DMASMCMD工具进行初始化
只在一台机器上执行即可,此处dmdcr_cfg.ini配置文件在主节点dsc1上,所以执行初始化,在主节点完成即可。进行初始化之前对dmdba用户进行授权,不进行授权,执行初始化操作只能用 root用户进行,此操作后,使用dmdba用户进行初始化即可。
授权需要登录root用户,执行以下命令:
chown -R dmdba:dinstall /dev/raw
chown -R dmdba:dinstall /dev/sdb1
chown -R dmdba:dinstall /dev/sdb2
chown -R dmdba:dinstall /dev/sdb3
chown -R dmdba:dinstall /dev/sdb4

执行之后用命令查看赋权情况:
ll /dev/raw
ll /dev/sdb1
ll /dev/sdb2
ll /dev/sdb3
ll /dev/sdb4

这里只在dsc1节点上执行,使用dmdba用户
cd /home/dmdba/dmdbms/bin
./dmasmcmd
注:进入dmasmcmd工具后,将以下语句,一条一条执行,在不进行上一步授权操作,使用dmdba用户初始化会报错,权限不足,也可以使用root用户,后续将权限授给 dmdba用户dinstall组,命令:
create dcrdisk ‘/dev/raw/raw1’ ‘dcr’
create votedisk ‘/dev/raw/raw2’ ‘vote’
create asmdisk ‘/dev/raw/raw3’ ‘LOG0’
create asmdisk ‘/dev/raw/raw4’ ‘DATA0’
init dcrdisk ‘/dev/raw/raw1’ from '/home/data/dmdcr_cfg.ini’identified by ‘abcd’
init votedisk ‘/dev/raw/raw2’ from ‘/home/data/dmdcr_cfg.ini’

如图:
在这里插入图片描述

(6)配置dmasvrmal.ini文件
使用dmdba用户,所有节点dmasvrmal.ini配置必须文件保持一致,在配置好主节点后采用scp的方式拷贝至节点2
cd /home/data/
vi dmasvrmal.ini
内容如下:
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.175.135
MAL_PORT = 7236

[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.175.136
MAL_PORT = 7237
如图:
在这里插入图片描述

scp拷贝命令:scp ./dmasvrmal.ini dmdba@192.168.175.136:/home/data

(7)配置dmdcr.ini文件
准备 dmdcr.ini 配置文件,保存到/home/data 目录下面;DMASM 的两个节点分别配置 dmdcr.ini,dmdcr_path 相同,dmasvrmal.ini 文件内容也相同,dmdcr_seqo 分别为 0 和 1。
节点1 192.168.175.135:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 0
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 10
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver path=/home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini
如图:
在这里插入图片描述

节点2 192.168.175.136:
DMDCR_PATH = /dev/raw/raw1
DMDCR_MAL_PATH =/home/data/dmasvrmal.ini #dmasmsvr 使用的 MAL 配置文件路径
DMDCR_SEQNO = 1
#ASM 重启参数,命令行方式启动
DMDCR_ASM_RESTART_INTERVAL = 10
DMDCR_ASM_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmasmsvr dcr_ini=/home/data/dmdcr.ini
#DB 重启参数,命令行方式启动
DMDCR_DB_RESTART_INTERVAL = 10
DMDCR_DB_STARTUP_CMD = /home/dmdba/dmdbms/bin/dmserver
path=/home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
如图:
在这里插入图片描述

(8)启动 DMCSS服务程序
在 192.168.175.135、192.168.175.136 节点先后分别启动 dmcss、dmasmsvr 程序。
主节点192.168.175.135手动启动 dmcss 命令:
cd /home/dmdba/dmdbms/bin
./dmcss DCR_INI=/home/data/dmdcr.ini
在这里插入图片描述

节点192.168.175.136手动启动 dmcss命令:
cd /home/dmdba/dmdbms/bin
./dmasmsvr DCR_INI=/home/data/dmdcr.ini
在这里插入图片描述

(9)启动DMASM 服务程序
主节点192.168.175.135手动启动 dmasmsvr命令:
cd /home/dmdba/dmdbms/bin
./dmasmsvr dcr_ini=/home/data/dmdcr.ini
在这里插入图片描述

节点192.168.175.136手动启动 dmasmsvr 命令:
cd /home/dmdba/dmdbms/bin
./dmasmsvr dcr_ini=/home/data/dmdcr.ini
在这里插入图片描述

(10)使用 dmasmtool 工具创建 DMASM 磁盘组
选择一个节点(192.168.175.135),启动 dmasmtool 工具。
cd /home/dmdba/dmdbms/bin
./dmasmtool DCR_INI=/home/data/dmdcr.ini

输入下列语句创建 DMASM 磁盘组:
#创建日志磁盘组
create diskgroup ‘DMLOG’ asmdisk ‘/dev/raw/raw3’
#创建数据磁盘组
create diskgroup ‘DMDATA’ asmdisk ‘/dev/raw/raw4’

如图:
在这里插入图片描述

(11)使用 dminit 初始化 DB 环境
选择一个节点(192.168.175.135),创建 dminit.ini 配置文件,保存到/home/data 目录,文件内容为下:
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 = 256
dcr_path = /dev/raw/raw1 #dcr 磁盘路径,目前不支持 asm,只能是裸设备
dcr_seqno = 0
auto_overwrite = 1
[DSC0] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc0_config
port_num = 5236
mal_host = 192.168.175.135
mal_port = 9340
log_path = +DMLOG/log/dsc0_log01.log
log_path = +DMLOG/log/dsc0_log02.log
[DSC1] #inst_name 跟 dmdcr_cfg.ini 中 DB 类型 group 中 DCR_EP_NAME 对应
config_path = /home/data/dsc1_config
port_num = 5237
mal_host = 192.168.175.136
mal_port = 9341
log_path = +DMLOG/log/dsc1_log01.log
log_path = +DMLOG/log/dsc1_log02.log

启动 dminit 工具初始化数据库。dminit 执行完成
后,会在 config_path 目录(/home/data/dsc0_confi和 /home/data/dsc1_config)下生成配置文件 dm.ini 和 dmmal.ini,执行命令:
cd /home/dmdba/dmdbms/bin
./dminit control=/home/data/dminit.ini

如图:
在这里插入图片描述

(12)启动数据库服务器
将 192.168.175.135 机器/home/data/dsc1_config 目录拷贝到 192.168.175.136 机器相同目录下,再分别启动 dmserver 即可完成 DMDSC 集群搭建。如果 DMCSS 配置有自动拉起 dmserver 的功能,可以等待 DMCSS 自动拉起实例,不需要手动启动。如果需要手动启动,可参考下面的操作步骤:
192.168.175.135 机器:
./dmserver /home/data/dsc0_config/dm.ini dcr_ini=/home/data/dmdcr.ini
在这里插入图片描述

192.168.175.136 机器:
./dmserver /home/data/dsc1_config/dm.ini dcr_ini=/home/data/dmdcr.ini
在这里插入图片描述

至此,DMDSC集群部署完毕,可以使用dmdba用户启动disql查看视图v$dsc_ep_info来查看集群信息,两节点均可以执行:
cd /home/dmdba/dmdbms/bin
./disql 执行下面sql,查看集群信息:
select * from v$dsc_ep_info;
在这里插入图片描述

(13)配置并启动监视器
选择一个节点第三方服务器创建dmcssm.ini文件;进入192.168.175.135节点的/home/data目录,创建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.175.135:9341
CSSM_CSS_IP = 192.168.175.136:9343
CSSM_LOG_PATH =/home/data/log #监视器日志文件存放路径
CSSM_LOG_FILE_SIZE = 32 #每个日志文件最大 32M
CSSM_LOG_SPACE_LIMIT = 0 #不限定日志文件总占用空间

如图:
在这里插入图片描述

启动监视器,命令:
cd /home/dmdba/dmdbms/bin
./dmcssm INI_PATH=/home/data/dmcssm.ini

进入监视器,使用show命令查看集群状态,如图:
在这里插入图片描述

(14)配置故障自动重连
每个节点都需要配置,使用root用户进入/etc 目录,配置文件为dm_svc.conf,内容如下:
TIME_ZONE=(480)
LANGUAGE=(cn)
dmdsc_svc=(192.168.175.135:5236,192.168.175.136:5237)
SWITCH_TIME=(10000)
SWITCH_INTERVAL=(1000)

如图:
在这里插入图片描述

(15)注册服务,配置自动拉起服务
使用root用户,对每个节点进行配置,脚本dm_service_installer.sh的目录为/home/dmdba/dmdbms/script/root

节点1:192.168.175.135
./dm_service_installer.sh -t dmserver -p DMSERVER0 -dm_ini /home/data/dsc0_config/dm.ini -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmasmsvr -p DMASM0 -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmcss -p DMCSS0 -dcr_ini /home/data/dmdcr.ini

节点2:192.168.175.135
./dm_service_installer.sh -t dmserver -p DMSERVER1 -dm_ini /home/data/dsc1_config/dm.ini -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmasmsvr -p DMASM1 -dcr_ini /home/data/dmdcr.ini

./dm_service_installer.sh -t dmcss -p DMCSS1 -dcr_ini /home/data/dmdcr.ini
上述命令执行完事后会在/etc/init.d目录下生成服务:
节点1:
在这里插入图片描述

节点2:
在这里插入图片描述

可用root用户在此目录下对执行start和stop:
./DmCSSServiceDMCSS1 start
./DmCSSServiceDMCSS1 stop

在这里插入图片描述

注:搭建成功后修改两节点配置文件dmdcr.ini,将 DMDCR_ASM_RESTART_INTERVAL 与 DMDCR_DB_RESTART_INTERVAL值修改为 不等于0 即可,css即可自动拉起asm与server服务,此处改为10,为超过设置的时间后,如果 DMASM 节点与DMDSC节点的 active 标记仍然为 FALSE,则 DMCSS 会执行自动拉起。
修改每个节点下的dmdcr.ini中的DMDCR_ASM_RESTART_INTERVAL 与 DMDCR_DB_RESTART_INTERVAL参数:
cd /home/data
vi dmdcr.ini
节点1:
在这里插入图片描述
节点2:
在这里插入图片描述

(16)DMDSC启动、关闭流程
节点1服务名分别为:DmServiceDMSERVER0、DmASMSvrServiceDMASM0、DmCSSServiceDMCSS0
节点2服务名分别为:DmServiceDMSERVER1、DmASMSvrServiceDMASM1、DmCSSServiceDMCSS1

DMDSC启动、关闭流程
启动顺序:DMCSS–>DMASMSVR–>DMSERVICE
关闭顺序:DMSERVICE–>DMASMSVR–>DMCSS

注意事项:
启动:
DMDSC是基于共享存储的数据库集群系统,包含多个数据库实例,因此,与单节点的达梦数据库不同,DMDSC集群需要在节点间进行同步、协调,才能正常地启动、关闭。启动DMDSC集群之前,必须先启动集群同步服务DMCSS,如果使用了DMASM文件系统,则DMASMSVR服务也必须先启动。启动流程简单总结一下就是先启动DMCSS,然后启动DMASMSVR(如果有的话),最后启动DMSERVER,如果DMCSS配置了DMASMSVR/DMSERVER自动拉起命令,此时可以先仅启动DMCSS,然后启动监视器DMCSSM,在DMCSSM控制台执行命令"ep startup GRP_ASM"启动DMASMSVR集群,执行"ep startup GRP_DSC,"启动DMSERVER集群(其中GRP_ASM/GRP_DSC分别为DMASMSVR/DMSERVER集群的组名)。
停止:
如果DMCSS配置了DMASMSVR/DMSERVER自动拉起命令,那么手动停止DMSERVER和DMASMSVR时会被拉起来,因此可能导致停止服务执行成功,但是集群并未停止的情况!!!此时就显示出监视器的好处。此时可以在监视器中执行“ep stop 集群组名”命令的方式停止ASMSVR服务或者DMSERVER服务,在使用监视器停止服务时,监视器会关闭相关的自动拉起命令,因此,可以确保集群的正确停止,在停止DMASMSVR/DMSERVER服务后,再手动停止DMCSS服务即可。需要注意的是,如果不停止DMCSS服务,再次启动集群的话,自动拉起是不会生效的,当然,也可以通过在监视器中执行“set group_name auto restart on/off ”打开/关闭指定组的自动拉起功能,此命令只修改dmcss内存值。
如图:
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用python中的pymsql完成如下:表结构与数据创建 1. 建立 `users` 表和 `orders` 表。 `users` 表有用户ID、用户名、年龄字段,(id,name,age) `orders` 表有订单ID、订单日期、订单金额,用户id字段。(id,order_date,amount,user_id) 2 两表的id作为主键,`orders` 表用户id为users的外键 3 插入数据 `users` (1, '张三', 18), (2, '李四', 20), (3, '王五', 22), (4, '赵六', 25), (5, '钱七', 28); `orders` (1, '2021-09-01', 500, 1), (2, '2021-09-02', 1000, 2), (3, '2021-09-03', 600, 3), (4, '2021-09-04', 800, 4), (5, '2021-09-05', 1500, 5), (6, '2021-09-06', 1200, 3), (7, '2021-09-07', 2000, 1), (8, '2021-09-08', 300, 2), (9, '2021-09-09', 700, 5), (10, '2021-09-10', 900, 4); 查询语句 1. 查询订单总金额 2. 查询所有用户的平均年龄,并将结果四舍五入保留两位小数。 3. 查询订单总数最多的用户的姓名和订单总数。 4. 查询所有不重复的年龄。 5. 查询订单日期在2021年9月1日至9月4日之间的订单总金额。 6. 查询年龄不大于25岁的用户的订单数量,并按照降序排序。 7. 查询订单总金额排名前3的用户的姓名和订单总金额。 8. 查询订单总金额最大的用户的姓名和订单总金额。 9. 查询订单总金额最小的用户的姓名和订单总金额。 10. 查询所有名字中含有“李”的用户,按照名字升序排序。 11. 查询所有年龄大于20岁的用户,按照年龄降序排序,并只显示前5条记录。 12. 查询每个用户的订单数量和订单总金额,并按照总金额降序排序。
06-03
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值