目录
3.1 配置 DCR 初始化配置文件(DSC1 & DSC2)
3.4 配置 DCR 启动配置文件(DSC1 & DSC2)
一、前期安排
1.1 虚拟机创建
设备参数
本文是在VMware 16 Pro 下创建两台虚拟机,必需虚拟机参数如下。其中内存、处理器、硬盘、网卡可以根据业务需求修改其参数大小。
设备 | 摘要 |
内存 | 1GB |
处理器 | 1 |
硬盘(SCSI) | 20GB(预先分配) |
硬盘 2 (SCSI) | 20GB(永久) |
CD/DVD (IDE) | 自动检测 |
网络适配器 | NAT |
网络适配器 2 | 自定义(VMnet2) |
1.2 目录与存储规划
本地目录规划
目录路径及其可用空间可以根据业务需求修改,本文仅作学习使用,故而未单独挂载那么多磁盘,可用空间也无需太大。
数据库软件安装目录 /home/dmdba/dmdbms 可用空间>50 GB(视情况而定)
本地归档日志存放目录 /home/dmdba/dmarch 可单独挂载磁盘
远程归档日志存放目录 /home/dmdba/remote_arch 可单独挂载磁盘
备份文件存放目录 /home/dmdba/dmbak 可单独挂载磁盘
共享存储规划
本文只挂载了一个 20 GB 的共享磁盘,将其分为四个区,其分区用途及其空间大小如下表所示。(似乎也可以不用设置这么大。。)
用途 | 磁盘/分区 | 空间大小 |
存放 dcr 信息 | /dev/sdb1 | 1 GB |
存放 vote 信息 | /dev/sdb2 | 1 GB |
存放 redo 日志 | /dev/sdb3 | 10 GB |
存放数据文件 | /dev/sdb4 | 8 GB |
1.3 安装数据库
二、共享磁盘绑定
2.1节点一虚拟机添加裸盘
记录好磁盘文件路径及名称后续会用到
2.2登录查看添加盘信息
fdisk -l
2.3开始划盘
fdisk /dev/sdb
- 输入fdisk /dev/sdb
- 依次输入 n à p à 1 à回车à +100M à回车,完成第一块磁盘划分
- 依次输入 n à p à 2 à回车à +100M à回车,完成第二块磁盘划分
- 依次输入 n à p à 3 à回车à +2048M à回车,完成第三块磁盘划分
- 依次输入 n à p à 4 à回车à回车à回车,完成第四块磁盘划分
2.4编辑规则文件
vi /etc/udev/rules.d/70-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="dmdba", GROUP="dinstall", MODE="755"
2.5刷新磁盘信息
partprobe /dev/sdb
udevadm trigger --action=add
cat /etc/udev/rules.d/70-raw.rules
ll /dev/raw
2.6二节点绑定节点一磁盘![](https://img-blog.csdnimg.cn/f6e854e8811f45dd87e71373760bcf4e.png)
需要停机修改
完成以上步骤之后,如果直接开启虚拟机,虚拟机会因为磁盘锁机制,无法同时开启两台而报错。因此需要在虚拟机的.vmx文件加上如下
disk.locking = "FALSE"
2.7查看二节点磁盘信息
fdisk -l,此时还没有看到共享磁盘信息
至此,共享存储绑定已完成,节点一,节点二都可以看到我们的裸盘
2.8刷新磁盘信息并重启操作系统
partprobe /dev/sdb
init 6
三、文件配置
3.1 配置 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 = 192.168.254.136
DCR_EP_PORT = 9341
[CSS]
DCR_EP_NAME = CSS2
DCR_EP_HOST = 192.168.254.137
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 = 192.168.254.136
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 = 192.168.254.137
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
节点二:
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.254.136
DCR_EP_PORT = 9341
[GRP_CSS]
DCR_EP_NAME = CSS1
DCR_EP_HOST = 192.168.254.137
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.254.136
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.254.137
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
3.2 创建 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'
初始化磁盘
使用编辑好的 dmdcr_cfg.ini 配置文件初始化 dcrdisk 和 votedisk,并在 ASM 提示符执行以下命令:
init dcrdisk '/dev/raw/raw1' from '/home/dmdba/config/dmdcr_cfg.ini' identified by '123456'
init votedisk '/dev/raw/raw2' from '/home/dmdba/config/dmdcr_cfg.ini'
初始化完成后查看初始化信息(两节点是否都能查看到)
- 节点一:
listdisks /dev/raw
- 节点二
3.3dmasvrmal.ini
两节点保持一致
[MAL_INST1]
MAL_INST_NAME = ASM0
MAL_HOST = 192.168.254.136
MAL_PORT = 8236
[MAL_INST2]
MAL_INST_NAME = ASM1
MAL_HOST = 192.168.254.137
MAL_PORT = 8237
3.4 配置 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集群
4.1 启动 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。)如需自动启动,可修改其参数值。
4.2 启动 ASM 服务(DSC1 & DSC2)
2 个节点启动 asm,dmdba 用户到数据库安装目录 bin 下执行以下命令:
./dmasmsvr dcr_ini=/home/dmdba/config/dmdcr.ini
或者配置自动启动,等待css启动asm成功。
4.3 创建 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 # 退出
4.4 初始化共享存储集群数据库实例(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 = 192.168.254.136
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 = 192.168.254.137
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 个实例的配置文件:
复制相应配置文件(DSC1 → DSC2)
将 dsc2 目录复制到节点 2 上对应的目录下。
scp -r dsc2 192.168.254.137:/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
4.5 启动数据库实例(DSC1 & DSC2)
2 个节点启动 DB,dmdba 用户到数据库安装目录 bin 下执行以下命令:
./dmserver path=/home/dmdba/config/dsc1/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
./dmserver path=/home/dmdba/config/dsc2/dm.ini dcr_ini=/home/dmdba/config/dmdcr.ini
五、验证集群状态
5.1 配置监视器查看(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 = 192.168.254.136:9341
CSSM_CSS_IP = 192.168.254.137: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